-
创建者:
虚拟的现实,上次更新时间:8月 13, 2025 需要 2 分钟阅读时间
1. 配置管理
1.1. 禁用页面 PDF 导出功能
允许匿名用户访问的页面上存在 【PDF 导出】功能,允许匿名用户将访问的页面导出为 PDF 文件(已设置匿名用户仅允许只读的权限)。当前版本(9.0.3)上没有找到专门针对匿名用户设置不允许 PDF 导出的功能。频繁的 PDF 导出操作会导致页面响应缓慢,官网的建议是直接禁用 PDF 导出插件功能。
- 进入后台的 Apps 管理界面
- 选中【system】
- 在出现的插件中找到【Confluence PDF Export】
- 选择【disable】禁用
如需启用则重复上面1~3的步骤,在第4步选择【Enable】启用
1.2. 隐藏 Word 导出功能
隐藏 Word 导出功能的主要原因同上。但是 Confluence 的系统插件中没有专门针对 Word 导出的插件功能,导出为 Word 文件的方式可以通过自定义的 HTML 页面方式实现隐藏。
- 进入后台管理页面
- 在【Look and Feel】下找到 【Custom HTML】
- 进入【end of the HEAD】
- 输入以下的代码隐藏 word 导出功能
<style> .no-after:after { content: none; } #footer-logo { display: none; } #action-export-word-link{ display: none} #exportToMsWord{ display: none} </style> <script> AJS.toInit(function(){ jQuery('#footer').hide(); AJS.$('#poweredby').prepend('<li><a href="https://wiki.waringid.me">虚拟的现实</a></li>'); AJS.$('#poweredby > li').slice(-4).remove(); AJS.$('#poweredby > li').last().addClass('no-after'); }); </script>
2. 常用插件
2.1. Markdown 编辑
Markdown for Confluence
nl.avisi.confluence.plugins.numberedheadings
2.2. MFA 二次认证
Two Factor Authentication (2FA) for Confluence
com.miniorange.twofactor.confluence-twofactor
2.3. 画图工具
Draw.io Confluence Plugin
com.mxgraph.confluence.plugins.diagramly
Gliffy Diagrams for Confluence
nl.avisi.confluence.plugins.numberedheadings
3. 问题跟进
3.1. 页面访问错误警告 The valid characters are defined in RFC 7230 and RFC 3986
问题描述:confluence 升级到 9.2 版本后,系统日志显示部分页面的访问出现以下的警告
13-Aug-2025 08:35:45.279 INFO [http-nio-8090-exec-632] org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header
Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.
java.lang.IllegalArgumentException: Invalid character found in the request target [/plugins/servlet/mobile?contentId=11534556#content/view/11534556 ]. The valid characters are defined in RFC 7230 and RFC 3986
at org.apache.coyote.http11.Http11InputBuffer.parseRequestLine(Http11InputBuffer.java:479)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:270)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1792)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1189)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:658)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
at java.base/java.lang.Thread.run(Thread.java:1583)
原因分析:
经了解,这个问题是高版本tomcat中的新特性:就是严格按照 RFC 3986规范进行访问解析,而 RFC 3986规范定义了Url中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符(RFC3986中指定了以下字符为保留字符:! * ’ ( ) ; : @ & = + $ , / ? # [ ])。而我们的系统在通过地址传参时,在url中传了一段json,传入的参数中有"{"不在RFC3986中的保留字段中,所以会报这个错。
解决方法:
/conf/catalina.properties中,找到最后注释掉的一行 #tomcat.util.http.parser.HttpParser.requestTargetAllow=| ,改成tomcat.util.http.parser.HttpParser.requestTargetAllow=|{},表示把{}放行
或者在启动项增加 - 'CATALINA_OPTS=-XX:ReservedCodeCacheSize=512m -Xms2048m -Xmx4096m -javaagent:/var/agent/atlassian-agent.jar -Duser.timezone=Asia/Shanghai -Dtomcat.util.http.parser.HttpParser.requestTargetAllow=|{}# -Dconfluence.document.conversion.fontpath=/var/confluence/fonts/'
https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html(官网各配置项说明)
- 无标签
0 评论