版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

配置管理

禁用页面 PDF 导出功能

允许匿名用户访问的页面上存在 【PDF 导出】功能,允许匿名用户将访问的页面导出为 PDF 文件(已设置匿名用户仅允许只读的权限)。当前版本(9.0.3)上没有找到专门针对匿名用户设置不允许 PDF 导出的功能。频繁的 PDF 导出操作会导致页面响应缓慢,官网的建议是直接禁用 PDF 导出插件功能。

  1. 进入后台的 Apps 管理界面
  2. 选中【system】
  3. 在出现的插件中找到【Confluence PDF Export】
  4. 选择【disable】禁用

如需启用则重复上面1~3的步骤,在第4步选择【Enable】启用

隐藏 Word 导出功能

隐藏 Word 导出功能的主要原因同上。但是 Confluence 的系统插件中没有专门针对 Word 导出的插件功能,导出为 Word 文件的方式可以通过自定义的 HTML 页面方式实现隐藏。

  1. 进入后台管理页面
  2. 在【Look and Feel】下找到 【Custom HTML】
  3. 进入【end of the HEAD】
  4. 输入以下的代码隐藏 word 导出功能
代码块
languagexml
<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>

常用插件

Markdown 编辑

Markdown for Confluence

nl.avisi.confluence.plugins.numberedheadings

MFA 二次认证

Two Factor Authentication (2FA) for Confluence

com.miniorange.twofactor.confluence-twofactor

画图工具

Draw.io Confluence Plugin

com.mxgraph.confluence.plugins.diagramly

Gliffy Diagrams for Confluence

nl.avisi.confluence.plugins.numberedheadings

问题跟进

页面访问错误警告 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/'

Image Added

https://tomcat.apache.org/tomcat-7.0-doc/config/systemprops.html(官网各配置项说明)

目录