Changelog

Tomcat 9.0.36 (markt)

Catalina

  • 固定: 64432 :更正一个重构回归,该重构破坏了RewriteValve中对多行配置的处理. Jj提供的补丁. (市场)
  • 固定: 定义RewriteMaps时修复对多个参数的使用. (雷姆/舒马赫)
  • 更新: 添加特殊的内部重写映射以进行大小写修改和转义. (雷姆/舒马赫)
  • 固定: 更正较早版本中的回归,该回归使Windows上的URI无法通过URI加载配置文件(例如密钥库). (市场)
  • 固定: 64470 :固线处理的默认值应反映相关的系统属性. (雷姆)
  • 固定: 实现一些与Servlet请求属性相对应的重写SSL环境. (雷姆)
  • 更新: 64442 :在tomcat-users.xml文件中的组,角色和用户的排序方面更具灵活性. (fschumacher)
  • 固定: 64493 :还原Connector上返回的协议属性值的可能更改. (雷姆)

Coyote

  • 更新: 在最新的OpenJDK 8版本中添加对ALPN的支持. (雷姆)
  • 固定: 64467 :提高关闭空闲HTTP / 2流的性能. (市场)
  • 更新: 通过SSLSupport界面公开服务器证书. (雷姆)
  • 加: 64483 :如果AJP请求因为包含意外的请求属性而被拒绝,则记录警告. (市场)
  • 固定: 64485 :修复了最后一次从ConfigurationSource.Resource修改可能导致的资源泄漏的问题. (雷姆)

Jasper

  • 固定: 64488 :确保在SecurityManager下运行时,表达式语言API中的ImportHandler能够从Java运行时加载类. 基于Volodymyr Siedleck的补丁. (市场)

WebSocket

  • 固定: 如果指定了无效的端点路径,则始终引发DeploymentException ,并尽早捕获无效的端点路径. (市场)
  • 加: WebSocket连接失败时,在日志消息中包含目标URL. (市场)

Other

  • 更新: 更新CharsetCache中的已知Charset列表,以包括utf-86 (已在OpenJDK 15中添加).
  • 加: 提高质量并扩大Apache Tomcat随附的法语翻译的覆盖范围. (雷姆)
  • 加: 64430 :添加了对CATALINA_OUT_CMD环境变量的支持,该环境变量定义了将捕获的stdout和stderr重定向到的命令. Harald Dunkel提供的补丁. (市场)
  • 更新: 从不受支持的Maven Ant任务切换到受支持的Maven Resolver Ant任务,以将工件上传到ASF Maven存储库(然后从那里上传到Maven Central). (市场)
  • 更新: 将对bnd的依赖关系更新为5.1.0. (市场)

2020-05-11 Tomcat 9.0.35 (markt)

Catalina

  • 固定: 减少反射使用,并删除连接器中的AJP特定代码. (remm / markt / fhanik)
  • 固定: 重新整理针对64021的修复程序,以更好地支持使用自定义类加载器的Web应用程序,该类加载器从非标准位置加载资源. (市场)
  • 更新: 从SC_NOT_FOUND的错误页面消息中删除多余的唯一路径/ URI. (米高)
  • 加: 如果将CredentialHandler实例添加到CombinedRealm (或子类)的实例中,则记录警告,因为CombinedRealm不使用配置的CredentialHandler ,并且很可能发生了配置错误. (市场)
  • 加: 在DefaultServlet for SC_NOT_FOUND中添加更多描述性错误消息. (米高)
  • 加: 59203 :在Web应用程序创建的,在Web应用程序停止时未被Web应用程序停止的线程上调用Thread.stop() (如果配置为这样做),请先尝试中断该线程. 根据Govinda Sakhare的要求. (市场)
  • 固定: 64309 :改进了引导Tomcat时用于搜索类加载器存储库的正则表达式. Paul Muriel Biya-Bi提供的拉取请求. (市场)
  • 固定: 64384 :修复在某些情况下忽略某些参数的多部分配置. (舒尔茨)
  • 加: 64386 :WebdavServlet不会为资源集合发送" getlastmodified"属性. (米高)
  • 更新: 删除WebDAV多状态(207)响应上的原因短语. (米高)
  • 固定: 64398 :由于可能的冲突,将用于属性替换的默认值分隔符更改为:- . 现在的语法为${name:-default} . (雷姆)
  • 加: 使用FileStore时,改进对存储位置的验证. (市场)

Coyote

  • 固定:SocketProperties mbean移到其自己的类型,而不是使用subType来提高工具的健壮性. (雷姆)
  • 固定: 当报告提供的请求行包含无效的组件时,将有问题的数据包括在错误消息中. (市场)
  • 固定: 改进对使用期望的请求的处理. 不要在响应具有非2xx状态代码但已完全读取请求正文的情况下禁用保持活动状态. (rjung / markt)
  • 固定: 64403 :确保未发送压缩的HTTP / 2响应,且其内容长度标头适合于原始的未压缩响应. (市场)

Jasper

  • 更新: 从SC_NOT_FOUND的错误页面消息中删除多余的唯一路径/ URI. (米高)
  • 加: 在DefaultServlet for SC_NOT_FOUND中添加更多描述性错误消息. (米高)
  • 固定: 64373 :将标记文件打包到WAR中,然后在/WEB-INF/classes解压缩WAR时,请确保仍可以找到标记文件. Karl von Randow提供的补丁. (市场)
  • 固定: 确保当JSP具有内部类时,与Java Eclipse编译器(ECJ)接口的Jasper代码使Jasper能够使用ECJ 4.14及以后的版本编译JSP. (市场)

Web applications

  • 固定: 通过Manager Web应用程序的脚本编制界面来修复Context配置文件的保存. (市场)
  • 加: 在TLS连接器文档中添加有关不同密钥库类型以及如何配置它们的部分. (市场)

Other

  • 更新: 将JUnit更新到版本4.13. (市场)
  • 固定: 在示例NetBeans配置文件中添加缺少的条目以测试类路径. Brian Burch提供的补丁. (市场)
  • 码: 尽可能重构以使用参数化的Collection构造函数. Lars Grefer提供的拉取请求. (市场)
  • 码: 通过Collections.toArray()重构为使用空数组. Lars Grefer提供的拉取请求. (市场)
  • 码: 符合条件的重构循环在满足条件后立即退出. Lars Grefer提供的拉取请求. (市场)
  • 码: 重构批量添加到集合以使用addAll()而不是循环. Lars Grefer提供的拉取请求. (市场)
  • 加: 提高质量并扩大Apache Tomcat随附的法语翻译的覆盖范围. (雷姆)
  • 加: 扩展Apache Tomcat随附的中文翻译的范围. Winsonzhao,ZhangJieWen和Lee Yazhou的贡献. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.24. (市场)
  • 码: 尽可能重构以使用增强的for循环. Lars Grefer的拉取请求. (市场)
  • 加: 改进对IntelliJ IDEA的IDE支持. Lars Grefer提供的补丁. (市场)
  • 加: 提高Apache Tomcat随附的日语翻译的质量. 包括来自Yoshy的贡献. (市场)
  • 加: 提高Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 更新: 将对bnd的依赖关系更新为5.0.1. (市场)

2020-04-08 Tomcat 9.0.34 (markt)

Catalina

  • 固定: 确保使用指定的web.xml文件的编码和未指定显式编码的UTF-8的编码,对通过web.xml提供的所有URL模式进行%nn一致的解码. (市场)
  • 更新: 允许用逗号分隔的org.apache.tomcat.util.digester.PROPERTY_SOURCE系统属性的类名称列表. (雷姆)
  • 固定: 64149 :使用无模式的检修阀时,应避免使用NPE. (雷姆)
  • 固定: 64226 :由于日期格式被重用,因此在解析日期后重置时区. Gary Thomas提交的测试用例. (雷姆)
  • 固定: 64247 :对jarsToSkip使用通配符不应覆盖可能存在的jarsToScan . 基于Iridias提交的代码. (雷姆)
  • Fix: 64265: Fix ETag comparison performed by the default servlet. The default servlet always uses weak comparison. (markt)
  • 固定: 在配置文件中使用${...}属性替换时,添加对默认值的支持. 根据Bernd Bohmann提供的拉动请求. (市场)

Coyote

  • 加: 配置HTTP连接器时,请警告是否为URIEncoding指定的编码不是RFC7230要求的US-ASCII的超集. (市场)
  • 固定: 在进行处理以减少同步时,请避免始终检索NIO轮询器选择键. (雷姆)
  • 固定: 64240 :确保一致地处理URI之后在请求行上包含其他数据的HTTP / 0.9请求. 这样的请求现在将始终被视为HTTP / 1.1. (市场)
  • 加: 通过请求属性org.apache.coyote.connectionIDorg.apache.coyote.streamID分别向应用程序公开HTTP / 2连接ID和流ID. (市场)
  • 加: 将系统属性org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH替换为Connector属性encodedSolidusHandling ,除了拒绝和解码此类序列外,它还添加了一个附加选项以将/序列传递给应用程序而不对其进行解码, . (市场)
  • 加: 在生成Cookie头时,将关联的HttpServletRequest公开给CookieProcessor ,以便可以根据请求的属性(例如用户代理)(如果需要)定制头. 基于Lazar Kirchev的补丁. (市场)

Jasper

  • 更新: 更新到Eclipse JDT编译器4.15. (市场)
  • 加: 添加对将Java 14(具有值14 )和Java 15(具有值15 )指定为JSP编译的编译器源和/或编译器目标的支持. 如果与不支持这些值的ECJ版本一起使用,则会记录警告并使用最新的受支持版本. (市场)

Cluster

  • 码: 重构DeltaRequest对象的创建,以使其更易于使用自定义实现. 根据Thomas Stock提供的拉动请求. (市场)

Web applications

  • 固定: 更正文档Web应用程序,以删除对org.apache.catalina.STRICT_SERVLET_COMPLIANCE系统属性的引用,从而更改连接器的URIEncoding属性的默认值. (市场)
  • 固定: 更正文档Web应用程序,以删除对org.apache.tomcat.util.buf.UDecoder.ALLOW_ENCODED_SLASH系统属性的引用,从而更改在URI中解释序列\方式. (市场)

Other

  • 加: 提高质量并扩大Apache Tomcat随附的法语翻译的覆盖范围. Tom Bens提供的贡献. (雷姆)
  • 加: 扩展Apache Tomcat随附的中文翻译的范围. 李亚州提供的贡献. (市场)
  • 固定: 64270 :设置的记录默认的umask 0027时使用JSVC经由daemon.sh并允许所使用的umask为通过被配置UMASK环境变量,因为它使用时是catalina.sh . (市场)
  • 更新: 将OWB模块更新为Apache OpenWebBeans 2.0.16. (雷姆)
  • 更新: 将CXF模块更新为Apache CXF 3.3.6. (雷姆)
  • 固定: 不建议使用LOGGING_CONFIG环境变量,并将其替换为CATALINA_LOGGING_CONFIG环境变量,以避免与使用LOGGING_CONFIG其他组件发生冲突. (市场)

2020-03-16 Tomcat 9.0.33 (markt)

Coyote

  • 固定: 64210 :更正了HTTP标头验证的改进中的回归问题,如果在TCP数据包之间拆分了CRLF序列,则会导致请求被错误地视为无效. 改进对请求行的验证,包括对HTTP / 0.9请求的验证. (市场)

Other

  • 固定: 64206 :9.0.31中引入了正确的回归功能,这意味着使用Windows Installer时指定的HTTP端口将被忽略,并且始终使用8080. (市场)

not released Tomcat 9.0.32 (markt)

Catalina

  • 固定: 与HostWebXmlCacheCleaner侦听器的存储配置兼容性. (雷姆)
  • 固定: 修改RewriteValve以使用ServletRequest.getServerName()填充HTTP_HOST变量,而不是从Host标头中提取它,因为这将支持HTTP / 2. (市场)
  • 固定: 将Tomcat嵌入式切换为从默认的web.xml生成的属性文件中加载MIME类型映射,这样无论Tomcat如何启动,MIME类型映射都是一致的. (市场)
  • 固定: 资源元素缺少商店配置属性. (雷姆)
  • 固定: 64153 :确保Web应用程序类加载器的父级设置一致. (市场)
  • 固定: 64166 :确保HttpServletResponse.getHeaderNames()返回的名称是唯一的. (市场)
  • 码:org.apache.tomcat.util.digester.Digester$EnvironmentPropertySource重命名为org.apache.tomcat.util.digester.EnvironmentPropertySource . 旧类仍然可用,但已弃用. Bernd Bohmann提供的补丁. (市场)
  • 加:StandardManagerPersistentManager添加新的属性persistAuthentication ,以支持身份验证持久性. Carsten Klein提供的补丁. (市场)
  • 固定: 64184 :如果已配置MemoryUserDatabase但缺少指定的配置文件,请避免重复日志消息. (市场)
  • 加: 64189 :将Web应用程序版本String公开为名为org.apache.catalina.webappVersionServletContext属性. (市场)

Coyote

  • 固定: 当NIO或APR / native连接器配置为useAsyncIO="true"并执行了零长度的读取或写入操作时,读取/写入useAsyncIO="true"不是立即返回. (市场)
  • 固定: 64141 :如果使用CA证书,请在不使用JSSE配置时删除信任库文件的默认值. (雷姆)
  • 固定: 提高OpenSSLEngine关闭的稳定性. 基于Manuel Dominguez Sarmiento提交的代码. (雷姆)
  • 固定: 将IIS使用的TLS请求属性添加到AJP连接器将始终接受的属性中. (市场)
  • 固定: 现在,零长度的AJP机密将表现为好像未指定它一样. (雷姆)
  • 固定: 64188 :如果在使用HTTP / 2等需要关闭通道但不关闭连接的多路复用协议时,在提交或刷新响应时发生错误,只需关闭该通道并允许使用该连接的其他通道继续. 根据亚历杭德罗·阿纳登(Alejandro Anadon)的建议. (市场)
  • 固定: 纠正OpenSSLEnginegetEnableSessionCreationsetEnableSessionCreation的语义. Alexander Scheel提供的拉取请求. (市场)
  • 固定: 64192 :正确地处理了当读取缓冲区非空时未读取的数据返回到读取缓冲区的情况. 一旦提供的ByteBuffer已满或没有更多数据可用,请确保收集TLS的读取停止. (市场)
  • 固定: 64195 :将简化的NIO块读取和写入操作还原,推迟到Tomcat10 .(remm)
  • 固定: 在容器线程上调用complete()之前,当连接器暂停时,允许异步请求完全完成. (市场)

Jasper

  • 码: 在本地化消息中参数化JSP版本和API类名称,以允许在主要版本之间更简单地重用. (市场)
  • 固定: 确保TLD的文件中列出jsp-config的部分web.xml是在注册uriTldResourcePathMap与URI指定在web.xml与URI的TLD文件还注册,如果它是不同的. Markus Lottmann提供的补丁. (市场)

Cluster

  • 固定: 修复云环境查找顺序,并添加专用于DNS成员资格提供程序的DNS_MEMBERSHIP_SERVICE_NAME环境. 由Bernd Bohmann提交. (雷姆)
  • 固定: 允许使用dns别名配置DNSMembershipProvider . 由Bernd Bohmann提交. (雷姆)

Web applications

  • 固定: 如果未使用TLS, JmxRemoteLifecycleListener使用-Dcom.sun.management.jmxremote.registry.ssl=false的要求添加到JmxRemoteLifecycleListener的文档中,否则客户端将无法连接到JMX服务器. (市场)
  • 加: 展开有关AJP连接器的address属性的文档,并说明AJP Connector还通过APR / Native实现支持ipv6v6only属性. (市场)

Other

  • 加: 扩展Apache Tomcat随附的法语翻译的范围. (雷姆)
  • 加: 扩展Apache Tomcat随附的中文翻译的范围. 由BoltzmannWxd提供. (市场)
  • 更新: 将OWB模块更新为Apache OpenWebBeans 2.0.15. (雷姆)
  • 更新: 将CXF模块更新为Apache CXF 3.3.5. (雷姆)
  • 加: 扩展Apache Tomcat随附的韩语翻译的范围. B. Cansmile Cha提供的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的范围. (雷姆)
  • 加: 64190 :添加了对在JULI的OneLineFormatter使用的时间戳中指定毫秒(使用SSSSSS )的OneLineFormatter . (市场)

2020-02-11 Tomcat 9.0.31 (markt)

Catalina

  • 更新: 如果不需要,请不要在身份验证期间将用户名和密码存储为会话注释. (kkolinko)
  • 固定: 在JNDIRealm中不使用GSSCredential时,避免无用的环境还原. (雷姆)
  • 固定: 58577 :搜索要通过JMXProxyServlet调用的MBean操作时,请遵守参数计数. (舒尔茨)
  • 更新: 63691 :在通配符模式" *"或" * .jar"设置或添加到tomcat.util.scan.StandardJarScanFilter.jarsToSkip时,跳过所有jar和目录扫描. (伊萨皮尔)
  • 固定: 64005 :更正了9.0.28中引入的静态资源缓存更改的回归. 使用为打包WAR的根提供的URL时,避免NullPointerException . (市场)
  • 固定: 64006 :如果未设置默认配置源,则根据当前目录提供默认配置源,以与现有代码完全兼容. (雷姆)
  • 固定: 64008 :澄清/扩展Tomcat#addWebapp()和相关方法的Javadoc. (市场)
  • 码: 弃用JmxRemoteLifecycleListener因为JRE附带的远程JMX功能现在可以使用它提供的功能. 该侦听器将在Tomcat 10中删除,并且可能会在2020-12-31之后的某个时间从Tomcat 9.0.x中删除. (市场)
  • 固定: 64011JNDIRealm不再通过LDAP进行身份验证. (米高)
  • 固定: 64021 :请确保在应用程序提供的SCI之前始终加载容器提供的SCI. 请注意,在容器和应用程序都提供相同SCI的情况下,将使用应用程序提供SCI. (市场)
  • 固定: 现在,可以统一处理从未打包到WEB-INF/classes JAR中的SCI定义,并且无论Web应用程序是否定义JAR顺序,都可以始终找到它们. (市场)
  • 固定: 64023 :反序列化会话时,请跳过空值会话属性. (舒尔茨)
  • 固定: 当JMXProxyServlet无法找到MBean或操作时,请勿抛出NullPointerException. (舒尔茨)
  • 更新: 64067 :定义RewriteMaps时,允许多个参数. (fschumacher)
  • 固定: 64074 :从资源URL获得的目录的InputStream现在返回与FileURLConnection的行为一致的目录列表. 除了恢复由于引入CachedResourceURLConnection而丢失的行为外,它还扩展了功能,使其包括packedWAR,并考虑了资源JAR. (市场)
  • 更新: 将回收的外观系统属性重构为一个名为discardFacades的新连接器属性. (雷姆)
  • 固定: 64089 :为XML外部实体定义添加${...}属性替换支持. (市场)
  • 码: 废弃MappingData.contextPath因为它未被使用. (市场)
  • Fix: Fix a problem that meant that remote host, address and port information could be missing in the access log for an HTTP/2 request where the connection was closed unexpectedly. (markt)

Coyote

  • 更新: 简化NIO阻止读写. (雷姆)
  • 固定: 使用HTTP / 2发出请求时,请确保触发Servlet异步处理超时. (市场)
  • 固定: 如果已经通过新的SSLHostConfigSSLHostConfigCertificate元素设置了配置,则在连接器上使用不赞成使用的TLS属性时,请修复TLS配置的损坏. (市场)
  • 固定: 63966 :将使用HTTP连接到HTTPS端口的显示消息从utf-8切换到UTF-8. (市场)
  • Fix: 64007: Cancel selection key in poller before wrapper close to avoid possible deadlock. (remm)
  • 加: 使用基于JSSE的TLS连接器时,添加对RFC 5915格式的未加密EC密钥文件的支持. (市场)
  • 固定: 更正9.0.28中引入的回归,这意味着Transfer-Encoding忽略Transfer-Encoding标头中的无效令牌,而不是将其视为错误. (市场)
  • Fix: Rename the HTTP Connector attribute rejectIllegalHeaderName to rejectIllegalHeader and expand the underlying implementation to include header values as well as names. (markt)
  • 更新: 默认情况下禁用(在server.xml中注释掉)AJP / 1.3连接器. (市场)
  • 更新: 将AJP / 1.3连接器的默认绑定地址更改为回送地址. (市场)
  • 加: 将AJP / 1.3连接器的requiredSecret属性重命名为secret并添加一个默认为true的新属性secretRequired . 当secretRequiredtrue ,除非将secret属性配置为非空,非零长度的String,AJP / 1.3连接器将不会启动. (市场)
  • 加: 将新的属性allowedRequestAttributesPattern添加到AJP / 1.3连接器. 属性无法识别的请求将被403阻止.(标记)

Jasper

  • 固定: 更新性能优化,以在依赖于具有隐式作用域的未初始化标签属性的标签中使用表达式,以使性能优化了解Java 14中添加的新公共类( java.lang.Record ).
  • 固定: 64097 :用ServiceLoader替换用于ExpressionFactory实现的错误的自定义服务查找. (市场)
  • 加:META-INF/services条目添加到jasper-el.jar,以便可以通过services API发现Expression Language的实现. (市场)

Cluster

  • 固定: 64043 :确保在表单身份验证期间复制会话ID更改. (kfujino)

Web applications

  • 固定: 64000 :在示例Web应用程序(其中Servlet示例包括i18n支持)的情况下,所使用的语言环境应基于请求语言环境,而不是服务器语言环境. (市场)
  • 加: 添加有关保护AJP / 1.3连接器的其他信息. (市场)

Other

  • 固定: 63995 :在Tomcat的Commons DBCP2分支中钝化池化的JDBC连接时,请确保关闭语句. (市场)

2019-12-12 Tomcat 9.0.30 (markt)

Catalina

  • 加: 63681 :介绍RealmBase#authenticate(GSSName,GSSCredential)和朋友. (米高)
  • 固定: 63964 :更正了9.0.28中引入的静态资源缓存更改的回归. 由从缓存获取的URL构造的URL无法用于访问资源. (市场)
  • 固定: 63970 :更正了9.0.28中引入的静态资源缓存更改的回归. 无法将与为JAR资源获得的URL的连接JarURLConnectionJarURLConnection . (市场)
  • 加: 63937 :向标准的Authenticator实现中添加一个新属性allowCorsPreflight ,该属性允许将Authenticator配置为允许CORS预检请求绕过CORS规范要求的身份验证. (市场)
  • 固定: 63939 :更正CORS过滤器中的相同原点检查. 现在认为具有显式默认端口的源与没有默认端口的源相同,并且现在按照CORS规范要求以区分大小写的方式比较源. (市场)
  • 固定: 63981 :允许多次调用Registry.disableRegistry()而第二次及以后的调用不会触发警告记录. 基于Andy Wilkinson的补丁. (市场)
  • 固定: 63982 :CombinedRealm对主体实现进行了假设(michaelo)
  • 固定: 63983 :更正了9.0.28中引入的静态资源缓存更改的回归. 已打开大量文件描述符,这些文件描述符在被GC释放之前可能达到操作系统限制. (市场)
  • 更新: 63987 :弃用Realm.getRoles(Principal) . (米高)
  • Code: Add a unit test for the session FileStore implementation and refactor loops in FileStore to use the ForEach style. Pull request provided by Govinda Sakhare. (markt)
  • 更新: 将服务器端包含(SSI)模块移至单独的JAR库中. (舒尔茨)
  • 固定: 重构FORM身份验证,以减少重复的代码,并确保在禁用缓存时,不会在会话中缓存经过身份验证的主体. 这是CVE-2019-17563的修复程序. (市场/ kkolinko)

Coyote

  • 固定: 修复端点closeSocket和destroySocket的差异,尤其是在APR连接器中. (雷姆)
  • 固定: 在所有连接器上将maxConnections的默认值协调为8192. (雷姆)
  • 固定: 63931 :改进了asyncIO的超时处理,以确保阻塞操作(如果发生)会看到SocketTimeoutException . (remm / markt)
  • 固定: 63932 :默认情况下,请勿压缩具有较强ETag的内容. 此行为是通过新的Connector属性noCompressionStrongETag为HTTP / 1.1和HTTP / 2连接器配置的. (市场)
  • 固定: 63949 :修复了由于需要写循环而导致NIO发生非阻塞写问题. (雷姆)
  • 固定: 通过删除write(Non)BlockingDirect简化常规端点写入. 现在,将对所有常规写入进行缓冲,以实现更可预测的行为. (雷姆)
  • 固定: 当操作发生超时异常时,将异常直接发送到完成处理程序,并添加一个布尔值以确保完成处理程序仅被调用一次. (remm / markt)
  • 加: 报告/记录无效的HTTP标头时,会使用0xNN格式对所有非打印字符进行编码. (市场)

WebSocket

  • 固定: 确保编写WebSocket消息时避免了几个非常不可能的并发问题. (市场)

Web applications

  • 固定: 在示例Web应用程序的JSP部分的FORM身份验证示例的错误页面上修复断开的重试链接. (市场)
  • 加: CsrfPreventionFilter的改进:附加日志记录,允许自定义CSRF随机数请求参数名称. (舒尔茨)
  • 固定: 在文档Web应用程序中更正ConnectormaxConnections属性的文档. (市场)
  • 加: 在JSP FORM身份验证示例中添加设置和显示会话属性的功能,以演示经过身份验证的会话在重新启动之间的会话持久性. (市场)

Other

  • 固定: 请更正针对63815的修复程序(在shell脚本中使用CATALINA_OPTSJAVA_OPTS时应避免使用*扩展),因为它引起了各种回归,尤其是daemon.sh . (市场)
  • 更新: 将OWB模块更新为Apache OpenWebBeans 2.0.13. (雷姆)
  • 更新: 使用Graal 19.3+在Graal本机映像中支持Java 11. (雷姆)
  • 加: 扩展Windows安装程序对适合的Java安装的搜索,以包括64位JDK注册表项和JAVA_HOME环境变量. Alexander Norz提供的拉取请求. (市场)
  • 加: 扩展Apache Tomcat随附的韩语翻译的范围. (元山)
  • 加: 扩展Apache Tomcat随附的法语翻译的范围. (雷姆)
  • 加: 扩展Apache Tomcat随附的中文翻译的范围. 由lins和磊提供. (市场)
  • 加: 将Apache Commons BCEL的内部fork更新为ff6941e(2019-12-06,6.4.2-dev). 仅代码清理. (市场)
  • 加: 将Apache Commons Codec的内部fork更新为9637dd4(2019-12-06,1.14-SNAPSHOT). 代码清理和CODEC-265的修复程序. (市场)
  • 加: 将Apache Commons FileUpload的内部fork更新为2317552(2019-12-06,2.0-SNAPSHOT). 重构. (市场)
  • 加: 将Apache Commons Pool 2的内部fork更新为6092f92(2019-12-06,2.8.0-SNAPSHOT). 清理和较小的重构. (市场)
  • 加: 将Apache Commons DBCP 2的内部fork更新为a36390(2019-12-06,2.7.1-SNAPSHOT). 次要重构. (市场)

2019-11-21 Tomcat 9.0.29 (markt)

Catalina

  • 固定: 重构JMX远程RMI注册表创建. 这是CVE-2019-12418的修复程序. (雷姆)
  • 加: CsrfPreventionFilter的改进:将最新的可用随机数公开为请求属性; 将期望的现时请求参数名称公开为上下文属性. (舒尔茨)

Coyote

  • 加: 63835 :添加了对"保持活动"响应标头的支持. (米高)
  • 固定: 纠正NioEndpoint超时处理中的逻辑错误,该错误意味着写超时可以作为读取超时处理. (市场)

Web applications

  • 加: 如果将socket.txBufSize配置为显式值而不是使用JVM默认值,则添加有关HTTP和AJP连接器的潜在不良性能的警告. (市场)

Other

  • 固定: 使用自定义阴影附加器改进基于OWB的模块. (雷姆)
  • 固定: 除阀门外,还应在OWB模块中添加安全过滤器,以提高灵活性. (雷姆)

not released Tomcat 9.0.28 (markt)

Catalina

  • 固定: URI的错误路径可能会由于其路径分隔符而在Windows上导致异常,因此请使用IOException进行包装. (雷姆)
  • 固定: 63832 :在停止时发生JVM错误时,将容器正确标记为FAILED. (雷姆)
  • 加:RewriteValve添加有关RewriteMap功能用法的更多详细信息. (fschumacher)
  • 固定: 63836确保在销毁主机实例后,将清除对Host对象的引用. (市场)
  • 固定: 确保在为Web应用程序启用静态资源缓存时,所有对静态文件(包括JSP文件)的访问都通过缓存进行,以便可以看到静态文件的一致视图. 在进行此更改之前,可以看到更新的上次修改时间,但是内容将是修改之前的时间. (市场)
  • 更新: 63905清理Tomcat CSS. (米高)
  • 固定: 63909 :当使用不带默认值的ExpiresFilter并由默认Servlet提供响应时,如果默认Servlet设置了304(未找到)状态代码,请确保过滤器处理响应. (市场)

Coyote

  • 固定: 一旦在AsyncListener.onTimeout()AsyncListener.onError()期间调用了AsyncContext.complete()AsyncContext.dispatch()确保ServletRequest.isAsyncStarted()返回false . (市场)
  • 固定: 6381663817 :在启动异步处理之后但在启动异步处理的容器线程完成处理当前请求/响应之前,可以正确处理I / O错误. (市场)
  • Fix: 63825: When processing the Expect and Connection HTTP headers looking for a specific token, be stricter in ensuring that the exact token is present. (markt)
  • 固定: 63829 :在查看Tomcat是否正在提供预压缩的内容时,改进对Content-Encoding标头的检查. 确保仅匹配完整的令牌,并且匹配不区分大小写. (市场)
  • 固定: 63864 :重构transfer-encoding请求标头以使用共享的解析代码并减少重复. (市场)
  • 固定: 63865 :将" Unset选项添加到同一站点的cookie,如果用户设置,则通过" None值. 约翰·凯利(John Kelly)提供的补丁. (市场)
  • 固定: 63879 :从套接字包装程序关闭的调试日志中删除堆栈跟踪. (雷姆)
  • 更新: 当保持套接字包装程序与其当前处理器之间的关联时,在连接器端点上添加连接跟踪以消除协议处理程序中的过多并发. (雷姆)
  • 固定: 63894 :确保将certificateVerificationcertificateVerificationDepth的配置值正确传递到基于OpenSSL的SSLEngine实现. (remm / markt)
  • 固定: 设置套接字选项时,可改善出错后的清除. (雷姆)
  • 固定: 63859 :在AJP连接器收到CPING消息之后,请勿执行阻塞读取,因为如果JK连接器配置为ping_mode="I" ,则CPING消息将不会总是跟随请求的开始. (市场)
  • 固定:org.apache.coyote.http2.TestHttp2InitialConnection动态地正确计算ErrorReportValve响应的所有动态部分. (米高)

Jasper

  • 固定: 63897 :在编译JSP之前捕获JSP的时间戳以进行修改跟踪,以防止在编译过程中修改JSP时出现竞态条件. Karl von Randow提供的补丁. (市场)
  • 固定: 修复了可能导致最终用户看不到对修改的JSP所做更改的竞争条件. (市场)

WebSocket

  • 固定: 63913 :包装任何NullPointerException之遥由InflaterDeflater使用的PerMessageDeflate在扩展IOException ,这样的错误可以被捕获,并通过WebSocket的错误处理机制进行处理. (市场)

Web applications

  • 固定: 更正安全性方法中服务器属性默认值的描述. (市场)

Other

  • 固定: 63815 :在shell脚本中使用CATALINA_OPTSJAVA_OPTS时应避免使用*扩展. 请注意, CATALINA_OPTS和/或JAVA_OPTS存在的所有换行符将不再删除. (市场)
  • 固定: 63826 :从Windows的二进制zip发行版中删除commons-daemon-native.tar.gztomcat-native.tar.gz ,因为这些组件的编译版本已包含在zip发行版中. (市场)
  • 固定: 63838 :在命令行上运行单元测试时,禁止反射性访问警告. (市场)
  • 固定: 从HP-UX上的HPE JVM添加缺少的字符集,以通过org.apache.tomcat.util.buf.TestCharsetCache单元测试. (米高)
  • 更新: 将CXF模块更新为Apache CXF 3.3.4. (雷姆)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. motohashi.yuki提供的补丁. (市场)
  • 加: 扩展Apache Tomcat随附的简体中文翻译的内容和质量. rpo130,沉梅森,李亚州,winsonzhao,黄青石,莱,侯书成和周艳明提供的资料. (市场)
  • 加: 扩展Apache Tomcat随附的巴西葡萄牙语翻译的覆盖范围和质量. Danielamorais提供的补丁. (市场)

2019-10-11 Tomcat 9.0.27 (markt)

Catalina

  • 固定: 请更正9.0.25中引入的防止从类路径加载配置文件的回归. (市场)

Coyote

  • 固定: 生成或解析HTTP2-Settings标头时,请使用URL安全基数64编码,而不是标准基数64编码,这是RFC 7540要求将HTTP升级到h2c一部分.
  • 固定: 63765 :NIO2应该尝试在TLS握手后进行拆包以避免边缘情况. (雷姆)
  • 固定: 63766 :确保处理HTTP升级连接时处理处理器对象被回收,该处理在切换到用于升级协议的处理器之前终止. (市场)
  • 固定: 修复了9.0.23中HTTP / 2超时重构引入的内存泄漏,该泄漏可能在使用HTTP / 2或WebSocket时发生. (市场)

Jasper

  • 更新: 更新到Eclipse JDT编译器4.13. (市场)
  • 固定: 添加GraalVM特定的ELResolver以尽可能避免在BeanElResolver中使用BeanInfo,因为它需要手动进行反射配置. (雷姆)
  • 固定: 63781 :在执行与类的可见性相关的各种检查时,请在EL实现中将字段放在方法中,还请检查是否已导出包含模块. (市场)

Web Socket

  • 固定: 63753 :如果正在使用非默认端口,请确保Web套接字HTTP升级请求中的Host标头仅包含端口. (市场)
  • Fix: When running on Java 9 and above, don't attempt to instantiate WebSocket Endpoints found in modules that are not exported. (markt)

Web Applications

  • 加: 添加基本​​的GraalVM文档. (雷姆)
  • 加: 为通用注释API实现添加Javadoc. (市场)
  • 固定: 更正注释,错误消息和Javadoc中的各种拼写错误. 康智冬提供的补丁. (市场)

jdbc-pool

  • 固定: 在没有显式验证查询的情况下验证连接时,请确保提交了验证过程打开的所有事务. Pascal Davoust提供的补丁. (市场)

Other

  • 码: 弃用org.apache.tomcat.util.compat.TLS . 它的功能仅用于org.apache.tomcat.util.net.TesterSupport单元测试,并已移至该位置. (荣)
  • 固定: 63759 :使用Windows安装程序安装Tomcat时,请授予足够的特权,以使卸载程序能够在用户帐户控制处于活动状态时执行. (市场)
  • 加: 使用构建属性来定义最低支持的Java版本,并使用该构建属性来减少更新最低支持的Java版本所需的编辑次数. (市场)
  • 更新: 将OWB模块更新为Apache OpenWebBeans 2.0.12. (雷姆)
  • 更新: 将CXF模块更新为Apache CXF 3.3.3. (雷姆)
  • 更新: 63767 :更新到Commons守护程序1.2.2. 这将更正Commons守护程序1.2.0和1.2.1中的回归,该回归导致Windows Service在未完全更新的操作系统上运行时在启动时崩溃. (市场)

2019-09-19 Tomcat 9.0.26 (markt)

Other

  • 固定: 重新标记以确保变更日志的源文件不包含XML字节顺序标记. (市场)

not released Tomcat 9.0.25 (markt)

Catalina

  • 固定: 获取配置文件的URI时,避免可能的InvalidPathException . (市场)
  • 固定: 63684 :对于给定的安全性约束, Wrapper从未传递给RealmBase.hasRole() . (米高)
  • 固定: 63740 :当使用xmlBase配置Host时,请确保正确加载配置文件. uk4sx提供的补丁. (市场)
  • 固定: 如果将服务直接嵌入到应用程序中(即没有服务器),并且启用了JNDI,请避免在服务停止时潜在的NullPointerException . S. Ali Tokmen提供的补丁. (市场)
  • 加: 添加一个新的PropertySource实现EnvironmentPropertySource ,该实现可用于使用环境变量在配置文件中进行属性替换. 根据Thomas Meyer提供的拉取请求. (市场)

Coyote

  • 固定: 63682 :修复了使用异步Servlet API写入响应主体并且流和/或连接窗口的大小达到0字节时的潜在挂起的问题. (市场)
  • 固定: 63690 :在计算HTTP / 2 DATAWINDOW_UPDATE帧的开销时,请使用当前大小和先前大小的平均值,以避免由于客户端缓冲行为而导致误报,从而导致一小部分非最终DATA帧小于预期. (市场)
  • 固定: 63706 :避免NPE使用纯文本访问https端口. (雷姆)
  • 固定: 纠正配置属性overheadDataThresholdoverheadWindowUpdateThreshold的名称中的错字. (市场)
  • 固定: 如果HTTP / 2连接要求的初始窗口大小大于默认值,请发送WINDOW_UPDATE来增加连接的流控制窗口,以使连接的流控制窗口的初始大小与增加的值一致. (市场)
  • 固定: 63710 :使用HTTP / 2时,请确保未为那些状态码不允许的响应设置content-length标头. (市场)
  • 固定: 63737 :更正了在解析accept-encoding头以确定是否支持gzip编码(包括仅解析找到的第一个头)时的各种问题. (市场)

Jasper

  • 固定: 63724 :正确的回归在9.0.21介绍,在一些配置的JSP编译破产. (市场)

Web applications

  • Fix: Correct the source code links on the index page for the ROOT web application to point to Git rather than Subversion. (markt)
  • 固定: 修复了为文档Web应用程序生成的Javadoc的各种问题,以启用从Java 10开始构建的发行版本. (市场)
  • 固定: 63733 :删除了"其他组件"的文档,因为它们已被删除/合并到9.0.5及更高版本的Tomcat核心发行版中. (市场)
  • 固定: 63739 :更正Tomcat嵌入式发行版中包含的Tomcat提供的JAR的无效的Automatic-Module-Name清单条目. (市场)
  • 固定: 修复了大量的Javadoc和文档拼写错误. 康志东提供的补丁. (市场)
  • 固定: 群集的拼写和格式更正方法. Bill Mitchell提供的拉取请求. (市场)

Other

  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩展Apache Tomcat随附的简体中文翻译的内容和质量. 包括leeyazhou和康智冬的贡献. (市场)
  • 固定: 62140catalina.[bat|sh]注释中的其他用法文档. (市场)
  • 固定: 修复catalina.bat JSSE_OPTS引用. 由Peter Uhnak提供. (fschumacher)
  • 更新: 63625 :更新到Commons守护程序1.2.1. 这将更正Commons Daemon 1.2.1中的多个回归,最显着的是Windows Service在使用32位JVM时启动时崩溃. (市场)
  • 固定: 63689 :更正了63285的修复程序中的回归,这意味着安装服务时未设置服务显示名称. (市场)
  • 固定: 使用Windows Installer执行静默安装时,请确保在使用64位JVM时将注册表项添加到64位注册表中. (市场)
  • 固定: 删除未使用的i18n消息和相关的翻译. 康志东提供的补丁. (市场)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)

2019-08-17 Tomcat 9.0.24 (markt)

Coyote

  • 码: 删除sendfile轮询器中的代码,以确保较小的轮询集与较旧的,不再受支持的Windows版本(不支持较大的轮询集)一起使用. (市场)

not released Tomcat 9.0.23 (markt)

Catalina

  • 加: 57665 :将对X-Forwarded-Host标头的支持添加到RemoteIpFilterRemoteIpValve . (市场)
  • 加: 62496 :添加选项以将身份验证信息(远程用户/身份验证类型)写入响应头. (米高)
  • 固定: 63550 :仅在JNDIRealm指定了alternateURL JNDIRealm ,然后JNDIRealm尝试. (市场)
  • 加: 63556 :将请求标记为在RemoteIpValve和RemoteIpFilter中转发(michaelo)
  • 固定: 63579 :正确解析格式不正确的OPTIONS请求,并以400响应拒绝它们,而不是触发导致500响应的内部错误. (市场)
  • 固定: 63608 :将与RewriteValve一起使用的模式的否定匹配功能的RewriteValve与文档中的描述RewriteValve . (市场)
  • 更新: 63627 :在RealmBase.authenticate(GSSContext, boolean)实现更细粒度的处理. (米高)
  • 固定: 如果通过AsyncContext.start(Runnable)启动的异步线程发生未处理的异常,请使用标准错误页面机制对其进行处理. (市场)
  • Fix: Discard large byte buffers allocated using setBufferSize when recycling the request. (remm)
  • 固定: 如果没有部署ROOT上下文并且请求未映射到任何其他部署的Context,请避免在CrawlerSessionManagerValve发生NullPointerException . Jop Zinkweg提供的补丁. (市场)
  • 固定: 63636 :从未在StandardWrapper.findSecurityReference()调用Context.findRoleMapping() StandardWrapper.findSecurityReference() . (米高)

Coyote

  • 码: 现在,不再支持需要使用多个较小轮询集的Windows操作系统,因此可以将APR轮询器重构为始终使用单个轮询集. (市场)
  • 固定: 63524 :在配置内部内存中密钥存储库时,改进了对基于PEM文件的密钥和不包含完整证书链的证书的处理. 在配置内部内存中密钥存储库时,改进对PKCS#1格式的私钥的处理. (市场)
  • 更新: 在摘要程序中完成设置属性规则时添加回调. (雷姆)
  • 固定: 63568 :尝试在不支持tcpNoDelay的套接字类型上设置它时避免错误,这在使用NIO继承的通道功能时可能发生. 由FrantišekKučera提交. (雷姆)
  • 固定: 63570 :修复了使用NIO连接器回归检索本地地址的问题. 由Aditya Kadakia提交. (雷姆)
  • 固定: 正确解析包含128到255之间字节的无效主机名,并以400响应拒绝它们,而不是触发导致500响应的内部错误. (市场)
  • 固定: 63571 :允许用户配置无限的TLS会话缓存和/或超时. (市场)
  • Fix: 63578: Improve handling of invalid requests so that 400 responses are returned to the client rather than 500 responses. (markt)
  • 固定: 修复h2spec测试套件失败. 如果霍夫曼编码的字符串文字包含EOS符号,则是错误的. (jfclere)
  • 加: TLS握手失败的连接现在将以400状态代码显示在访问日志中. (市场)
  • 固定: HTTP / 2连接的超时总是不能正确处理,因此某些连接的打开时间比预期的要长. (市场)
  • 固定: 63650 :重构基于JSSE的TLS连接器的初始化,以启用提供自定义密码套件的自定义JSSE提供程序. (市场)
  • 加: 扩展HTTP / 2过多的开销保护以覆盖各种形式的滥用客户端行为,如果检测到任何此类行为,则关闭连接. (市场)
  • 固定: 解决了当连接器停止时仍在进行阻塞的I / O操作时,使用APR /本机连接器在关机时崩溃的问题. (市场)

Cluster

  • 固定: 如果无法打开流,请避免Kubernetes成员资格失败(并阻止启动),以获取与基于DNS的成员资格相同的行为. 名称空间在启动时仍然是失败的,但是很容易提供. (雷姆)
  • 固定: 当JMX不可用时,避免与Tribes一起使用非致命性NPE. (雷姆)
  • 固定: 使Kube环境成为Kube成员的可选配置,以便于测试和Graal培训. 如果环境不存在,则会出现警告日志. (雷姆)

Web applications

  • 固定: 63597 :为主机管理器更新自定义404错误页面,以考虑到先前的重构,以便该页面用于404错误,而不是退回到默认错误页面. (市场)

Other

  • 固定: JNDI支持GraalVM本机映像. (雷姆)
  • 固定: 对GraalVM本机映像的JSP运行时库支持. (雷姆)
  • 固定: GraalVM本机映像的java.util.logging配置. (雷姆)
  • 更新: 将Checkstyle更新为8.22. (市场)
  • 固定: 55969 :加强Windows安装程序创建的Apache Tomcat安装的安全性. 将Windows安装程序使用的默认关机端口从8005更改为-1 (禁用). 将对所选安装目录的访问限制为本地管理员,本地系统和本地服务. (市场)
  • Update: 62696: The digital signature for the Windows installer now uses SHA-256 for hashes. (markt)
  • Add: 63285: Add an option to service.bat so that when installing a Windows service, the name of the executables used by the Windows service may be changed to match the service name. This makes the installation behaviour consistent with the Windows installer. The original executable names will be restored when the Windows service is removed. The renaming can be enabled by using the new --rename option after the service name. (markt)
  • 更新: 63310 :更新到Commons守护程序1.2.0. 这提供了对Java 11的改进支持.这还将Windows安装程序为Windows服务配置的用户从" Local System更改为特权较低的" Local Service . (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • Fix: 63555: Add Automatic-Module-Name entries for each of the Tomcat provided JARs included in the Tomcat embedded distribution. (markt)
  • 固定: 63567 :恢复的传球$LOGGING_MANAGER到JVM中catalina.sh致电时stop . (市场)
  • 固定: 纠正JAR文件清单中损坏的OSGi数据. (市场)
  • 固定: 在Tomcat嵌入式WebSocket JAR的Bundle-NameBundle-Symbolic-Name添加" embed",以使命名与其他嵌入式JAR对齐,并使之与不包含API类的标准WebSocket JAR区分. (市场)
  • 更新: 将对bnd的依赖关系更新为4.2.0. (市场)
  • 更新: 将Commons Codec的内部fork更新为3ebef4a(2018-08-01),以获取针对CODEC-134的修复程序. (市场)
  • 更新: 将Commons Pool2的内部fork更新为796e32d(2018-08-01),以获取对Commons Pool2 2.7.0的更改. (市场)
  • 更新: 将Commons DBCP2的内部fork更新为87d9e3a(2018-08-01)以获取对Commons DBCP2 2.7.0和DBCP-555的更改. (市场)
  • 更新: 63648 :更新测试套件中使用的测试TLS密钥和证书,以替换即将过期的密钥和证书. (市场)

2019-07-09 Tomcat 9.0.22 (markt)

Catalina

  • 固定: 改进对范围请求标头的解析. (市场)
  • 固定: 指定Tomcat无法识别的范围单位的范围标头应被忽略,而不是触发416响应. 基于zhanhb的拉取请求. (市场)
  • 固定:If-Range标头比较日期时,需要完全匹配. 基于zhanhb的拉取请求. (市场)
  • 固定: 向默认servlet添加一个选项,以禁用将Content-Range标头作为部分PUT的PUT请求的处理. 默认行为(作为部分PUT处理)保持不变. 基于zhanhb的拉取请求. (市场)
  • 固定: 改进内容范围标头的解析. (市场)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.23. (市场)

Coyote

  • 固定: 当使用useAsyncIO配置为true的连接器使用HTTP / 2时,删除潜在的死锁源. (市场)
  • 固定: 63523 :将SSLUtilBase方法恢复为受保护以保留兼容性. (雷姆)
  • 固定: 修复UTF-32LE字符集名称中的拼写错误. zhanhb通过Github进行的补丁. (fschumacher)
  • 固定: 一旦URI被识别为无效,请勿尝试进一步处理它. 根据Alex Repert的PR. (市场)
  • 固定: 修复了在APR中使用多个轮询器时避免单个轮询器较长轮询时间的可能性. (市场)
  • 固定: 重构针对63205的修复程序,使其仅在使用PKCS12密钥库时才适用,因为已经报告了一些其他密钥库类型的回归. (市场)

Jasper

  • 加: 如果SMAP处理器在SMAP生成期间无法删除或重命名类文件,请包含文件名. (市场)
  • 更新: 更新到Eclipse JDT编译器4.12. (市场)

WebSocket

  • 固定: 63521 :根据WebSocket规范的要求,如果随后通过编程API部署了由于注释注释的POJO的SCI扫描而部署的POJO,则忽略该编程部署. (市场)

Other

  • 固定: 切换终端可用性检查以测试stdin,因为将输出通过管道传输到另一个进程时,使用stdout不起作用. RadosławJózwik提供的补丁. (市场)
  • 加: 添加用户可构建的可选模块,以简化CDI 2和JAX-RS支持. 还包括一个新的文档页面,描述如何使用它. (雷姆)

2019-06-07 Tomcat 9.0.21 (markt)

Catalina

  • 加: 57287 :将文件排序添加到DefaultServlet(schultz)
  • 固定: 修复--no-jmx标志处理,该处理在注册表初始化后调用. (雷姆)
  • 固定: 调用ServletRequest#getReader()时,请确保使用在ServletContext上设置的默认请求字符编码. (市场)
  • 固定: 如果在处理过程中由于OutOfMemoryException请求失败,请尽最大努力清除. (市场)
  • 固定: 对于很少使用的UTF-32编码,改进了默认Servlet处理的静态文件的BoM检测. 由Coverity Scan识别. (市场)
  • 固定: 如果定义了默认的servlet,请确保默认的servlet读取了整个全局XSLT文件. 由Coverity Scan识别. (市场)
  • 固定: 生成HTTP Allow标头时,避免潜在的NullPointerException . 由Coverity Scan识别. (市场)
  • Code: Add Context.createInstanceManager() for easier framework integration. (remm)
  • 码: 添加实用程序org.apache.catalina.core.FrameworkListener以允许以编程方式将侦听器添加到context.xml. (雷姆)
  • 码: 移动Container.ADD_CHILD_EVENT孩子容器开始之前,以及Container.REMOVE_CHILD_EVENT从内部子集去除孩子之前. (雷姆)
  • 加: 删除目标路径中包含的用于获取RequestDispatcher所有片段. 由于这是应用程序错误,因此将请求的目标路径记录为警告. (市场)

Coyote

  • 固定: NIO轮询器似乎创建了一些不必要的并发,从而导致罕见的CI测试失败. 在处理异步操作时请添加同步以避免这种情况. (雷姆)
  • 固定: 修复导致不正确的HTTP / 2连接超时的并发问题. (remm / markt)
  • 固定: 避免在异步IO中使用无用的异常包装. (雷姆)
  • 固定: 63412 :从Web应用程序使用异步IO API时,安全管理器失败. (雷姆)
  • 固定: 删除acceptorThreadCount连接器属性,一个接受线程就足够了. 如文件所述,价值2是唯一的其他明智价值,但没有并没有超出某些微观基准的影响. (雷姆)
  • 固定: 避免在连接器挡块上可能出现NPE. (雷姆)
  • 更新: 删除NIO的pollerThreadCount连接器属性,一个轮询线程就足够了. (雷姆)
  • 加: 为APR连接器添加异步IO以实现一致性,但由于性能低下,默认情况下将其禁用. (雷姆)
  • 固定: 使用异步IO时,避免阻塞内部缓冲区的写入. (雷姆)
  • 码: 将异步IO实现重构为SocketWrapperBase . (雷姆)
  • 更新: 使用原子布尔值和子类将实现的doClose方法来重构SocketWrapperBase close,以保证它只能运行一次. (雷姆)
  • 固定: 关闭后,将未循环使用的套接字包装与NIOx通道解耦,并用虚拟静态对象替换. (雷姆)
  • 固定: 套接字包装程序关闭时清除缓冲区. (雷姆)
  • 固定: NIO2无法正确关闭连接器挡块上的插槽. (雷姆)
  • 更新:maxConcurrentStreams上的Http2Protocol的默认值从200减少到100,以与HTTP / 2实现的典型默认值保持一致. (市场)
  • 更新: 将默认的HTTP / 2标头列表大小从4GB减小到32kB,以符合典型的HTTP / 2实现. (市场)
  • 加: 添加对同一站点cookie属性的支持. 约翰·凯利(John Kelly)提供的补丁. (市场)
  • Fix: Drop legacy NIO double socket close (close channel, then close socket). (remm)
  • 固定: 使用异步修复HTTP / 2流结束并发. (雷姆)
  • 固定: 纠正流刷新代码中的一个错误,该错误可能导致多个线程同时处理该流,从而导致处理该流的错误. (市场)

Cluster

  • 固定: 62841 :重构DeltaRequest序列化以减少DeltaSession锁定的窗口,并消除序列化过程中可能引起死锁的原因. (市场)
  • 固定: 63441 :进一步简化了DeltaManager中会话创建消息的处理,以减少在创建会话之前处理会话更新消息的可能性. (市场)

WebSocket

  • 固定: 修复用于异步非阻塞写入的超时逻辑. 由Coverity Scan识别. (雷姆)

Web applications

  • 加: 扩展有关不赞成使用的TLS配置属性如何转换为新的TLS配置样式的说明. (市场)

Tribes

  • 固定: 检查组成员的运行状况时,将NoRouteToHostExceptionSocketTimeoutException相同. 当与组成员关联的主机未打开电源时,这将避免在每次执行检查时发出SEVERE日志消息. (市场)

Other

  • 更新: 从FindBugs切换到SpotBugs. (fschumacher)
  • 更新: 使用tomcat-maven包装开始Graal本机图像兼容性. (雷姆)
  • 固定: 63403 :修复了使用非英语语言环境运行时TestHttp2InitialConnection测试失败的问题. (kkolinko)
  • 固定: 添加Graal JreCompat,并使用它禁用JMX和URL流处理程序. (雷姆)
  • 加: 扩展Apache Tomcat随附的捷克语翻译的覆盖范围和质量. 包括ArnoštHavelka的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的德语翻译的覆盖范围和质量. 包括Niklasmerz,dusiema和Jens的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩展Apache Tomcat随附的简体中文翻译的内容和质量. 包括諵的贡献. (市场)
  • 固定: 使用test命令而不是tty命令来检查终端的可用性,因为基于tty的测试在非英语语言环境中失败. (市场)

2019-05-13 Tomcat 9.0.20 (markt)

Catalina

  • Fix: Fix some edge cases where the docBase was not being set using a canonical path which in turn meant resource URLs were not being constructed as expected. (markt)
  • 固定: 修复了从WAR文件执行CGI脚本时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了由Coverity扫描确定的StringCache中潜在的并发问题. (市场)
  • 固定: 修复了APR连接器的主Sendfile线程中的潜在并发问题. 由Coverity扫描识别. (市场)
  • 固定: 修复了从WAR文件运行Web应用程序时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复DataSourceRealm某些异常路径上的潜在资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了解析JSP文件时异常路径上潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • Fix: Fix a potential resource leak when a JNDI lookup returns an object of an in compatible class. Identified by Coverity scan. (markt)
  • 码: 重构ManagerServlet以避免在为指定类型的资源过滤JNDI资源时加载类. (市场)
  • 固定: 63324 :重构CrawlerSessionManagerValve以使放置在会话中的对象与带有mem-cached的会话序列化兼容. Martin Lemanski提供的补丁. (市场)
  • 加: 63358 :在Connector扩展throwOnFailure支持,以包括向运行中的Service添加Connector . (市场)
  • 加: 63361 :添加新方法( Registry.disableRegistry() ),该方法可用于禁用Tomcat组件的JMX注册, 前提是在注册第一个组件之前调用该方法. (市场)
  • Fix: Avoid OutOfMemoryErrors and ArrayIndexOutOfBoundsExceptions when accessing large files via the default servlet when resource caching has been disabled. (markt)
  • 固定: 如果在server.xml使用docBase而不是可选path定义了Contextserver.xml避免NullPointerException . (市场)
  • 固定: 63333 :重写isAvailable()中所述方法JAASRealm所以造成无效凭证仅登录失败触发帐户锁定出当LockOutRealm正在使用中. jchobantonov提供的补丁. (市场)
  • 固定: 添加--no-jmx标志以允许在startup.Tomcat.main禁用JMX. (雷姆)

Coyote

  • 固定: 现在,Connector元素值上的useAsyncIO布尔属性默认为true . (雷姆)
  • 固定: 与NIO异步使用时,可能出现HTTP / 2连接泄漏问题. (雷姆)
  • 固定: 修复了NIO的套接字关闭差异,现在除了套接字接受问题外,包装关闭都可用于所有地方. (雷姆)
  • 固定: 将异步IO与NIO一起使用时,请实现轮询超时. (雷姆)
  • 固定: 避免在禁用对象高速缓存时创建和使用它们. (雷姆)
  • 固定: 在不支持SSLv2Hello的较新JRE上运行时,请勿警告除非明确配置,否则它不可用. (市场)
  • 固定: 将NIO的pollerThreadCount的默认值更改为1 . (雷姆)
  • 固定: 将BlockPoller线程名称与其NIO连接器关联,以提高可读性. (雷姆)
  • 固定: 异步HTTP / 2帧解析器应允许并发,因此在尝试读取之前无法清除共享缓冲区. (雷姆)
  • 更新: 将HTTP / 2连接前言和初始帧读取更新为异步而不是阻塞IO. (雷姆)
  • 码: 重构主机名验证以提高性能. Uwe Hees提供的补丁. (市场)
  • 更新: 添加更接近核心NIO2的其他NIO2样式读取和写入方法,以便与CompletableFuture之类的异步工作流一起使用. (雷姆)
  • 固定: 扩展HTTP / 2超时处理,以包括写入时连接窗口耗尽. 这是CVE-2019-10072的修复程序. (市场)

Jasper

  • 固定: 63359 :确保根据JSP 2.3规范的JSP.1.14.2.1节正确实现了从jsp:setProperty操作的字符串转换时使用的类型转换. (市场)

Other

  • 固定: 63335 :确保由OneLineFormatter编写的堆栈跟踪完全缩进. 现在,整个堆栈跟踪由一个附加的TAB字符缩进. (市场)
  • 固定: 63370 :示例webapp的消息文件(LocalStrings _ *.properties)未转换为ascii. (元山)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. 包括motohashi.yuki的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的捷克语翻译的覆盖范围和质量. 包括ArnoštHavelka的贡献. (市场)
  • 固定: 使用OneLineFormatter ,不要在打印堆栈跟踪后在日志中打印空白行. (市场)
  • 更新: 将Apache Commons FileUpload的内部fork更新为41e4047(2019-04-24),以获取一些增强功能. (市场)
  • 更新: 将Apache Commons DBCP 2的内部fork更新为dcdbc72(2019-04-24),以进行一些清理和增强. (市场)
  • 更新: 将Apache Commons Pool 2的内部fork更新为0664f4d(2019-04-30),以获取一些增强功能和错误修复. (市场)

2019-04-13 Tomcat 9.0.19 (markt)

Catalina

  • 固定: 修复9.0.18中错误的JMX注册回归. (雷姆)

Coyote

  • Update: Add vectoring for NIO in the base and SSL channels. (remm)
  • 加: 将异步IO从NIO2添加到NIO连接器,并支持HTTP / 2和Websocket的异步IO实现. Connector元素上的useAsyncIO布尔属性允许启用异步IO API的使用. (雷姆)

Other

  • Fix: Ensure that the correct files are included in the source distribution for javacc based parsers depending on whether jjtree is used or not. (markt)
  • 固定: 确保源分发中的文本文件具有目标平台的正确行尾. (市场)

not released Tomcat 9.0.18 (markt)

Catalina

  • Fix: 63196: Provide a default (X-Forwarded-Proto) for the protocolHeader attribute of the RemoteIpFilter and RemoteIpValve. (markt)
  • 固定: 63235 :重构Charset缓存以减少启动时间. (市场)
  • 固定: 63249 :在记录注册或注销JMX Bean的失败时,请使用一致的日志级别( WARN ). (市场)
  • 固定: 63249 :在记录与启动或停止组件失败相关的LifecycleException时,请使用一致的日志级别( ERROR ). (市场)
  • 固定: 当SSI指令fsize与无效目标一起使用时,返回文件大小-而不是1k . (市场)
  • 固定: 63251 :为已知的JRE错误( JDK-8194653 )实现一种变通方法,该错误可能在Tomcat启动时导致死锁. (市场)
  • 固定: 63275 :使用RequestDispatcher确保HttpServletRequest.getContextPath()返回已调度请求中的编码路径. (市场)
  • 更新: 添加服务器/侦听器的可选侦听器,作为标准侦听器的细微变化. 区别在于,加载失败时不会致命. 如果认为有用,则可以将示例配置添加到标准server.xml中. Storeconfig将不会尝试保留新的侦听器. (雷姆)
  • 固定: 63286 :记录%D%T httpd中的LogFormat指令与AccessLogValvepattern属性之间的行为差​​异. (市场)
  • 固定: 63287 :对于具有类似严重性的类似问题,使日志记录级别更加一致. (市场)
  • Fix: 63311: Add support for https URLs to the local resolver within Tomcat used to resolve standard XML DTDs and schemas when Tomcat is configured to validate XML configuration files such as web.xml. (markt)
  • 固定: 对SSI printenv命令的输出进行编码. 这是CVE-2019-0221的修复程序. (市场)
  • 码: 将常量用于SSI编码值. (市场)
  • 加: 在将enableCmdLineArguments设置为true的情况下配置CGI Servlet时,请将单个命令行参数的编码形式限制为RFC 3875允许的值.可以通过使用新的初始化参数cmdLineArgumentsEncoded来放宽此限制. (市场)
  • 加: 当将CGI Servlet配置为enableCmdLineArguments设置为true时,在Windows上运行时,将各个命令行参数的解码形式限制为已知的安全值. 通过使用新的初始化参数cmdLineArgumentsDecoded可以放宽此限制. 这是CVE-2019-0232的修复程序. (市场)

Coyote

  • 固定: 修复NIO2异步读取API与常规读取之间的不良交互. (雷姆)
  • Fix: Refactor NIO2 write pending strategy for the classic IO API. (remm)
  • 固定: 恢复NIO2的默认maxConnections默认值,因为已解决了基本的关闭问题. (雷姆)
  • 固定: 使用isReadyForRead代码协调NIO2 isReadyForWrite. (雷姆)
  • 固定: 当使用支持ALPN(从Java 9开始)且未协商协议的JSSE TLS连接器时,Tomcat无法回退到HTTP / 1.1,而是断开了连接. (市场)
  • 固定: 纠正Tomcat 9.0.17中TLS连接器重构中的一个回归,该回归阻止了PKCS#8私钥与基于OpenSSL的连接器一起使用. (市场)
  • 固定: 修复NIO2 SSL边缘情况. (雷姆)
  • 固定: 从HTTP / 1.1升级到HTTP / 2时,请确保原始HTTP / 1.1请求中存在的所有查询字符串都传递给HTTP / 2请求处理. (市场)
  • 固定: 当Tomcat在未读取所有HTTP / 2请求的情况下写入最终响应时,请重置流以通知客户端不需要剩余的请求正文. (市场)

Jasper

  • 加: 添加对将Java 11(值为11 )指定为JSP编译器的编译器源和/或编译器目标的支持. (市场)
  • 加: 添加对将Java 12(值为12 )和Java 13(值为13 )指定为JSP编译的编译器源和/或编译器目标的支持. 如果与不支持这些值的ECJ版本一起使用,则会记录警告并使用最新的受支持版本. 基于Thomas Collignon的补丁. (市场)

Web applications

  • 固定: 63184 :扩展SSI文档以提供有关受支持的指令及其属性的更多信息. 守夜人提供的补丁. (市场)
  • Add: Add a note to the documentation about the risk of DoS with poorly written regular expressions and the RewriteValve. Patch provided by salgattas. (markt)

jdbc-pool

  • Fix: Improved maxAge handling. Add support for age check on idle connections. Connection that expired reconnects rather than closes it. Patch provided by toby1984. (kfujino)
  • 固定: 63320 :确保StatementCache缓存在参数中包含数组的语句. (kfujino)

Other

  • 更新: 更新到Eclipse JDT编译器4.10. (市场)
  • 加: 扩大Apache Tomcat随附的西班牙语翻译的覆盖范围和质量. 包括Ulises Gonzalez Horta的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的捷克语翻译的覆盖范围和质量. 包括ArnoštHavelka的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的中文翻译的覆盖范围和质量. 包括winsonzhao和wjt的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. (kkolinko)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. (kfujino)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 加: 扩展Apache Tomcat随附的德语翻译的覆盖范围和质量. (fschumacher)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)

2019-03-18 Tomcat 9.0.17 (markt)

Catalina

  • 固定: 重构如何将Cookie从基本请求传输到PushBuilder以便可以通过用于HTTP标头的标准PushBuilder方法访问并进行编辑. (市场)
  • 更新: 简化tomcat-i18n jar文件的catalina.properties文件中的jarsToSkip属性的值. 使用前缀模式而不是列出每种语言. (kkolinko)
  • Fix: Restore the getter and setter for the access log valve attribute maxLogMessageBufferSize that were accidentally removed. (markt)
  • 加: 63206 :向Context添加一个新属性createUploadTargets ,如果该属性为true ,则使它能够创建Servlet使用的临时上载位置(如果Servlet指定的位置尚不存在). 默认值为false . (市场)
  • 固定: 63210 :当不再需要基于Apache Commons DBCP 2的默认连接池时,请正确关闭它. 这确保了非守护进程线程不会保持运行状态,这将阻止Tomcat彻底关闭. (市场)
  • 固定: 63213 :当JNDIRealm配置为roleNested设置为true时,请在搜索嵌套组时确保对组名进行正确的转义. (市场)
  • 固定: 63236 :使用Phillip Webb建议的String.intern()来减少由于字符串重复而造成的内存浪费. 开始全新安装时,此更改可节省〜245k. 另外还要感谢YourKit Java profiler来帮助查找浪费的内存和根本原因. (市场)
  • 固定: 63246 :修复了在调用AsyncContext.dispatch()时潜在的NullPointerException . (市场)
  • 固定: 在部署过程中,请始终使用docBase的绝对路径来确定上下文名称,部署类型, docBase是否位于appBase (标记).

Coyote

  • 固定: 在执行从HTTP / 1.1到HTTP / 2(h2c)的升级时,请确保通过标准方法ServletRequest.getServerName()ServletRequest.getServerPort()使升级后请求的HTTP / 1.1 Host头中的主机名和端口可用. (市场)
  • 固定: 重构APR / Native端点TLS配置代码,以使JSSE样式配置(包括JKS密钥库)可以与APR / Native连接器一起使用. (市场)
  • 加: 通过TLS配置重构,配置属性sessionCacheSizesessionTimeout不再仅限于JSSE实现. 它们现在也可以与OpenSSL实现一起使用. (市场)
  • 固定: 重构经典IO API的NIO2读取挂起策略. (雷姆)
  • 固定: 63182 :使用异步线程时,请避免使用NIO2的HTTP / 1.1的额外读取通知. (雷姆)
  • 加: 63205 :为已知的JRE KeyStore加载错误添加解决方法. (市场)
  • 固定: NIO2应该尝试在任何地方使用SocketTimeoutException,而不是将其与InterruptedByTimeout混合使用. (雷姆)
  • 固定: 更正请求验证中的错误,该错误意味着HTTP / 2推送请求始终导致400响应. (市场)
  • 固定: 63223 :跟踪当前活动的HTTP / 2流时,正确考虑推送请求. (市场)
  • Fix: Ensure enough buffer space when using TLS with NIO2 by using the main read buffer to store additional decrypted data. (remm)
  • 固定: 在假定发生超时之前,请验证HTTP / 2流仍可写. (雷姆)
  • 固定: 由于OpenSSL引擎具有内部缓冲区,因此避免使用OpenSSL发生某些溢出情况以提高效率. (雷姆)
  • 固定: 协调HTTP / 1.1 NIO2保持活动代码. (雷姆)

WebSocket

  • 码: 删除为解决四个失败的TCK测试而引入的STREAMS_DROP_EMPTY_MESSAGES系统属性. 已实施了替代解决方案. 现在,仅当将数据写入OutputStreamWriter通过getSendStream()getSendWriter()发送消息才会在网络上产生消息. 写入零长度数据将导致出现空消息. 请注意,通过Encoder发送消息可能导致消息通过getSendStream()getSendWriter() . (市场)

Web applications

  • 固定: 修复Manager和Host Manager Web应用程序使用的消息. 添加或删除主机时使用的消歧消息键. 改善状态页面上摘要值的显示:用空格分隔术语和值. 改进过期会话命令的消息措辞. (kkolinko)
  • 固定: 不要在Manager和Host Manager Web应用程序中添加CSRF nonce参数并禁止Referer标头用于外部链接. (kkolinko)

Tribes

  • 加: 添加从静态成员列表中发现本地成员的功能. (kfujino)
  • 固定: 确保在addSuspects列表中注册的成员是静态成员. (kfujino)

Other

  • Add: Expand the coverage and quality of the French translations provided with Apache Tomcat. (remm)
  • 固定: 63041 :还原对53930的更改,这些更改增加了对CATALINA_OUT_CMD环境变量的支持,因为它们阻止了未明确指定PID文件的systemd配置的正确操作. (市场)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. (kkolinko)
  • 固定: 修复tomcat-i18n-cs的artifactId. (荣)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 加: 扩展Apache Tomcat随附的中文翻译的覆盖范围和质量. 包括winsonzhao的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的捷克语翻译的覆盖范围和质量. 包括ArnoštHavelka的贡献. (市场)
  • 加: 扩大Apache Tomcat随附的西班牙语翻译的覆盖范围和质量. 包括Ulises Gonzalez Horta的贡献. (市场)

2019-02-08 Tomcat 9.0.16 (markt)

Web applications

  • 固定: 在Manager Web应用程序的"服务器状态"页面上使用客户端的首选语言. 查看并修复几种在Manager和Host Manager Web应用程序中未遵守客户端语言偏好的情况. (kkolinko)
  • 固定: 63141 :确保转换后的管理器响应字符串仍以OK -开头OK -关联的Ant任务期望的位置. (市场)
  • 固定: 63143 :当默认系统区域设置的语言不是英语时,请确保Manager Web应用程序遵守浏览器中配置的用户的语言首选项. (市场)

Tribes

  • 固定: 删除执行程序不必要的关机. (kfujino)

Other

  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.04版. (市场)
  • Add: Add Czech translations to Apache Tomcat. Includes contributions from Arnošt Havelka and Alice. (markt)
  • 加: 扩大Apache Tomcat随附的西班牙语翻译的覆盖范围和质量. 包括Ulises Gonzalez Horta的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. 包括Yujiorama的贡献. (市场)
  • Add: Expand the coverage and quality of the Chinese translations provided with Apache Tomcat. Includes contributions from zheng. (markt)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. (kkolinko)

not released Tomcat 9.0.15 (markt)

Catalina

  • 固定: 54741 :添加新方法Tomcat.addWebapp(String,URL) ,当在嵌入式模式下使用Tomcat时,该方法允许从URL部署Web应用程序. (市场)
  • 固定: 63002 :修复设置重写qsdiscard标志. (雷姆)
  • 固定: 实现Servlet规范的第8.2.2 2c节的要求,并阻止Web应用程序部署(如果它具有名称重复的片段并且配置为使用片段的相对顺序). (市场)
  • 固定: 当依靠HttpServlet生成HEAD响应并且GET响应使用分块时,请确保HEAD响应与GET响应一致. (市场)
  • 固定: 确保ServletOutputStream实现与异步I / O的要求一致,并且所有写方法都使用单个写而不是多个写. (市场)
  • 固定: 更正Context.getDocBase()Context.setDocBase()的Javadoc,并删除指示URL可以用于docBase文本,因为这种情况已经有一段时间了. (市场)
  • 更新: 添加基本​​的健康检查阀. (雷姆)
  • 固定: 纠正9.0.14中暴露的错误,并确保Tomcat作为服务运行时及时终止. (市场)
  • 固定: 在使用需要Apr的连接器而不首先启用AprLifecycleListener时记录消息. (csutherl)
  • 固定: 特殊负数或零值的实用程序线程计数将再次基于Runtime.getRuntime().availableProcessors(). (雷姆)
  • 码: 在请求正文读取期间处理I / O错误与在响应正文写入期间处理I / O错误的方式相同. 这些错误被视为客户端错误而不是服务器端错误,并且仅在调试级别记录. (市场)
  • 固定: 63038 :尝试从损坏的JAR文件加载类时,请确保引发ClassNotFoundException . (市场)
  • 固定: 63078 :由于部署程序使用阻止模式,因此请确保实用程序线程池至少为两个. (雷姆,马克)
  • 加: 可以通过BasicAuthenticator上的新属性trimCredentials来配置从传递给BASIC身份验证的凭据中删除trimCredentials和结尾的空格. (市场)
  • 固定: 63003 :扩展unloadDelay在属性Context ,包括飞行异步请求. (市场)
  • 加: 63026 :向JNDIRealm添加新属性forceDnHexEscape ,以强制转义专有名称的String表示形式以使用\nn形式. 这样可以避免使用Active Directory的领域出现问题,当使用\nn格式时,该领域似乎更能接受可选的转义. (市场)
  • 固定:SecurityManager下运行时,避免在Web应用程序类加载期间吞下(因此被忽略)的访问失败. (市场)
  • 更新: 使用SSLHostConfig框架将SSL配置选项添加到JMX远程侦听器. (雷姆)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.21. (市场)
  • 固定: 63137 :如果已为Web应用程序的资源配置了映射到/WEB-INF/classes classs的多个位置,请确保在构建Web应用程序类路径时使用所有这些位置. MarcinGołębski提供的补丁. (市场)

Coyote

  • 加: 63009 :在适当的值可用的情况下,在HTTP / 2响应中包括可选的content-length标头. (市场)
  • 固定: 63022 :对于NIO和NIO2使用包装器isClosed方法时,请勿使用套接字打开状态,因为它将禁用所有进一步的处理. (雷姆)
  • 固定: 修复了NIO2的套接字关闭差异,现在除了套接字接受问题外,包装关闭都可用于所有地方. (雷姆)
  • 固定: 修复对HTTP / 2 NIO2帧读取使用写入超时而不是读取超时的问题. (雷姆)
  • 固定: 修复错误的APR sendfile线程停止. (雷姆)

Jasper

  • 固定: 63056 :更正了针对53737的修复程序中的回归,该回归未正确扫描JSP的Web应用程序目录结构. (市场)
  • 固定: 更新性能优化,以在依赖于具有隐式作用域的未初始化标签属性的标签中使用表达式,以使性能优化知道Java 12中添加的新公共类( java.lang.Enum$EnumDesc ).

WebSocket

  • 固定: 57974 :确保Session.getOpenSessions()实现为客户端和服务器端调用返回正确的值. (市场)
  • 固定: 63019 :写入时使用有效负载剩余字节而不是限制. 由Benoit Courtilly提交. (雷姆)
  • 固定:SecurityManager运行时,请确保默认javax.websocket.server.ServerEndpointConfig.Configurator实现的ServiceLoader查找正确完成,而不是使用硬编码的后备来静默地完成. (市场)
  • 固定: 如果客户端收到尝试与服务器通信的I / O错误,请确保关闭网络连接. (市场)
  • 固定: 扫描POJO方法时,请忽略合成方法. (市场)
  • 固定: 实施WebSocket 1.1规范的第5.2.1节的要求,并确保如果一个端点的部署失败,则不会为该Web应用程序部署任何端点. (市场)
  • 固定: 实施WebSocket 1.1规范的4.3节的要求,并确保如果@PathParam与无效的参数类型一起使用,则Endpoint的部署将失败. (市场)
  • 固定: 如果使用@OnMessage注释的方法不符合Javadoc中列出的要求,请确保引发DeploymentException异常而不是IllegalArgumentException异常. (市场)
  • 固定: 改进确定是否为同一消息类型添加了两个@OnMessage批注的算法. 在此更改之前,缺少一些比赛. (市场)

Web applications

  • 固定: 63103 :从示例Web应用程序中删除未使用的source.jsp文件和关联的标记,因为它不再被使用. (市场)

Tribes

  • 更新: 添加dns-ping支持以枚举群集成员. 这比获取Pod列表要简单得多,但是它并不指示Pod的状态. 由Maxime Beck提交. (雷姆)
  • 固定: 切勿使本地成员资格失效. (雷姆)

Other

  • 更新: 使用监视设备更新容器映像. (雷姆)
  • Add: Expand the coverage and quality of the Korean translations provided with Apache Tomcat. Includes contributions from woonsan and Chris Cho. (markt)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. 包括kfujino,Yujiorama和motohashi.yuki的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. 包括雷姆(Remm),路多维奇·佩内(LudovicPénet)和埃弗纳特(evernat)的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的德语翻译的覆盖范围和质量. 包括fschumacher,Stefan和burghard的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的中文(简体)翻译的覆盖范围和质量. 包括来自winsonzhao,Lanranzi,shawn,Winsonzhoa,JinXqian,RichardHo,qingshi huang,Greenman0007,Jim Ma,huxing,袁宇杰和evernat的贡献. (市场)
  • 加: 扩大Apache Tomcat随附的西班牙语翻译的覆盖范围和质量. 包括来自Ulises Gonzalez Horta,以色列,Eduardo Quintanilla和Miguel Ortega的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. 包括Andrei Maiseyenka和solomax的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的巴西葡萄牙语翻译的覆盖范围和质量. 包括Victor Caetano和Dabilo的贡献. (市场)
  • 固定: 63041 :更正了针对53930的修复程序中的回归,该回归使Tomcat无法与systemd一起正常使用. Patrik S.(市场)提供的补丁
  • 更新: 63072 :删除多余的东西(JMX远程侦听器和webservices对象工厂)并将它们合并回到核心版本中. (雷姆)
  • 加: 更新Apache Commons FileUpload的内部fork,以获取Apache Commons FileUpload 1.4发行版中的更改. (市场)
  • 更新: 将Apache Commons DBCP 2的内部fork更新为de20b77(2019-01-29),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.21,以在将NIO / NIO2与OpenSSL一起使用时获取内存泄漏修复程序. (市场)

2018-12-12 Tomcat 9.0.14 (markt)

Catalina

  • 固定: 62788 :添加了显式日志记录配置,以使用UTF-8写入日志文件,以默认情况下与Tomcat在其他地方对UTF-8的使用保持一致. (市场)
  • 固定: 默认Servlet不应覆盖先前设置的内容类型. (雷姆)
  • 固定: 修复storeconfig以获取集群加密拦截器密钥属性. (雷姆)
  • 加: 将预定的执行程序添加到服务器,该服务器可用于处理定期的实用程序任务. 默认情况下,实用程序线程是非守护程序. (雷姆)
  • 更新: 使用Server执行程序重构容器后台处理器,并添加监视以在发生意外错误时对其进行重新计划. (雷姆)
  • 更新: 使用服务器执行程序重构并行部署线程. (雷姆)
  • 加: 引入ConfigurationSource API以标准化对Tomcat核心配置资源的访问. (雷姆)
  • 更新: 通过允许设置配置源来更新Tomcat嵌入式API,这将允许处理核心配置. (雷姆)
  • 更新: 使用ConfigurationSource API重构server.xml,web.xml,context.xml,其他配置文件和资源的处理. JASPIC持久性提供程序基于文件加载和存储遗留文件. StoreConfig Tomcat配置文件根据其先前的默认位置存储剩余文件. (雷姆)
  • 加: 62897 :在标准Context实现上提供一个属性( clearReferencesThreadLocals ),该属性可以禁用通过ThreadLocal进行的内存泄漏检查,因为此检查取决于使用Java的更高版本中已弃用的API. (市场)
  • 固定: 修复具有重复SSL属性的更多storeconfig问题. (雷姆)
  • 固定: 62924 :修复了监视tomcat-users.xml修改的代码中引入的文件描述符泄漏. (市场)
  • 更新: 为服务器上配置的生命周期侦听器添加定期事件通知. (雷姆)
  • 固定: 62968 :在处理规则7时,避免在Mapper中进行不必要(且相对昂贵)的getResources()调用.
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.19. (市场)
  • 固定: 62978 :更新RemoteIpValve以处理x-forwarded-proto forward x-forwarded-proto标头中的多个值. Tom Groot提供的补丁. (市场)
  • 固定: 更新RemoteIpFilter以处理x-forwarded-proto forward x-forwarded-proto标头中的多个值. 基于Tom Groot提供的补丁. (市场)
  • 码: 62986 :重构在Web应用程序启动期间执行类扫描的代码,以使下游用户的集成更简单. 由rmannibucau提供的补丁. (市场)
  • 固定: 从storeconfig的监视资源列表中过滤掉tomcat-web.xml. (雷姆)
  • 固定: 62988 :修复LoadBalancerDrainingValve以便在未明确声明会话cookie配置时可以使用. 基于Andreas Kurth提供的补丁. (市场)

Coyote

  • 更新: 使用计划的执行程序重构连接器异步超时线程. (雷姆)
  • 更新: 避免在NIO2连接器上使用专用线程来接受,因为它总是效率较低. (雷姆)
  • 更新: 使用ConfigurationSource API为JSSE加载SSL配置资源. 使用OpenSSL需要实际文件. (雷姆)
  • 固定: 62899 :当使用Servlet非阻塞I / O通过HTTP / 2流读取请求正文时,防止错误地超时断开连接. (市场)
  • 固定: 在初始化之前,请避免SSLHostConfig JMX注册错误. (雷姆)
  • 固定: 当客户端使用TLS 1.0连接到配置为使用NIO或NIO2和OpenSSL 1.1.1或更高版本的Tomcat HTTPS连接器时,避免潜在的挂起. (市场)

Jasper

  • 更新: 将Eclipse Java编译器更新为4.9. Lukasz Jader的附加补丁. (市场)
  • 加: 53737 :扩展预编译工具JspC,以包括对资源JAR的支持. (市场)
  • 固定: 62976 :在将标记文件打包在JAR文件中时,使用后台编译时,避免IllegalStateException . (市场)

Web applications

  • 加: 53553 :添加了从服务器指定context.xml的功能,以便在上载Web应用程序以与Manager Web应用程序一起部署时使用. 由AntonLindström提供的补丁. (市场)
  • 固定: 62918 :过滤出子类型mbean,以避免破坏连接器状态页面. (雷姆)
  • 固定: 统一Web应用程序中"操作方法"一词的字母大小写(csutherl)

Tribes

  • 更新: 使用计划的执行程序重构在部落中执行的各种操作. 当部落不是独立运行时,它将使用Catalina服务器中的执行程序. 如果独立运行,则通道将提供执行程序. (雷姆)
  • 固定: 使EncryptInterceptor成为线程安全的. 这使得该拦截器实际上可用. (舒尔茨/马克特)
  • 加: 将对GCM模式的支持添加到EncryptInterceptor. (舒尔茨)

Other

  • 固定: 在Cygwin Shell中运行并且JAVA_ENDORSED_DIRS系统属性为空时,防止出现错误. Zemian Deng提供的补丁. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. 包括来自remm,soliplaya,LudovicPénet,David,NicolasG和bdelacretaz的贡献. (市场)
  • 加: 将简体中文翻译添加到Apache Tomcat的翻译中. 包括来自罗达伦,塞萨尔,温松昭,袁宇杰,兰然子,张洁雯,杰里,因兹利001,安柏诚,肖恩,薰衣草,郑丰,zengwc,RichardHo,mm,黄世石,鲍勃,极客旺,郑,迪安,天风经静,潘布莱克(Okok),戴夫·纽曼(Dave Newman),Cnfnss,马云(Jim Ma),852394875,胡兴和格林曼(Greenman)0007 (市场)
  • 加: 将韩语翻译添加到Apache Tomcat. 包括woonsan,JunSang Park,Song Choe和OhChan的贡献. (市场)
  • 加: 扩大Apache Tomcat随附的西班牙语翻译的覆盖范围和质量. 包括来自Ulises Gonzalez Horta,以色列,Eduardo Quintanilla和Miguel suarez的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. 包括solomax,Rafael Sachakov和Andrei Maiseyenka的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的德语翻译的覆盖范围和质量. 包括来自Matk80,burghard,Daniel Wehringer和Felix Schumacher的贡献. (市场)
  • 加: 扩大Apache Tomcat随附的日语翻译的覆盖范围和质量. 包括Yujiorama,motohashi.yuki和kfujino的贡献. (市场)
  • 加: 将巴西葡萄牙语翻译添加到Apache Tomcat. 包括来自geraldo netto的贡献. (市场)
  • 固定: 在标准Tomcat发行版中包括巴西葡萄牙语翻译. (市场)
  • 固定: 在标准Tomcat发行版中包括简体中文翻译. (市场)
  • 固定: 在标准Tomcat发行版中包含韩语翻译. (市场)
  • 加: 使用Maven为Tomcat添加打包方法,并为其添加容器构建文件. (雷姆)
  • 固定: 将XML命名空间添加到所有POM文件的项目元素中,以便XML文件格式正确且有效. (csutherl)
  • 加: 53930 :增加了对CATALINA_OUT_CMD环境变量的支持,该环境变量定义了将捕获的stdout和stderr重定向到的命令. 凯西·卢卡斯(Casey Lucas)提供的补丁. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.19,以获取使用APR 1.6.5和OpenSSL 1.1.1a构建的最新Windows二进制文件. (市场)
  • 更新: 将i18n添加到许多缺少它的字符串中. (雷姆)

2018-11-07 Tomcat 9.0.13 (markt)

Catalina

  • 加: 58590 :如果检测到最后修改时间的更改,则增加了UserDatabase监视后备XML文件的更改并重新加载源文件的功能. 默认情况下启用此功能,这意味着对$CATALINA_BASE/conf/tomcat-users.xml更改现在将在文件保存后不久生效. (市场)
  • 加: 61171 :将portOffset属性添加到Server元素,该元素添加到已配置的关闭端口和Connector端口. 基于Marek Czernek的补丁. (市场)
  • 加: 61692 :添加了通过新的初始化参数cgiMethods控制CGI Servlet处理哪些HTTP方法的cgiMethods . (市场)
  • 固定: 62687 :使用压缩战争时公开资源的内容长度信息. (雷姆)
  • 固定: 62737 :修复了{}嵌套的重写替换解析. (雷姆)
  • 固定: 恢复重写配置时,添加重写标志输出. (雷姆)
  • 固定: 将丢失的qsdiscard标志添加到重写标志中,作为丢弃查询字符串的更干净的方法. (雷姆)
  • 加: 62755 :增加了在嵌入Tomcat时选择不添加默认的web.xml配置并通过addWebapp()添加上下文的addWebapp() . 调用setAddDefaultWebXmlToWebapp(false)以阻止自动配置. (伊萨皮尔)
  • 固定: 添加有关context.xml.defaultweb.xml.default文件的文档,这些文档可用于基于每个主机自定义conf/context.xmlconf/web.xml . (fschumacher)
  • 固定: 确保规范路径始终用于上下文的docBase,以确保行为一致. (市场)
  • 固定: 62803 :修复了storeconfig中的SSL连接器配置处理. (雷姆)
  • 固定: 62797 :可以通过传递,以使客户端中止状态为200而不是500.Zikfat提交了补丁. (雷姆)
  • 固定: 62802 :将appContextProtection属性恢复到JreMemoryLeakPreventionListener因为应用程序代码可能仍会触发此内存泄漏. (市场)
  • 固定: 62809 :更正了对Deployer Ant任务的DIGEST身份验证支持的实现中的回归(错误45832 ),这在需要身份验证时阻止DeployTask起作用. (市场)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.18. (市场)
  • 加: 忽略StandardContext提供的Context元素上名为source的属性. 这是为了抑制由Eclipse提供的Eclipse / Tomcat集成生成的警告. 基于mdfst13的补丁. (市场)
  • 加: 62830 :添加了JniLifeCycleListener和静态方法Library.loadLibrary(libraryName)Library.load(filename)以通过共享类加载器加载本机库,以便多个Webapp可以使用它. (伊萨皮尔)
  • 码: 重构Connector以便从Endpoint而不是可能会导致最终不同步的本地字段获取端口. (市场)
  • 固定: 更正西班牙语资源文件中的错字. DiegoAgulló提供的补丁. (市场)
  • 固定: 62868 :根据委托标志的设置,对WebappClassLoaderBase.getResources(String)提供的Enumeration<URL>进行WebappClassLoaderBase.getResources(String) . (市场)

Coyote

  • 加: 在支持TLS版本1.3的JVM上运行时,将TLSv1.3添加到默认协议和基于JSSE的TLS连接器的all别名. 这样的JVM就是OpenJDK版本11.(rjung)
  • 固定: 62685 :更正主机名验证解析中的错误,该错误不允许完全限定的域名以句点终止. AG提供的补丁. (市场)
  • 固定: 使PEM文件解析器成为公共实用程序类. (雷姆)
  • 固定: 62739 :请勿拒绝具有空HTTP Host标头的请求. 这样的请求是异常的,但不是无效的. 迈克尔·奥尔(Michael Orr)提供的补丁. (市场)
  • 加: 62748 :使用OpenSSL支持的JSSE实现时,为APR / Native连接器和NIO / NIO2连接器添加了TLS 1.3支持. (舒尔茨/马克特)
  • 固定: 62791 :删除了NIO TLS实施中的不必要检查,该检查阻止建立安全的WebSocket连接. (市场)
  • 固定: 当使用NIO / NIO2和OpenSSL支持的JSSE TLS实现时,修订服务器启动TLS重新协商以获得客户端证书. (市场)
  • 固定: 如果套接字绑定过程失败,请确保清理打开的套接字等. (市场)
  • 固定: 62871 :通过使用属性和操作的显式声明而不是依靠自省,改进了Endpoint实例的MBean(在JMX中为ThreadPool类型). 添加一个新的MBean以公开Socketproperties值. (市场)

Jasper

  • 固定: 正确解析TLD函数签名中的XML空格,该签名错误地仅寻找空格字符. (市场)
  • 固定: 62674 :更正了独立的JSP编译器实用程序JspC的回归,该回归是由53492的修复引起的,该回归导致JSP编译器挂起. (市场)
  • 固定: 62721 :使用JspC时,正确生成了web.xml标头. (市场)
  • 固定: 62757 :更正了针对62603的修复程序中的回归,该回归在禁用开发模式和启用后台编译的情况下在首次访问时编译标记文件时导致NullPointerException . 基于Jordi Llach的补丁. (市场)

WebSocket

  • 固定: 62731 :将HandshakeRequest.getRequestURI()Session.getRequestURI()返回的URI设置为绝对,以便可访问方案,主机和端口. (市场)

Web applications

  • 固定: 62676 :扩展CORS筛选器文档以明确要求进行显式配置才能支持跨域请求. (市场)
  • 固定: 62712 :尝试查看APR /本机TLS连接器的已配置证书时,请在Manager应用程序中更正NPE. (市场)
  • 固定: 62761 :更正过滤器文档中的高级CORS示例,以使用有效的配置. (市场)
  • 固定: 62786 :在Context文档中添加一条注释,以说明默认情况下,在server.xml中定义的Context元素的设置将被默认上下文文件(例如conf/context.xml指定的设置覆盖. (市场)
  • 固定: 在Manager应用程序中的Undeploy按钮和其他按钮之间创建一些视觉上的分隔. ŁukaszJąder提供的补丁. (市场)

Tribes

  • 加:setMembershipService方法添加到MembershipProvider . (kfujino)
  • 加: 基于Maxime Beck的代码的实验性Kubernetes感知云成员资格提供商. 包含从jgroup派生的代码. (雷姆/ kfujino)
  • 固定: 将事件通知ThreadPoolExecutor移到MembershipProviderBase . (kfujino)
  • 固定: 即使所有成员都已经消失并且无法发送PING,也请确保成员已过期. (kfujino)
  • 固定: 添加成员后,请确保从可疑列表中删除该成员. (kfujino)
  • 加: 将EncryptInterceptor添加到可用的群集拦截器的产品组合中. 这将会话数据的对称加密添加到Tomcat群集中,而不管所使用的群集管理器类型或成员身份如何. (舒尔茨)

Other

  • 固定: 端口DBCP事务同步注册表修复程序(提交d49d45e). (雷姆)
  • 更新: 将Apache Commons Pool 2的内部fork更新为d4e0e88(2018-09-12),以获取一些错误修复和增强功能. (市场)
  • 加: 62705 :在构建Tomcat时,添加了快速失败检查以快速检查最低必需的Apache Ant版本1.9.8. (伊萨皮尔)
  • 加: 添加了ant目标ide-intellij来创建IntelliJ IDEA项目. (伊萨皮尔)
  • 加: 实用程序JSON解析器,它是由Robert Fischer编写的公共领域javacc语法生成的. (雷姆)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.18,以获取使用APR 1.6.5和OpenSSL 1.1.1构建的最新Windows二进制文件. (市场)

2018-09-10 Tomcat 9.0.12 (markt)

Catalina

  • 固定: 使用RequestDispatcher对象时,改进对路径参数的处理. (市场)
  • Fix: 62664: Process requests with content type multipart/form-data to servlets with a @MultipartConfig annotation regardless of HTTP method. (markt)
  • 固定: 62667 :添加递归以重写替换解析. (雷姆)
  • 固定: 62669 :使用SSIFilter且资源未指定内容类型时,请勿将内容类型强制设置为application/x-octet-stream . (市场)
  • 固定: 62670 :调整DriverManager的内存泄漏保护,以便启用保护后,通过服务加载程序机制加载$CATALINA_HOME/lib$CATALINA_BASE/lib中的JDBC驱动程序. (市场)
  • 固定: 在默认Servlet中生成到目录的重定向时,请避免生成协议相对重定向. (市场)

Coyote

  • 固定: 使用HTTP / 2连接器进行异步Servlet处理时,修复潜在的死锁. (市场)
  • 固定: 62620 :修复了通过HTTP / 2使用异步处理编写大型主体时响应主体的损坏. (市场)
  • 固定: 62628 :针对使用HTTP / 2上的异步处理编写大型主体时响应主体的输出损坏的其他修复程序. (市场)
  • 码: org.apache.tomcat.jni软件包中对Netware的支持已被删除,因为多年以来一直没有受支持的Netware平台. (市场)

Jasper

  • 固定: 更正启用xpoweredBy选项时生成的X-PoweredBy HTTP标头中的JSP版本. (市场)
  • 固定: 62662 :修复了由于53492导致的JSP编译期间web.xml输出的损坏. Bernhard Frauendienst提供的补丁. (市场)

Web applications

  • 加: 在文档Web应用程序中展开有关CATALINA_HOMECATALINA_BASE的使用的信息. Marek Czernek提供的补丁. (市场)
  • 固定: 62652 :更清楚地说明,Tomcat 9.0.x中打包的DBCP版本是DBCP2 .更正在1.x和2.x之间更改的某些DBCP 2配置属性的名称. (市场)
  • 加: 62666 :扩展Manager应用程序中的国际化支持,以包括服务器状态页面,并提供除英语之外的俄语翻译. Artem Chebykin提供的补丁. (市场)

Other

  • 固定: 使用closer.lua脚本将构建脚本切换为使用http从ASF镜像下载,以避免由于HTTPS到HTTP重定向而导致失败. (荣)

2018-08-17 Tomcat 9.0.11 (markt)

Catalina

  • 加: 使isLocked()的方法LockOutRealm公众和暴露通过JMX的方法. (市场)
  • 加: 53387 :将对正则表达式捕获组的支持添加到SSI Servlet和过滤器. (市场)
  • 固定: 53411 :当未配置默认主机时,改进了不显式指定主机名的HTTP请求的处理. 当Tomcat运行时添加和删除主机时,还可以改善对默认主机更改的跟踪. (市场)
  • 固定: 使用CORS筛选器时,请确保正确设置了HTTP Vary标头,并提高了通过COPRS筛选器的请求的可缓存性. (市场)
  • 固定: 62527 :将JNDI的限制恢复为java:命名空间. (雷姆)
  • 加: 引入一个新类MultiThrowable在执行多个操作时报告异常,其中每个操作都可能引发异常,但是在报告任何错误之前都执行了所有操作. 在启动过程中报告多个容器(例如Web应用程序)失败时,请使用此新类. (市场)
  • 固定:RequestDispatcher和Web应用程序类加载器中正确解码URL路径(不应将+解码为路径中的空格). (市场)
  • 加: 如果JASPIC主题意外不可用,则使注销更加可靠. (市场)
  • 固定: 62547 :将身份验证器配置为缓存经过身份验证的主体时,未在注销时调用cleanSubject() . GuillermoGonzálezdeAgüero提供的补丁. (市场)
  • 加: 62559 :将jaxb-*.jar添加到StandardJarScanner忽略的JAR列表中. (市场)
  • 加: 62560 :将oraclepki.jar添加到StandardJarScanner忽略的JAR列表中. (市场)
  • 加: 62607 :从catalina.[bat|sh] run返回非零退出代码catalina.[bat|sh] run如果Tomcat无法启动,则catalina.[bat|sh] run . (市场)
  • 固定: 使用短路逻辑来防止CorsFilter中潜在的NPE. (fschumacher)
  • 码: 从JAASRealm中的容器名称简化appName的构造. (fschumacher)
  • 码:Tomcat.addWebapp(String,String)声明中删除ServletException Tomcat.addWebapp(String,String)因为它永远不会抛出. Tzafrir提供的补丁. (市场)

Coyote

  • 码: 重构HTTP日期创建和解析,以减少代码重复,减少ThreadLocals的使用并增加缓存的使用. (市场)
  • 固定: 56676 :为本地库添加默认位置,即$ {catalina.home} / bin,测试套件已在其中使用它. (雷姆)
  • 更新: 60560 :添加对使用继承的通道到NIO连接器的支持. 基于Thomas Meyer提交的补丁以及Coty Sutherland的测试和建议. (雷姆)
  • 固定: 62507 :确保基于JSSE的TLS连接器与DKS密钥库一起正常工作. (市场)
  • 固定: 重构代码,该代码将额外的标头名称添加到Vary HTTP响应标头中,以使用可解决几种其他极端情况的通用实用程序方法. (市场)
  • 固定: 62515 :将连接器配置为(通过将bindOnInit设置为false )以在启动/停止期间绑定/取消绑定服务器套接字时,请在停止过程中更早地关闭套接字,以便在关闭过程中新连接不会位于TCP待办事项中,在停止完成时被丢弃. 在这种情况下,现在将立即拒绝新的连接. (市场)
  • 固定: 62526 :当密钥库密码配置为空字符串时,可以正确处理PKCS12格式的密钥库. (市场)
  • 固定: 62605 :当使用基于HTTP / 2的异步处理时,如果初始请求正文数据在请求标头之后到达,则确保调用ReadListener.onDataAvailable() . (市场)
  • Fix: 62614: Ensure that WriteListener.onWritePossible() is called after isReady() returns false and the window size is subsequently incremented when using asynchronous processing over HTTP/2. (markt)

Jasper

  • 加: 53492 :使Java文件生成过程成为多线程. 默认情况下,每个内核将使用一个线程. 基于Dan Fabulich的补丁. (市场)
  • 加: 62453 :添加性能优化,以在依赖于隐式作用域的未初始化标签属性的标签中使用表达式. 通常,在EL中使用带有标签属性的显式作用域是避免各种潜在性能问题的最佳方法. (市场)
  • 固定: 在Jasper类加载器中正确解码URL路径(不应将+解码为路径中的空格). (市场)
  • 固定: 62603 :修复了禁用开发模式并启用后台编译检查时的潜在竞争条件. 某些更新可能不会生效和/或将发生ClassNotFoundException . (市场)

WebSocket

  • 固定: 62596 :取消了用于建立Web套接字连接的初始HTTP升级请求的大小限制. (市场)

Web applications

  • 加: 62558 :为Manager和Host Manager Web应用程序添加俄语翻译. 基于Ivan Krasnov的补丁. (市场)
  • 加: 添加文档的静态会员服务. (kfujino)
  • 加: 62561 :将有关服务器和共享类加载器使用的高级类加载器配置信息添加到文档Web应用程序. (市场)

Tribes

  • Fix: Ensures that the specified rxBufSize is correctly set to receiver buffer size. (kfujino)
  • 固定: 更正通道组件的停止顺序. 它以与启动时相反的顺序停止. (kfujino)
  • 加: 添加了新的StaticMembership实现. 此实现不需要其他ChannelInterceptors任何其他配置. 它仅适用于会员服务. (kfujino)

Other

  • 更新: 支持在运行时保留Java 8兼容性的同时使用Java 9+进行构建(需要Ant 1.9.8或更高版本). (外景)
  • 更新: 将WSDL4J库更新到版本1.6.3(从1.6.2开始). (kkolinko)
  • 更新: 将JUnit库更新到版本4.12(从4.11开始). (kkolinko)
  • 更新: 由于无法从Maven Central获得2.2.3版本,因此将用于EasyMock测试的CGLib库降级为2.2.2版本(从2.2.3版本开始). (市场)
  • 加: 下载用于构建Tomcat的依赖项时,实施校验和检查. (kkolinko)
  • 固定: 固定的拼写. Jimmy Casey通过GitHub提供的补丁. (紫罗兰色)
  • 更新: 将Apache Commons Pool 2的内部fork更新为3e02523(2018-08-09),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Apache Commons DBCP 2的内部fork更新为abc0484(2018-08-09),以获取一些错误修复和增强功能. (市场)
  • 固定: 在源代码和文档中更正各种拼写错误. Kazuhiro Sera提供的补丁. (市场)

2018-06-25 Tomcat 9.0.10 (markt)

Catalina

  • 固定: 62476 :按照HTTP规范(RFC 7231,7234)的要求,将GMT时区用作Expires标头的值. (kkolinko)

not released Tomcat 9.0.9 (markt)

Catalina

  • 固定: 以与等效的@Resource批注的mappedName元素相同的方式对待web.xml中的<env-entry><mapped-name>元素. 两者现在都尝试设置资源的mappedName属性. (市场)
  • 固定: 使用web.xml中定义的<injection-target>纠正资源处理. 首先使用JavaBean属性名称查找匹配项,然后(只有在未找到匹配项的情况下)使用字段查找匹配项. (市场)
  • 固定: 在FORM身份验证之后使用请求正文还原保存的请求时,请确保对HttpServletRequest方法getRequestURI()getQueryString()getProtocol()调用不会因保存的请求正文的处理而损坏. (市场)
  • 固定: 现在将使用注入目标定义但没有值的JNDI资源视为未定义资源. (市场)
  • 固定: 确保用于web.xml中的<lookup-name>条目和@Resource批注的lookup元素的JNDI名称指定具有显式java:命名空间的名称. (市场)
  • 固定: 50019 :添加对<lookup-name> . 基于Gurkan Erdogdu的补丁. (市场)
  • 加: 仅当需要经过身份验证的用户名时,添加AuthenticatedUserRealm与CLIENT-CERT和SPNEGO一起使用. (市场)
  • 固定: 50175 :向标准上下文实现添加新属性skipMemoryLeakChecksOnJvmShutdown ,该属性允许用户将Tomcat配置为跳过通常在Web应用程序停止期间执行的内存泄漏检查(如果该停止由JVM关闭触发). (市场)
  • Add: 51497: Add an option, ipv6Canonical, to the AccessLogValve that causes IPv6 addresses to be output in canonical form defined by RFC 5952. (ognjen/markt)
  • 加: 51953 :添加RemoteCIDRFilterRemoteCIDRValve ,可用于允许/拒绝基于IPv4和/或IPv6客户端地址的请求,其中IP范围是使用CIDR表示法定义的. 基于Francis Galiegue的补丁. (市场)
  • 固定: 62343 :使CORS过滤器默认设置更安全. 这是CVE-2018-8014的修复程序. (市场)
  • 固定: 确保Web应用程序资源实现不会错误地缓存仅作为类加载器资源可见的资源的结果. (市场)
  • 固定: 62387 :如果基于文件的持久性会话存储由于尚未创建该会话而使该会话无效时未能删除该会话的文件,则不要记录警告消息. (市场)
  • 固定: 使与Tomcat关联的所有记录器提供的"过滤器"均为非静态,以确保在重新加载Web应用程序时不会丢失日志消息. (市场)
  • 固定: 更正批注-api.jar的清单. JAR实现了Common Annotations API 1.3,清单应该反映出这一点. (市场)
  • Fix: Switch to non-static loggers where there is a possibility of a logger becoming associated with a web application class loader causing log messages to be lost if the web application is stopped. (markt)
  • 加: 62389 :将IPv6环回地址添加到默认的internalProxies正则表达式中. 克雷格·安德鲁斯的补丁. (市场)
  • 固定:RemoteIpValveRemoteIpFilter ,正确处理请求通过一个或多个trustedProxies但不传递internalProxies . 基于zhanhb的补丁. (市场)
  • 固定: 更正MBeanFactory.removeConnector()的逻辑,以确保当有多个使用不同地址但使用同一端口的连接器时,删除了正确的连接器. (市场)
  • 固定: 通过要求经过身份验证的Subject至少包含一个userClassNames指定类型的Principal,使JAASRealm错误配置更加明显. (市场)

Coyote

  • 固定: 更正错误页面处理中的回归,该回归阻止了错误页面发出重定向或采取其他需要更改响应状态代码的操作. (市场)
  • 固定: NIO2 SSL的一致异常传播关闭. (雷姆)
  • 固定: NIO2异步IO的后续同步修复程序阻止了读/写. (雷姆)
  • 固定: 如果AJP连接器检测到反向代理正在发送的AJP消息对于配置的packetSize太大,则记录一条错误消息. (市场)
  • 固定: 通过取消FQDN的最后部分必须为字母的要求来放宽主机验证. (市场)
  • 固定: 62371 :改进了对主机验证失败的记录. (市场)
  • 固定: 在关闭APR /本机连接器时,修复了一些不太可能的边缘情况. (市场)
  • 固定: 为NIO2添加丢失的握手超时. (雷姆)
  • 固定: 用户名包含转义字符时,请正确处理摘要授权标头. (市场)
  • 固定: 当十六进制字段值之一以无效字符结尾标头时,正确处理摘要授权标头. (市场)
  • 固定: 正确处理Accept-Language标头中的无效质量值. (市场)
  • 文件: 62423 :修复SSL文档CRL属性拼写错误. (雷姆)
  • 固定: 通过确保IPv4映射的IPv6地址在IPv4部分中不包含前导零来改进IPv6验证. 基于Katya Stoycheva的补丁. (市场)
  • 固定: 修复了尝试记录消息时从replaceSystemProperties()引发的NullPointerException . (csutherl)
  • Fix: Avoid unnecessary processing of async timeouts. (markt)

Jasper

  • 加: 50234 :向JspC添加了生成web-fragment.xml文件的功能. (市场)
  • 固定: 62080 :确保通过PrivilegedAction执行UEL API和实现对当前线程的上下文类加载器的所有读取,以确保在SecurityException下运行时不会触发SecurityManager . (标记)
  • 固定: 62350 :重构org.apache.jasper.runtime.BodyContentImpl以便在SecurityException下运行时不会引发SecurityException,并且catalina.policy文件中不需要其他权限. 这是对43925的修复. (kkolinko /市场)
  • 固定: 从Tomcat 9中启用JspC,使其可以与为Tomcat 8.5.x编写的Maven JspC编译器插件一起使用. Pavel Cibulka提供的补丁. (市场)
  • 固定: 更新由JspC生成的web.xml,web-fragment.xml和web.xml提取,以使用相关模式的Servlet 4.0版本. (市场)

Cluster

  • 固定: 创建复制的会话时,请删除重复的呼叫,以减少创建会话所花费的时间,从而减少由于该会话尚不存在而忽略后续会话更新消息的机会. (市场)
  • 加: 添加方法以使用指定的sendOptions发送消息. (kfujino)
  • 固定: 发送GET_ALL_SESSIONS消息时,请确保使用异步选项发送,以避免ack超时. 等待接收ALL_SESSION_DATA消息应使用waitForSendAllSessions而不是ACK完成. (kfujino)

WebSocket

  • 更新: 使用NIO2 API进行WebSocket写入. (雷姆)
  • 固定: 当路径参数的解码失败时,请确保抛出DecodeException而不是ArrayIndexOutOfBoundsException . (kfujino)
  • 固定: 改进WebSocket客户端在TLS握手期间的异常处理. (市场)
  • 固定: 将TLS与WebSocket客户端一起使用时,请启用主机名验证. (市场)

Web applications

  • 固定: 62395 :在文档说明Web应用程序中阐明连接器属性minSpareThreads的含义. (市场)
  • 固定: 请更正标准HTTP连接器实现的allowHostHeaderMismatch属性的文档. (市场)

Tribes

  • 固定:McastService检索未设置的属性时,请确保返回正确的默认值. (kfujino)
  • 加: 使MembershipService更容易扩展. (kfujino)

jdbc-pool

  • 固定:logValidationErrors设置为true时,连接验证错误记录为SEVERE而不是WARNING . (kfujino)

Other

  • 固定: 确保可以使用Java 11从源代码构建Apache Tomcat.(标记)
  • 加: 52381 :将OSGi元数据添加到JAR文件中. (市场)
  • 固定: 62391 :删除对javaw.exe引用,因为Tomcat不需要此文件,并且这些引用会阻止使用Server JRE. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.17,以获取使用APR 1.6.3和OpenSSL 1.0.2o构建的最新Windows二进制文件. (市场)
  • 更新: 62458 :将Commons Pool 2的内部fork更新为dfef97b(2018-06-18),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Commons DBCP 2的内部fork更新为2.4.0. (市场)

2018-05-03 Tomcat 9.0.8 (markt)

Catalina

  • 固定: 62263 :当RemoteIpValve处理找不到上下文的请求时,请避免NullPointerException . (市场)
  • 加: 62258 :当错误导致关闭与客户端的连接时,不要触发标准错误页面机制,因为没人会看到错误页面. (市场)
  • 固定: 当DataSource Resource type="javax.sql.XADataSource"时注册MBean. 三浦正史提供的补丁. (csutherl)
  • 固定: 修复了在实际使用中不太可能发生的极少数情况. 这种边缘情况意味着,将几乎全部由代理对组成的较长的UTF-8字符流写入HTTP响应可能会导致一个代理对被丢弃. (市场)
  • 加: 将Apache Commons BCEL的内部fork更新为r1829827,以将早期访问Java 11支持添加到注释扫描代码中. (市场)
  • 固定: 62297 :在主机或引擎上配置Valve时,使CrawlerSessionManagerValve能够正确处理对多个主机和/或Web应用程序进行爬网的机器人. (fschumacher)
  • 固定: 62309 :在非强制性身份验证的情况下,在SecurityManager下使用JASPIC时,修复了SecurityException . (市场)
  • 固定: 62329 :当目录没有专用条目时,正确列出JAR文件中的资源. MeelisMüür提供的补丁. (市场)
  • Add: Collapse multiple leading / characters to a single / in the return value of HttpServletRequest#getContextPath() to avoid issues if the value is used with HttpServletResponse#sendRedirect(). This behaviour is enabled by default and configurable via the new Context attribute allowMultipleLeadingForwardSlashInPath. (markt)
  • 固定: 使用补充字符改善UTF-8解码器中的溢出处理. (市场)

Coyote

  • 固定: 纠正线程池中的"一对一"错误,该错误使线程池的大小增加到比配置的限制大一倍. usc提供的补丁. (市场)
  • 固定: 防止将NIO或NIO2连接器与OpenSSLImplementation一起使用时,由于前一次握手期间的错误导致的意外TLS握手失败,而该错误没有正确清理. (市场)
  • 加: 62273 :实施配置选项以解决规范不兼容的用户代理(包括所有主要浏览器)的问题,这些代理不能正确地对RFC 7230和RFC 3986要求的URI路径和查询字符串进行%nn编码.(标记)
  • 固定: 修复NIO2异步IO阻止读取/写入的同步. (雷姆)

Jasper

  • 更新: 将Eclipse Java编译器更新为4.7.3a. (市场)
  • 更新: 允许使用9将Java 9指定为JSP编译的编译器源和/或编译器目标. 仍支持1.9的抢先体验值. (市场)
  • 加: 添加对将Java 10(值为10 )指定为JSP编译的编译器源和/或编译器目标的支持. (市场)
  • 固定: 62287 :请勿依赖哈希码来测试ValueExpressionImpl实例的相等性. Mark Struberg提供的补丁. (市场)

WebSocket

  • Fix: 62301: Correct a regression in the fix for 61491 that didn't correctly handle a final empty message part in all circumstances when using PerMessageDeflate. (markt)
  • 固定: 62332 :在遇到从客户端读取的I / O错误后,请确保WebSocket连接已关闭. (市场)

Other

  • 固定: 当未设置JAVA_ENDORSED_DIRS环境变量时,避免在Cygwin下运行时发出警告. Zemian Deng提供的补丁. (市场)

2018-04-07 Tomcat 9.0.7 (markt)

Catalina

  • 固定: 51195 :通过在Web应用程序停止时清除由Web应用程序加载的类的ObjectStreamClass$Caches ,避免对Web应用程序内存泄漏的误报. (市场)
  • 固定: 52688 :将对maxDays属性的支持添加到AccessLogValveExtendedAccessLogValve . 这允许在定义删除之前保留轮换访问日志的最大天数. (市场)
  • 固定:Connector绑定到特定的IP地址时,请确保SSLHostConfigSSLHostConfigCertificate的MBean名称正确形成. (市场)
  • 固定: 62168 :使用PersistentManagerminIdleSwap的值应为-1 ,并且不要交换会话以将活动会话数保持在maxActive . Holger Sunke提供的补丁. (市场)
  • 固定: 62172 :改进org.apache.catalina.startup.Constants Javadoc并确保正确使用了常量. (市场)
  • 固定: 62175 :在使用PersistentManager加载会话时尝试验证会话时,请避免无限递归. (fschumacher)
  • 固定: 确保仅在关联的命名资源上的属性更改后才通知NamingContextListener实例. (市场)
  • 加: 62224 :在Java 9及更高版本上运行时,请禁用forkJoinCommonPoolProtectionJreMemoryLeakPreventionListener ,因为已修复了底层JRE错误. (市场)

Coyote

  • 固定: 避免APR /本机轮询器中的潜在循环. (市场)
  • 固定: 确保已接收但未处理的流从跟踪已处理流的最大ID中排除. (市场)
  • 固定: 重构对暂停的连接器的检查,以始终防止在暂停连接器之后创建新的流. (市场)
  • 固定: 改进HTTP / 2推送流的调试日志记录. (市场)
  • 固定: 现在,OpenSSL引擎SSL会话将忽略无效访问. (雷姆)
  • 固定: 62177 :使用HTTP / 2 PUSH_PROMISE帧纠正两个协议错误. 首先,HTTP / 2协议仅允许在对等发起的请求上发送推送. 其次,必须按增加的流ID的顺序发送推送. 这些限制没有得到强制执行,从而导致客户端出现协议错误. (市场)

Web applications

  • 加:FragmentationInterceptor添加文档. (kfujino)
  • 加: 记录使用CombinedRealm时如何确定已认证用户的角色. (市场)
  • 固定: 62163 :更正Tomcat安装文档,该文档错误地将Java 7称为最低版本,而不是Java8 .(标记)

Tribes

  • 固定: 添加对FragmentationInterceptor JMX支持,以防止启动警告. (kfujino)

jdbc-pool

  • 固定: 当连接返回池时,请确保已清除SQLWarning . (kfujino)
  • 加: 通过JMX启用SQLWarning清除. (kfujino)
  • 固定: 缓存PreparedStatement和/或CallableStatement时,请确保已清除参数. (kfujino)
  • 固定: 即使未设置validationQuery也可以启动PoolCleaner. (kfujino)

Other

  • 更新: 更新构建脚本,以便不再根据ASF分发策略中的更改为发行版生成MD5哈希. (市场)
  • 固定: 62164 :将构建脚本切换为使用TLS从SourceForge和Maven Central下载,以避免由于HTTP到HTTPS重定向而导致失败. (市场)
  • 加: 启动JVM时,始终报告操作系统的umask. (舒尔茨)
  • 加: 将托管连接软件包添加到名为DBCP 2的软件包中,以在Tomcat中提供完整的DBCP 2. (雷姆)

2018-03-08 Tomcat 9.0.6 (markt)

Catalina

  • 固定: 43866 :将其他属性添加到Manager中,以提供对将属性添加到会话中时已经使用相同名称添加的会话时将调用哪些侦听器的控制. 这有助于群集化场景,在该场景中,通常会调用setAttribute()来发出信号,表明该属性值已被更改并且需要复制,但是触发关联的侦听器可能不需要,甚至不希望使用它. 默认行为尚未更改. (市场)
  • 固定: 调用类转换器时的次要优化. (荣)
  • 加: 将无效请求或不可用服务触发的错误适当地传递给应用程序提供的错误处理和/或容器提供的错误处理( ErrorReportValve ). (市场)
  • 加: 41007 :添加了使用ErrorReportValve为特定错误代码和/或异常类型指定静态HTML响应的ErrorReportValve . (市场)
  • 固定: 防止Tomcat将gzip压缩应用于已经使用brotli压缩进行压缩的内容. 基于burka提供的补丁. (市场)
  • 固定: 62090 :不允许使用空容器名称. (雷姆)
  • 固定: 62104 :修复了编程登录回归,因为必须设置NonLoginAuthenticator才能使其正常工作(如果未指定登录方法). (雷姆)
  • 固定: 62117 :当调用kill -0 <pid>失败时,改进了catalina.sh错误消息. 根据Mark Morschhaeuser的建议. (市场)
  • 固定: 62118 :使用指定的接口而不是具体类型正确创建JNDI ServiceRef . 根据ÁngelÁlvarezPáscua的建议. (市场)
  • 固定: 修复RequestDumperFilter日志属性. Kirill Romanov通过Github提供的补丁. (紫罗兰色)
  • Fix: 62123: Avoid ConcurrentModificationException when attempting to clean up application triggered RMI memory leaks on web application stop. (markt)
  • 加: 部署包含path属性的部署描述符时,记录一条警告,指出该path属性将被忽略. (市场)
  • 加: 部署引用外部docBase的部署描述符后,将忽略appBase下的docBase ,请记录警告. (市场)
  • 固定: 更正60276修复程序中的回归,这意味着将压缩应用于所有MIME类型. Stefan Knoblich提供的补丁. (市场)

Coyote

  • 加: 为NIO2添加异步HTTP / 2解析器. (雷姆)
  • 固定: 根据Stuart Douglas的修补程序添加次要的HPACK修补程序. (雷姆)
  • 固定: 61751 :后续修复,如果未产生字节且输入为空,则OpenSSL引擎在展开包装时将返回下溢. (雷姆)
  • 固定: 少量OpenSSL引擎清理. (雷姆)
  • 固定: NIO SSL握手应在溢出状态上引发异常,例如NIO2 SSL. (雷姆)

Web applications

  • 加: 47467 :当通过管理器应用程序部署Web应用程序且未明确指定路径时,请从提供的部署描述符或WAR或DIR(如果不存在)中获取它. (市场)
  • 加: 48672 :添加有关主机管理器Web应用程序的文档. Marek Czernek提供的补丁. (市场)
  • 加: 通过Manager应用程序HTML界面部署应用程序时,添加对指定应用程序版本的支持. (市场)
  • 加: 解决某些版本的IE中已知的,不符合规范的行为,当Manager应用程序生成纯文本响应时,该行为可能允许XSS. 根据Muthukumar Marikani的建议. (市场)

2018-02-11 Tomcat 9.0.5 (markt)

Catalina

  • 固定: 防止由于LogManager实现的更改而在Java 10上运行时将堆栈跟踪写入标准输出. (市场)
  • 固定: 如果已经进行过一次加载尝试,则避免重复尝试. (雷姆)
  • 固定: 如果没有引擎,请避免在ThreadLocalLeakPreventionListener中使用NPE. (雷姆)
  • 固定: 62000 :当无法解析JNDI引用时,请确保报告根本原因异常而不是将其吞下. (市场)
  • 固定: 62036 :当使用NonLoginAuthenticator配置Web应用程序时在会话中缓存经过身份验证的用户Principal时,请缓存内部Principal对象,而不是面对Principal对象的用户,因为Tomcat要求内部对象正确处理以后的授权检查. (市场)
  • 加: 重构错误处理,以使在将处理传递给应用程序之前发生的错误可以由应用程序提供的错误处理和/或容器提供的错误处理( ErrorReportValve )进行适当处理. (市场)
  • 加: 将由缺少的ROOT Web应用程序触发的404错误传递到容器错误处理,以生成响应主体. (市场)
  • 加: 将无效请求目标触发的400个错误传递到容器错误处理,以生成响应主体. (市场)
  • 固定: 当响应带有405状态代码的JSP的HTTP TRACE请求时,提供正确的Allow标头. (市场)
  • Fix: When using Tomcat embedded, only perform Authenticator configuration once during web application start. (markt)
  • 固定: 62067 :使用URL模式""正确应用映射到上下文根的安全约束. (市场)
  • 固定: 在Web应用程序启动时(而不是在Servlet加载时)处理所有ServletSecurity批注,以确保一致地应用约束. (市场)

Coyote

  • 固定: 61751 :修复在带TLS的NIO2上使用时截断的请求输入流的问题. (市场)
  • 固定: 62023 :使用APR连接器而不是使Tomcat崩溃时,报告多个SSLHostConfig元素的日志错误. (csutherl)
  • 固定: 62032 :当未在SSLHostConfig上定义certificateFile时,修复了NullPointerException,并在定义了certificateFile但对于JKS和PEM文件类型都不存在该文件时,统一了行为. (csutherl)
  • 固定: 确保toString()方法对于ByteChunkCharChunk行为保持一致,并且在新创建的对象上以及在调用recycle()之后立即调用toString()时,返回null . 这不应影响典型的Tomcat用户. 这可能会影响直接在自己的代码中使用这些类的用户. (市场)
  • 固定: 确保MessageBytestoString()toBytes()toChars()方法的行为一致,并且不会在新创建的对象上以及调用recycle()之后立即引发NullPointerException . 这不应影响典型的Tomcat用户. 这可能会影响直接在自己的代码中使用这些类的用户. (市场)
  • 固定: 当在HTTP连接器中处理HTTP 1.0请求且请求中未提供主机信息时,请从本地端口而不是连接器配置获取服务器端口,因为配置值可能为零. (市场)
  • Add: Enable strict validation of the provided host name and port for all connectors. Requests with invalid host names and/or ports will be rejected with a 400 response. (markt)
  • 固定: 更新主机验证,以允许主机名和域名的组成部分(顶级域名除外)以数字开头,并确保顶级域名完全按字母顺序排列. (市场)
  • 固定: 62053 :使用HTTP / 2 NIO2编写推头时,修复了NPE. Holger Sunke提交的补丁. (雷姆)

Jasper

  • 固定: 当JSP由于请求使用不支持的方法而生成405响应时,请包含HTTP Allow标头. (市场)
  • 加: 在JSP中添加对HTTP OPTION方法的支持. JSP规范明确指出,对于JSP,此方法的行为未定义,因此这是Tomcat特定的行为. (市场)

WebSocket

  • Fix: 62024: When closing a connection with an abnormal close, close the socket immediately rather than waiting for a close message from the client that may never arrive. (markt)

Webapps

  • 固定: 62049 :修复了管理器404 JSP错误页面中缺少的类. (雷姆)

jdbc-pool

  • 加: 增强对jdbc-pool的JMX支持,以公开PooledConnectionJdbcInterceptors . (kfujino)
  • Add: Add MBean for PooledConnection. (kfujino)
  • 加: 62011 :为StatementCache添加MBean. (kfujino)
  • 加: 通过StatementCache JMX公开每个连接的缓存大小. (kfujino)
  • 加:ResetAbandonedTimer添加MBean. (kfujino)

Other

  • 更新: 使用RELEASE-NOTES中的公共接口更新列表. (紫罗兰色)
  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.03版. (kkolinko)

2018-01-22 Tomcat 9.0.4 (markt)

Catalina

  • 固定: 更正先前针对61916的修订中的回归,这意味着对于映射到AddDefaultCharsetFilter所有请求,对addHeader()任何调用都将被对setHeader()的调用替换. (市场)
  • 固定: 61999 :将maxSavePostSize设置为0应该在身份验证期间禁用保存POST数据. (雷姆)

Coyote

  • 固定: 修复NIO2 HTTP / 2发送文件. (雷姆)
  • 固定: 61993年 :改进了对ByteChunkCharChunk实例的处理, CharChunk实例的增长接近JRE允许的最大大小. (市场)

Jasper

  • 加: 43925 :添加一个新的系统属性( org.apache.jasper.runtime.BodyContentImpl.BUFFER_SIZE ),以控制Jasper在缓冲标记主体时使用的缓冲区大小. (市场)

Web applications

  • 固定: 62006 :为tomcat9.exe记录新的JvmOptions9命令行参数. (市场)

not released Tomcat 9.0.3 (markt)

Catalina

  • 加: 57619 :对如何处理JAR URL进行小的优化,以减少重复的String对象在内存中的存储. Dmitri Blinov提供的补丁. (市场)
  • 固定: 向ServletContext中添加一些缺少的NPE. (雷姆)
  • 固定: 将Java EE 8 XML模式更新为发行版本. (市场)
  • 固定: 次要HTTP / 2推送修复. (雷姆)
  • 固定: 61916 :当通过setHeader()addHeader()设置内容类型以及通过setContentType()设置内容类型时,扩展AddDefaultCharsetFilter以添加字符集. (市场)
  • 固定: 使用WebDAV将文件资源复制到需要覆盖集合的目标位置时,请确保操作成功而不是失败(响应为500). 这使Tomcat可以通过Litmus WebDAV测试套件中的两个附加测试. (市场)
  • 更新: 修改Default和WebDAV Servlet,以便在通过readonly初始化参数禁用时,针对PUTDELETE请求返回405状态代码.
  • 固定:Allow标头的内容与Default和WebDAV Servlet的响应代码对齐. 对于任何给定资源,返回405状态代码的方法将不会在Allow标头中列出,而Allow标题中列出的方法将不会返回405状态代码. (市场)

Coyote

  • 加: 60276 :为通过HTTP / 2提供的响应实施GZIP压缩支持. (市场)
  • 固定: 没有任何要读取的数据时,请勿调用onDataAvailable. (雷姆)
  • 固定: 调用ServletInputStream.isReady()时正确处理EOF. (市场)
  • 固定: 61886 :在DEBUG而不是INFO非容器线程上记录错误. 异常将通过异步错误处理机制提供给应用程序. (市场)
  • 固定: 61914 :创建SSL引擎时,Java 9可能包含NPE. Evgenij Ryazanov提交的补丁. (雷姆)
  • 固定: 61918 :修复关闭已关闭的套接字时的connectionLimitLatch计数. 基于Ryan Fong的补丁. (雷姆)
  • 加: 向OpenSSL到JSSE密码映射添加对OpenSSL ARIA密码的支持. (市场)
  • 固定: 61932 :允许对AsyncContext.dispatch()的调用来终止非阻塞I / O. (市场)
  • 固定: 61948 :在代码中改进了格式错误的ClientHello消息的处理,该代码从TLS握手中提取基于JSSE的NIO和NIO2连接器的SNI信息. (市场)
  • 固定: 使用完整的输入缓冲区修复NIO2握手. (雷姆)
  • 加: 如果客户端尝试与支持TLS的NIO或NIO2连接器建立纯文本HTTP连接,则返回简单的纯文本错误消息. (市场)

Jasper

  • 固定: 61854 :在EL表达式中使用集合和/或映射时,请确保Jasper正确解析了表达式. 补丁由Ricardo Martin Camarero提供. (市场)
  • 固定: 改进EL表达式中使用varargs的方法的处理. 特别是,现在可以正确地调用不带参数的varargs方法. 基于Nitkalya(Ing)Wiriyanuparb的补丁. (市场)
  • 固定: 61945 :修复了用于编译标签的原型模式. (雷姆)

Web applications

  • 加: 61223 :将mbeans-descriptors.dtd文件添加到自定义MBean文档中,以便用户为构造自定义组件的mbeans-descriptors.xml文件时使用参考. (市场)
  • 加: 61565 :添加了通过Manager Web应用程序触发重新加载TLS主机配置(证书和密钥文件,未重新解析server.xml)的功能. (市场)
  • 加: 61566 :通过Manager Web应用程序公开使用JSSE样式(密钥库)TLS配置配置的所有虚拟主机的当前使用证书链和受信任证书列表. (市场)
  • 固定: 部分修复61886 . 如果股票行情自动收录器示例Servlet中发生I / O错误,请确保多个线程不会尝试完成AsyncContext . (市场)
  • 固定: 61886 :在示例Web应用程序中运行异步股票报价器时,防止ConcurrentModificationException . (市场)
  • 固定: 61886 :如果在停止示例Web应用程序时正在运行股票报价器示例,请防止NullPointerException和其他错误. (市场)
  • 固定: 61910 :澄清文档Web应用程序中allowLinking选项的含义. (市场)
  • 加: 将OCSP配置信息添加到SSL How-To. Marek Czernek提供的补丁. (市场)

jdbc-pool

  • 固定: 61312 :使用已关闭的连接的语句缓存时,请防止NullPointerException . (kfujino)

Other

  • 固定: 添加其他系统属性以替换系统属性. (雷姆)
  • 固定: 将缺少的SHA-512哈希值添加到构建脚本中,以用于发布工件. (市场)
  • 更新: 将Commons Pool 2的内部fork更新为2.4.3. (市场)
  • 更新: 将Commons DBCP 2的内部fork更新为8a71764(2017-10-18),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Commons FileUpload的内部fork更新为6c00d57(2017-11-23)以进行一些代码清理. (市场)
  • 更新: 将Commons Codec的内部fork更新为r1817136以进行一些代码清除. (市场)
  • 固定: 本机源捆绑包(用于Commons Daemon和Tomcat Native)不再复制到部署目标的bin目录中. 现在,它们仅被复制到发布目标的bin目录中. (市场)

2017-11-30 Tomcat 9.0.2 (markt)

Catalina

  • 固定: 使用TLS相关请求属性时,修复可能的SecurityException . (市场)
  • Fix: 61597: Extend the StandardJarScanner to scan JARs on the module path when running on Java 9 and class path scanning is enabled. (markt)
  • 固定: 61601 :在JAR扫描和Web应用程序类加载中添加了对多发行版JAR的支持. (市场)
  • 固定: 61681 :使用请求包装时允许HTTP / 2推送. (雷姆)
  • 加: 提供SessionInitializerFilter ,可用来确保在启动WebSocket连接时存在HTTP会话. isapir提供的补丁. (市场)
  • 固定: 61682 :对HTTP / 2流进行优先级排序时,请确保正确更新了父字段和子字段,以避免可能的StackOverflowError . (市场)
  • 固定: 通过减少JASPIC API实现中javax.security.auth.message.config.AuthConfigFactory的同步范围来提高并发性. 基于Pavan Kumar的补丁. (市场)
  • 固定: 在关闭过程AsyncContext实例超时时,请避免可能的NullPointerException . (市场)
  • 固定: 61777 :分离JASPIC RegistrationListener时,请避免NullPointerException . Lazar提供的补丁. (市场)
  • 固定: 61778 :拆卸一个JASPIC时改正的返回值RegistrationListener . Lazar提供的补丁. (市场)
  • 固定: 61779 :将null RegistrationListener传递给AuthConfigFactory.getConfigProvider()时,避免NullPointerException . Lazar提供的补丁. (市场)
  • 固定: 61780 :如果已经使用默认注册ID注册了RegistrationContext则仅在调用AuthConfigFactory.getRegistrationIDs()的返回值中包括默认JASPIC注册ID. Lazar提供的补丁. (市场)
  • 固定: 61781 :当层和/或应用程序上下文为null时,启用JASPIC提供程序注册可以保留 . Lazar提供的补丁. (市场)
  • 固定: 61782 :当调用AuthConfigFactory.doRegisterConfigProvider AuthConfigFactory.doRegisterConfigProvider()并且Web应用程序类加载器找到了所请求的JASPIC配置提供程序类时,请勿尝试使用已加载JASPIC API的类加载器来加载该类. Lazar提供的补丁. (市场)
  • 固定: 61783 :当调用AuthConfigFactory.removeRegistration AuthConfigFactory.removeRegistration()且注册是持久注册时,应将其从持久存储中删除. Lazar提供的补丁. (市场)
  • 固定: 61784 :正确地解决了使用提供者名称null调用AuthConfigFactoryImpl.registerConfigProvider()的情况. Lazar提供的补丁. (市场)
  • 加: 61795 :将属性添加到Authenticator实现中,以允许指定自定义JASPIC CallbackHandler . Lazar提供的补丁. (市场)

Coyote

  • 固定: 61568 :使用NIO2连接器并将新线程添加到池时,避免潜在的SecurityException . (市场)
  • 固定: 61583 :更正了该修补程序中的进一步回归功能,以允许使用Java密钥存储,该Java密钥存储包含并非全部具有相同密码的多个密钥. 这可以修复使用别名选择的多个密钥的PKCS11密钥存储处理. (市场)
  • 固定: 改进NIO2同步以实现异步IO操作. (雷姆)
  • 加: Sendfile支持HTTP / 2和NIO2. (雷姆)
  • 固定: 将连接内的默认HTTP / 2流并发执行次数从200减少到20.(remm)
  • 固定: 61668 :在调用AbstractHttp11Protocol.getSSLProtocol()时,避免使用可能的NPE. (市场)
  • 固定: 61673 :在处理与连接关联的流时,避免可能的ConcurrentModificationException . (市场)
  • 固定: 61719 :避免可能的NPE使用HTTP / 2调用InputStream.setReadListener. (雷姆)
  • Fix: 61736: Improve performance of NIO connector when clients leave large time gaps between network packets. Patch provided by Zilong Song. (markt)
  • 固定: 61740 :更正了使用HTTP / 2时导致间歇性请求失败的Hpack标头索引验证中的一个错误. (市场)

Jasper

  • 固定: 61604 :修复了不生成输出的JSP的SMAP生成. (市场)
  • 固定: 61816 :属性值或模板文本中的无效表达式应触发翻译(编译时)错误,而不是运行时错误. (市场)

WebSocket

  • 固定: 61604 :在websocket客户端中添加对身份验证的支持. J Fernandez提交的补丁. (雷姆)

Web applications

  • 固定: 更正Javadoc链接以指向Java SE 8和Java EE8.(标记)
  • 固定: 使Javadoc能够使用Java 9构建.(标记)
  • 固定: 61603 :在需要时为状态Servlet输出添加XML过滤. (雷姆)
  • 固定: 更正有关CGI servlet如何将请求映射到CGI How-To中的脚本的描述. (市场)

Tribes

  • 固定: 修复尝试重新发送频道消息的错误行为,该行为比maxRetryAttempts的实际设置值maxRetryAttempts . (kfujino)
  • 固定: 通过避免比较失败的成员数和剩余的发件人数而导致意外的ChannelException确保其余的发件人可以发送频道消息. (kfujino)
  • 固定: 确保处理了在SelectionKey处理期间未ChannelException其他剩余SelectionKey. (kfujino)

Other

  • 固定: 改进对61439的修复,并从Tomcat发行版中完全排除JPA,JAX-WS和EJB批注. (市场)
  • 固定: 改进对认可目录的处理. 仅在显式设置JAVA_ENDORSED_DIRS系统属性或$CATALINA_HOME/endorsed存在的情况下,才使用认可目录机制. 在Java 9上运行时,任何尝试使用认可目录机制的操作都会触发错误,并且Tomcat无法启动. (荣)
  • 加: 51496 :使用Windows安装程序时,请检查所请求的服务名称是否已经存在,如果存在,请提示用户选择其他服务名称. Ralph Plawetzki提供的补丁. (市场)
  • 固定: 61590 :启用service.bat以识别何时为Java 9 JDK配置了JAVA_HOME . (市场)
  • 固定: 61598 :更新Windows安装程序以在查找JRE时搜索新的(从Java 9开始)注册表位置. (市场)
  • 加: 将用于发布工件的SHA-512哈希生成添加到构建脚本中. (市场)
  • 固定: 61658根据RFC8081,更新字体的MIME映射以使用font/* . (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.16,以获取使用APR 1.6.3和OpenSSL 1.0.2m构建的最新Windows二进制文件. (市场)
  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为版本3.02.1. (kkolinko)
  • 更新: 当在Microsoft Windows的已安装应用程序列表中显示Tomcat时,更新Windows安装程序以将" Apache Software Foundation"用作发布服务器. (kkolinko)
  • 固定: 61803 :从安全性文档中删除过时的SSL信息. (雷姆)

2017-09-30 Tomcat 9.0.1 (markt)

Catalina

  • 固定: 加载Java 9的JVM logging.properties文件时,请使用正确的路径.(rjung)
  • Fix: Add additional validation to the resource handling required to fix CVE-2017-12617 on Windows. The checks were being performed elsewhere but adding them to the resource handling ensures that the checks are always performed. (markt)

Other

  • 固定: 61563 :正确的西班牙语翻译错误. GonzaloVásquez提供的补丁. (csutherl)

not released Tomcat 9.0.0 (markt)

Catalina

  • 固定: 61542 :修复了CVE-2017-12617并防止在启用HTTP PUT时通过特制请求上传JSP. (市场)
  • 固定: 61554 :从RAT分析中排除打算在GitHub中显示的异常编码的测试文件和markdown文件. 克里斯·Thistlethwaite提供的补丁. (市场)

Coyote

  • 加: 60762 :添加了在运行时更改连接器的TLS配置的功能,而无需重新启动连接器. (市场)
  • Add: Add an option to reject requests that contain HTTP headers with invalid (non-token) header names with a 400 response and reject such requests by default. (markt)
  • 固定: 实施RFC 7230(和RFC 2616)的要求,即HTTP / 1.1请求必须包含Host标头,并且必须以400响应拒绝任何不被拒绝的请求. (市场)
  • 固定: 实施RFC 7230的要求,即在请求行中指定主机的任何HTTP / 1.1请求,都必须在Host标头中指定相同的主机,并且必须以400响应拒绝任何未请求的此类请求. 此检查是可选的,但默认情况下启用. 可以使用连接器的allowHostHeaderMismatch属性禁用它. (市场)
  • 固定: 实施RFC 7230的要求,即任何包含多个Host标头的HTTP / 1.1请求都将被拒绝,并带有400响应. (市场)
  • 更新: 添加一种在嵌入式模式下设置属性源的方法. (雷姆)
  • 固定: 61557 :更正了该修补程序中的进一步回归功能,以启用Java密钥库的使用,该Java密钥库包含多个密钥,但这些密钥都不都是相同的密码. 回归破坏了对某些FIPS兼容密钥存储的支持. (市场)

jdbc-pool

  • 固定: 61545 :使用池化XA连接时,可以正确处理PooledConnection接口中定义的方法的调用. Nils Winkler提供的补丁. (市场)

Other

  • 固定: 更新针对59904的修复程序,以便接受小于零的值,而不是引发 NegativeArraySizeException. (雷姆)
  • 加: 完成Servlet 4.0规范的实现. (市场)

2017-09-19 Tomcat 9.0.0.M27 (markt)

Catalina

  • 固定:ErrorReportValve生成错误页面之前,请在生成错误页面之前检查关联的连接是否仍允许I / O,以便在永远不发送页面的情况下可以跳过页面生成. (市场)
  • 加: 61189 :添加了为单个CGI脚本设置环境变量的功能. 基于jm009的补丁. (市场)
  • 固定: 61210 :在SecurityManager下运行时,请勿在该配置文件不存在时打印关于无法读取日志记录配置文件的警告. (市场)
  • 加: 61280 :将RFC 7617支持添加到BasicAuthenticator . 请注意,默认配置不会更改现有行为. (市场)
  • 固定: 61424 :在SecurityManager下运行并使用Subject.doAs()时,避免可能的StackOverflowError . (市场)
  • Add: When running under Java 9 or later, and the urlCacheProtection option of the JreMemoryLeakPreventionListener is enabled, use the API added in Java 9 to only disable the caching for JAR URL connections. (markt)
  • 加: 61489 :使用CGI servlet时,使从查询字符串生成的命令行参数(按照RFC 3875的4.4节)是可选的,并且默认情况下被禁用. 基于jm009的补丁. (市场)
  • 固定: 61503 :这使用一种替代解决方案纠正了60940修复程序中的潜在回归,该解决方案添加了通常仅由JarInputStream跳过的JarEntry对象(如果这些条目存在). (市场)

Coyote

  • 更新: 最低要求的Tomcat Native版本已增加到1.2.14. 该版本包括一个新的API,在将Java连接器与OpenSSL TLS实现配合使用时,该客户端具有正确的客户端证书支持所需的新API,以及对SSL_CONF OpenSSL API的支持. (荣)
  • 加: SSL_CONF使用TLS和OpenSSL实现时,添加对OpenSSL SSL_CONF API的支持. 可以通过在SSLHostConfig下添加OpenSSLConf元素来使用它. 新元素包含OpenSSLConfCmd元素的列表,每个元素具有属性namevalue . (荣)
  • 固定: 将Java连接器与OpenSSL TLS实现结合使用时,请勿通过OpenSSLEngine配置每个SSL连接对象. 对于OpenSSL,SSL对象从我们已经配置的SSL_CTX继承其设置. (荣)
  • 固定: 将JSSE TLS配置与OpenSSL实现和客户端证书一起使用时:在TLS握手中包含客户端CA主题,以便客户端可以选择要显示的适当客户端证书. (荣)
  • 固定: 如果为SSLHostConfig元素的certificateVerification属性指定了无效的选项,则除了报告配置错误外, SSLHostConfig根据required将其视为最安全/限制性最大的选项. (市场)
  • 固定: 改进TLS重新协商握手期间客户端断开连接的处理. (市场)
  • 固定: 防止在NIO连接正常关闭期间引发异常. 这样可以使TLS连接完全关闭. (市场)
  • 固定: 修复在升级的连接上设置IO侦听器时可能出现的争用情况. (雷姆)
  • 固定: 确保APR /本机连接器将阻止I / O用于TLS重新协商. (市场)
  • 固定: 48655 :使用sendfile,APR / native连接器和多部分下载时,允许Tomcat彻底关闭. (市场)
  • 固定: 58244 :处理OpenSSL使用票证恢复TLS会话而完整的客户端证书链不可用的情况. 在这种情况下,没有链的客户证书将显示给应用程序. (市场)
  • 固定: 当JSSE和OpenSSL配置样式混合在同一SSLHostConfig上时,改进警告消息. (市场)
  • 固定: 61415 :使用基于OpenSSL的连接和会话缓存修复TLS重新协商. (市场)
  • 固定: 延迟检查SSLHostConfig实例的配置属性是否与配置的SSL实现一致,直到Connector启动时才避免在初始化过程中更改SSL实现时出现错误警告. (市场)
  • 固定: 61450 :修复默认密钥别名算法. (雷姆)
  • 固定: 61451 :更正该修复程序中的回归以启用Java密钥存储,该Java密钥存储包含多个并非都具有相同密码的密钥. 回归破坏了对任何不以PKCS#8格式存储密钥的密钥存储的支持,例如硬件密钥存储和Windows密钥存储. (市场)

WebSocket

  • 固定: 60523 :通过将报头和有效负载写在一起时不刷新,可以减少用于发送WebSocket消息的数据包数量. (市场)
  • 固定: 61491 :使用permessage-deflate扩展名时,请正确处理非空消息之后的空消息发送,以避免IllegalArgumentException . (市场)

Web applications

  • 固定: 在管理器Web应用程序中以正确的密码顺序显示连接器密码列表. (荣)

Tribes

  • Fix: To avoid unexpected session timeout notification from backup session, update the access time when receiving the map member notification message. (kfujino)
  • 固定:TcpFailureDetector失败检测检查失败时,将成员信息添加到日志消息中. (kfujino)
  • 固定: 避免Ping超时,直到通过接收MSG_START消息完全启动添加的地图成员. (kfujino)
  • 固定: 发送频道消息时,请确保发送方已连接. (kfujino)
  • 固定: 更正备用节点选择逻辑,使节点0连续两次返回. (kfujino)
  • 固定:RpcChannel修复responseMap竞争条件. (kfujino)

jdbc-pool

  • 固定: 61391 :如果将SlowQueryReport拦截器配置为记录失败的查询,并且连接已被放弃,请确保记录失败的查询. Craig Webb提供的补丁. (市场)
  • 固定: 61425 :当testWhileIdle设置为truedefaultAutoCommit设置为false时,确保空闲连接的事务已终止. 王正提供的补丁. (kfujino)

Other

  • 固定: 61419 :用正确的rem标记替换DOS bat文件catalina.bat中的Unix样式注释. (荣)
  • 固定: 61439 :从tomcat-embed-core.jar中删除Java Annotation API类,并将它们打包在嵌入式发行版的单独的JAR中,以为最终用户提供更大的灵活性来处理与JRE和/或其他JAR的潜在冲突. (市场)
  • 固定: 61441 :在从RPM安装Java的平台上运行时, JAVA_HOME通过daemon.sh脚本改进对JAVA_HOME的检测. (荣)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.14,以获取使用APR 1.6.2和OpenSSL 1.0.2l构建的最新Windows二进制文件. (市场)
  • 更新: 61599 :更新到Commons Daemon 1.1.0,以增强对Java 9的支持. (市场)

2017-08-08 Tomcat 9.0.0.M26 (markt)

Catalina

  • 固定: 修正49464修复程序中的多个回归,该回归可能会破坏DefaultServlet提供的静态内容.
  • 固定: 纠正PushBuilder实现中的一个错误,该错误意味着包含%nn序列的推URL未被正确解码. 由FindBugs标识. (市场)
  • 加: 61164 :添加支持%X的模式AccessLogValve ,报告在请求结束的连接状态. Zemian Deng提供的补丁. (市场)
  • 固定: 61351 :正确处理web.xml和类似位置中可能合法包含RFC 3986不允许的字符的URL模式的%nn解码.(标记)
  • 加: 61366 :向JDBCStore添加新属性localDataSource ,该属性允许将Store配置为使用Web应用程序定义的DataSource,而不是使用全局定义的DataSource的默认属性. Jonathan Horowitz提供的补丁. (市场)

Coyote

  • Fix: 61086: Ensure to explicitly signal an empty request body for HTTP 205 responses. Additional fix to r1795278. Based on a patch provided by Alexandr Saperov. (violetagg)
  • 更新: 61345 :添加服务器侦听器,该服务器侦听器可用于从摘要程序中配置的属性源进行系统属性替换. (雷姆)
  • 加: 添加其他日志记录以记录在连接器停止过程中等待NIO轮询器停止时发生的问题. (市场)

Jasper

  • 固定: 61364 :确保在检测到JSP编码后关闭文件,以免文件被文件系统锁定. (市场)

WebSocket

  • 加: 57767 :在尝试建立WebSocket连接时,为WebSocket客户端添加支持以下重定向. J Fernandez提供的补丁. (市场)

2017-07-28 Tomcat 9.0.0.M25 (markt)

Catalina

  • 固定: 当Web应用程序部署在打包的WAR文件中时,服务加载程序查找(以及其他类加载程序资源的查找)的性能提高. (市场)
  • 固定: 60963 :添加了ExtractingRoot ,这是一个新的WebResourceRoot实现,可以将JAR提取到工作目录中,以提高部署打包的WAR文件时的性能. (市场)
  • 固定: 61253 :当Digester.updateAttributes引发异常而不是忽略异常时,添加警告消息. (csutherl)
  • 固定: 更正了49464修复程序中的进一步回归,该回归可能导致字节序标记字符出现在DefaultServlet包含的内容的开头. (市场)
  • 固定: 61313 :在JNDIRealm中将读取超时配置为可配置的,并确保读取超时将导致尝试故障转移到AlternateURL. 基于Peter Maloney和Felix Schumacher的补丁. (市场)

Web applications

  • 固定: 更正有关StandardRoot配置方式的文档. (市场)

Other

  • 固定: 61316 :修复了已发布的源发行版中UTF-16编码的源文件的损坏. (市场)

not released Tomcat 9.0.0.M24 (markt)

Catalina

  • 加: 52924 :添加对Tomcat特定部署描述符/WEB-INF/tomcat-web.xml . 该描述符的格式与/WEB-INF/web.xml相同. Tomcat描述符优先于conf/web.xml任何设置,但不优先于/WEB-INF/web.xml任何设置. (市场)
  • 固定: 61232 :禁用日志轮换时,在生成日志文件名时将仅使用一个分隔符. 例如,如果前缀是catalina. 后缀为.log则日志文件名将为catalina.log而不是catalina..log . 由Katya Stoycheva提供的补丁. (紫罗兰色)
  • 固定: 61264 :更正重构中的回归,以使用Charset而不是String来存储请求字符编码,如果用户代理指定了不支持的字符编码,则该字符编码会阻止getReader()抛出UnsupportedEncodingException . (市场)
  • 固定: 更正49464修复程序中的回归,如果静态编码与响应编码不一致,则该回归可能导致DefaultServlet发送不正确的Content-Length标头. (市场)

Coyote

  • 固定: 启用TLS连接器以使用包含多个密钥的Java密钥存储,其中每个密钥都有一个单独的密码. 基于Frank Taffelt的补丁. (市场)
  • 固定: 当使用连续帧时,由于头过多而改进了HTTP / 2流重置的处理. (市场)

Jasper

  • 加: 53031 :使用Jasper Ant任务和javac编译JSP时,添加了对fork选项的支持. (市场)

Other

  • 加: 52791 :添加了从配置文件设置Windows安装程序使用的默认值的功能. Sandra Madden提供的补丁. (市场)

not released Tomcat 9.0.0.M23 (markt)

Catalina

  • 固定: 49464 :当文件编码与所需的响应编码不兼容时,改进默认Servlet对静态文件的处理. (市场)
  • 固定: 61214 :从上下文MBean描述中删除已删除的属性servlets . Alexis Hassler提供的补丁. (市场)
  • 固定: 61215 :在org.apache.catalina.valves包的mbean-descriptors.xml文件中正确定义addConnectorPortinvalidAuthenticationWhenDeny ,以便可以通过JMX访问属性. (市场)
  • 固定: 61216 :通过JMX代理Servlet进行查看时,改进了CompositeDataTabularData布局. Alexis Hassler提供的补丁. (市场)
  • 固定: 在安全管理器下运行时,FileHandler要求将附加的删除文件权限授予JULI. 清理日志文件的线程被标记为守护程序线程. (紫罗兰色)
  • Fix: 61229: Correct a regression in 9.0.0.M21 that broke WebDAV handling for resources with names that included a & character. (markt)

Coyote

  • 固定: 恢复配置对SSLv3的支持的功能. 启用此协议将在日志中触发警告,因为它是不安全的. (市场)
  • 加: 添加LoadBalancerDrainingValve,这是一个Valve,旨在减少节点耗尽其经过身份验证的用户所需的时间. (舒尔茨)
  • 固定: 对于基于OpenSSL的TLS会话返回null会话时,请勿记录警告,因为在启用会话票证后,这是预期的. (市场)
  • 固定: 当访问日志阀记录TLS相关的请求属性并且NIO2连接器与OpenSSL一起使用时,请确保在连接关闭时TLS属性对访问日志阀可用. (市场)
  • 固定: 60461 :同步APR连接器的SSL会话访问. (雷姆)
  • 固定: 61224 :将GlobalRequestProcessor MBean属性设为只读. Alexis Hassler提供的补丁. (市场)

Jasper

  • 固定: 49176 :生成引用相关JSP源代码的JSP运行时错误消息时,请从使用JSP页面解析过程的结果切换到使用JSR 045源映射数据从堆栈跟踪中标识JSP源的正确部分. 这显着减少了开发模式下Jasper的内存占用,为错误页面生成提供了较小的性能改进,并使Tomcat重新启动后可以继续提供源引号. (市场)

Web applications

  • 固定: 从文档中删除对Loader属性searchExternalFirst引用,因为不再支持该属性. (市场)

Tribes

  • 加: 51513 :向GzipInterceptor添加对compressionMinSize属性的GzipInterceptor ,添加可选的统计信息收集并通过JMX公开Interceptor. 基于ChristianStöber的补丁. (市场)
  • 加: 61127 :允许用户使用易于理解的channelSendOptions和mapSendOptions名称. Igal Sapir提供的补丁. (舒尔茨)

Other

  • 码: 由于不推荐使用JRE提供的版本,并且默认情况下Java 9不提供它们,因此可以还原Web服务注释的本地定义. (市场)
  • 固定: 将必要的Java 9配置选项添加到启动脚本中,以防止Web应用程序停止时生成警告. (市场)

2017-06-26 Tomcat 9.0.0.M22 (markt)

Catalina

  • 固定: 48543 :添加用于为catalina.config系统属性指定备用文件名的选项. 还要记录允许相对和绝对URL. (市场)
  • 固定: 61072 :尊重文档声明,该文档声明允许使用平台默认安全随机数生成会话ID. (雷姆)
  • 固定: 更正oacconnector.CoyoteAdapter#parseSessionCookiesId的javadoc. 约翰·安德鲁(徐州王)通过Github提供的补丁. (紫罗兰色)
  • 固定: 61101 :作为响应,CORS过滤器应设置Vary标头. 由Rick Riemer提交. (雷姆)
  • 加: 61105 :添加新的JULI FileHandler配置,以指定保留日志文件的最大天数. 默认情况下,日志文件将按照logging.properties配置保留90天. (紫罗兰色)
  • 更新: 更新Servlet 4.0实施以添加对设置HTTP响应的尾部字段的支持. (市场)
  • 固定: 61125 :请确保WarURLConnectiongetLastModified()调用返回正确的值,因为在将JSP打包在WAR文件中时,这对于正确检测JSP修改是必需的. (市场)
  • 固定: 改进SSLValve ,使其能够处理来自Nginx的客户端证书标头. 基于Lucas Ventura Carro的补丁. (市场)
  • 固定: 61134 :生成默认错误页面时,请勿在替换的文本片段周围使用" ["和"]"符号. 由Katya Todorova提供的补丁. (紫罗兰色)
  • 固定: 61154 :在安全管理器下运行时,默认情况下允许Manager和Host Manager Web应用程序启动. 这是通过添加自定义权限org.apache.catalina.security.DeployXmlPermission来实现的,该权限允许应用程序使用META-INF/context.xml文件,然后将该权限授予Manager和Host Manager. (市场)
  • 固定: 61173 :为oacatalina.startup.Tomcat抛光Javadoc. peterhansson_se提供的补丁. (紫罗兰色)
  • 加: 新的配置属性crawlerIps已添加到oacatalina.valves.CrawlerSessionManagerValve . 使用此属性,可以指定一个正则表达式,该正则表达式将用于基于搜寻器的IP地址来识别它们. 基于Tetradeus提供的补丁. (紫罗兰色)
  • 固定: 61180 :如果初始化Web应用程序用来生成会话标识符的SecureRandom实例花费的时间超过100毫秒,则记录警告消息而不是信息消息. Piotr Chlebda提供的补丁. (市场)
  • 固定: 61185 :通过AsyncContext.dispatch()分派异步请求时, getRequestURI()确保分派请求的getRequestURI()与原始请求的getRequestURI()匹配. (市场)
  • 固定: 61197 :确保Content-Type标头中使用的字符集名称具有与应用程序提供的形式完全相同的形式. 这将还原9.0.0.M21中的行为更改,该更改对某些客户端造成了问题. (市场)
  • 固定: 61201 :确保CGI可执行文件的SCRIPT_NAME环境变量以一致的方式填充,而不管CGI Servlet如何映射到请求. (市场)
  • 固定: 确保在HTTP响应尾部字段的尾部字段名称和字段值之间发送一个空格. (呼星)

Coyote

  • 固定: 61086 :为HTTP 205响应明确发信号通知为空的请求主体. (市场)
  • 固定: 61120 :处理HTTP / 2请求时,请勿忽略路径参数. (市场)
  • 固定: 还原针对漏洞60718的修复中引入的更改,该更改将客户端将连接从200断开到500时将访问日志中记录的状态代码更改了.(标记)
  • 固定: 使异步错误处理更加健壮. 特别要确保在非容器线程上发生I / O错误后,为所有已注册的AsyncListener调用onError() . (市场)
  • 固定: 将其他同步添加到OpenSSL引擎提供的SSL会话对象中,以便并发销毁不会导致JVM崩溃. (雷姆)

Jasper

  • 固定: 44787 :改进了JSP编译器配置选项无效时的错误消息. (市场)
  • 加: 45931 :扩展Jasper的timeSpaces选项以添加对single支持,该支持将完全由空格组成的模板文本替换为单个空格字符. 基于Meetesh Karia的补丁. (市场)
  • 固定: 53011 :使用JspC进行预编译时,报告所有编译错误,而不是在第一个错误之后停止. 可以使用新选项-failFast恢复在第一个错误之后停止的先前行为. 基于Marc Pompl提供的补丁. (市场)
  • 固定: 61137jsjsp.tagext.TagLibraryInfo#urijsjsp.tagext.TagLibraryInfo#prefix字段不应为最终字段. 由Katya Todorova提供的补丁. (紫罗兰色)

WebSocket

  • 固定: 当用于PongMessageMessageHandler未实现MessageHandler.Whole时,更正日志消息. (荣)
  • Fix: Improve thread-safety of Futures used to report the result of sending WebSocket messages. (markt)
  • 固定: 61183 :在先前的修订中为58624纠正了一个回归,该回归可能会触发死锁,具体取决于客户端代码采用的锁定策略. (市场)

Web applications

  • 固定: 更好地记录Jasper的trimSpaces选项的含义. (市场)
  • 固定: 61150 :将Manager和Host-Manager Web应用程序配置为允许与CRSFPreventionFilter相关的会话对象进行序列化和反序列化,以避免在安全管理器下运行时Web应用程序停止和/或启动时的警告消息和/或堆栈跟踪. (市场)
  • 固定: 更正TLS配置文档,以从受支持的协议列表中删除SSLv2和SSLv3. (市场)

Other

  • 加: 45832 :向用于与Manager应用程序通信的Catalina Ant任务添加HTTP DIGEST身份验证支持. (市场)
  • 固定: 45879 :将RELEASE-NOTES文件添加到由Tomcat Windows安装程序创建的安装的根目录中,以使用户更容易识别已安装的Tomcat版本. (市场)
  • 固定: 61055 :澄清重写阀中的代码注释,以明确没有计划为此阀提供代理支持,因为Tomcat没有代理功能. (市场)
  • 固定: 61076 :记录Context元素的altDDName属性. (市场)
  • 固定: 纠正《 Jar扫描过滤器配置参考》中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 固定: 在《应用程序开发人员指南》中更正最低Java SE版本的要求. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 固定: 61145 :将缺少的@Documented注释添加到注释API中的注释中. 由Katya Todorova提供的补丁. (市场)
  • 固定: 61146 :在注释API的@EJB注释中添加缺少的lookup()方法. 由Katya Todorova提供的补丁. (市场)
  • 固定: 在"上下文容器配置参考"中更正拼写错误. 由Katya Todorova提供的补丁. (紫罗兰色)

2017-05-10 Tomcat 9.0.0.M21 (markt)

General

  • 加: 允许使用构建属性test.exclude排除JUnit测试类,并在BUILDING.txt中记录该属性. (荣)

Catalina

  • 固定: 查看Tomcat重新编码URI或URI组件的那些地方,并确保应用正确的编码(路径与查询字符串不同),并确保一致地应用编码. (市场)
  • 固定: 在读取启用了TLS的初始化HTTP连接器的属性时,请避免NullPointerException . (市场)
  • 固定:SSLHostConfig元素的hostName用作JMX对象名的一部分时,请始终用引号引起来,以避免错误,如果配置了通配符hostName则该错误会阻止关联的TLS连接器启动(因为*是JMX对象名的保留字符). (市场)
  • 更新: 根据Servlet 4.0规范的要求,将Connector的默认URIEncoding更新为UTF-8 . (市场)
  • 码: 切换到使用Charset而不是String来存储编码设置(包括配置和Content-Type header ),以减少需要查找关联的Charset的位置数. (市场)
  • 固定: 确定当前请求是否用于自定义错误页面时,对DefaultServlet使用更可靠的机制. (市场)
  • 固定: 确保在Default或WebDAV servlet处理错误时,无论使用doGet()方法触发错误的原始请求,都将通过doGet()方法处理错误资源. (市场)
  • 固定: 如果指定的静态自定义错误页面不存在或无法读取,请确保返回预期的错误状态,而不是404或403.(标记)
  • 固定: 配置WebDAV servlet并对位于WEB-INF下方的自定义错误页面进行错误分配时,请确保显示目标错误页面而不是404响应. (市场)
  • 更新: 更新Servlet 4.0实施以添加对从分块的HTTP请求中获取尾部字段的支持. (市场)
  • 加: 61047 :在默认的web.xml中为woff2字体添加MIME映射. 贾斯汀·威廉姆森(Justin Williamson)提供的补丁. (紫罗兰色)
  • 固定: 纠正选择用于解码SSIServletExternalResolver的查询字符串的编码的逻辑,以便正确考虑ConnectoruseBodyEncodingForURI属性. (市场)
  • Fix: Within the Expires filter, make the content type value specified with the ExpiresByType parameter, case insensitive. (markt)

Coyote

  • Fix: When a TrustManager is configured that does not support certificateVerificationDepth only log a warning about that lack of support when certificateVerificationDepth has been explicitly set. (markt)
  • 固定: 60970 :扩展了对大标头的推送请求的修复. (市场)
  • 固定: HTTP / 2响应中的状态代码小于200时,请勿包含Date标头.(标记)
  • 固定: 当使用NIO2连接器发送HTTP / 2推送承诺时,推送的流ID仅应包含在初始推送承诺帧中,而不应包含任何后续的继续帧. (市场)

Jasper

  • 固定: 当不存在BOM且检测到编码时,请勿跳过用于检测编码的字节,因为它们不是BOM的一部分. (市场)
  • 更新: 61057 :更新到Eclipse JDT编译器4.6.3. (紫罗兰色)
  • 固定: 61065 :确保通过javax.el.ImportHandler#resolveClass解析javax.el.ImportHandler#resolveClass ,将使用正确的名称对其进行缓存. (紫罗兰色)

WebSocket

  • 加: 引入新的API oatomcat.websocket.WsSession#suspend / oatomcat.websocket.WsSession#resume ,可用于挂起/恢复读取传入消息. (紫罗兰色)
  • 固定: 61003 :即使在处理期间发生某些异常, oatwebsocket.AsyncChannelWrapperSecure确保正确重置oatwebsocket.AsyncChannelWrapperSecure中的读写标志. (markt / violetagg)

Web Applications

  • 加:maxIdleTime属性的文档添加到Channel Receiver文档. (kfujino)

Tribes

  • 加: 添加功能以获取Receiver组件和MessageDispatchInterceptor的线程池的统计信息. 这些统计信息可以通过JMX获取. (kfujino)
  • 加:maxIdleTime属性添加到NioReceiverMBean以便向JMX公开. (kfujino)
  • 加: 添加对Channel Interceptors JMX支持. 实现JMX支持的拦截器是TcpFailureDetectorThroughputInterceptorTcpPingInterceptorStaticMembershipInterceptorMessageDispatchInterceptorDomainFilterInterceptor . (kfujino)

Other

  • 加: 修改用于发布到Maven存储库的Ant构建脚本,以使其不再需要由GPG签名的工件. CI系统可以将快照构建上传到ASF Maven存储库. (市场)

2017-04-18 Tomcat 9.0.0.M20 (markt)

Catalina

  • 更新: 更新Servlet 4.0 API实现,以反映方法名称从getPushBuilder()newPushBuilder()的更改. (市场)
  • 固定: 在新的HTTP Host标头验证解析器中更正各种边缘情况. 由Katya Todorova提供的补丁. (马丁)
  • 固定: 更正X中的回归以逗号重构会破坏采用参数的JMX操作. (市场)
  • 固定: 在读取未启用TLS的正在运行的HTTP连接器的属性时,请避免NullPointerException . (市场)
  • 固定: 47214 :重构代码,以便为明确引用的内部类提供明确的名称,而不是匿名的. (市场)
  • 固定: 59825 :记录一条消息,该消息列出处理链中调用ServletRequest.startAsync()失败时不支持异步处理的组件. (市场)
  • 固定: 60940 :从打包的WAR文件运行Web应用程序时,改进对位于/WEB-INF/lib Jar文件的META-INF/META-INF/MANIFEST.MF条目的处理. (市场)
  • 固定: 预加载ExceptionUtils类. 由于该类在错误处理中被广泛使用,因此应谨慎地预先加载它,以免在加载此类时出现任何错误,从而掩盖了错误处理过程中的真实问题. (市场)
  • Fix: Avoid potential NullPointerExceptions related to access logging during shutdown, some of which have been observed when running the unit tests. (markt)
  • 固定: 如果没有注册javax.servlet.WriteListener那么对javax.servlet.ServletOutputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)
  • 固定: 如果没有注册javax.servlet.ReadListener那么对javax.servlet.ServletInputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)

Coyote

  • 固定: 将密码配置解析与当前的OpenSSL主文件对齐. (市场)
  • 固定: 60970 :修复了使用HTTP / 2时应用程序尝试向响应中写入大标头的无限循环. (市场)

Jasper

  • 固定: 47214 :重构代码,以便为明确引用的内部类提供明确的名称,而不是匿名的. (市场)
  • 固定: 60925 :改善访问由接口定义的属性的处理时BeanELResolver是下使用SecurityManager . (市场)

Tribes

  • 加: 添加对Tribes组件的JMX支持. (kfujino)

jdbc-pool

  • 码: 重构为代理类创建的构造函数,以减少重复的代码. (kfujino)
  • Fix: In StatementFacade, the method call on the statements that have been closed throw SQLException rather than NullPointerException. (kfujino)

Other

  • 固定: 60932 :在i18n消息中使用时,请正确转义单引号. 基于Michael Osipov的补丁. (市场)
  • 码: 查看i18n属性文件,删除不必要的转义符,并始终使用[...]分隔插入值. (市场)
  • 固定: 更新与Symantec Code Signing服务集成的自定义Ant任务,以使用现在强制性的2因子身份验证. (市场)
  • 码: 重构以准备Java9.重构以避免使用某些将在Java 9以后版本中弃用的方法. (市场)

2017-03-30 Tomcat 9.0.0.M19 (markt)

Catalina

  • 加: 54618HttpHeaderSecurityFilter HSTS preload参数的支持添加到HttpHeaderSecurityFilter . (市场)
  • 固定: 纠正Servlet 4.0功能实现中的一个错误,该错误允许为每个Web应用程序指定默认的请求和/或响应字符编码. 通过编程接口传递的null值不再触发NullPointerException . (市场)
  • 固定: 当将一个或多个容器的startStopThreads的值配置为1时,更正关闭期间的潜在异常. (市场)
  • Fix: 60853: Expose the SSLHostConfig and SSLHostConfigCertificate objects via JMX. (markt)
  • Fix: 60876: Ensure that Set-Cookie headers generated by the Rfc6265CookieProcessor are aligned with the specification. Patch provided by Jim Griswold. (markt)
  • 固定: 60882 :为没有任何pathInfo关联的请求获取RequestDispatcher时,修复了NullPointerException . 这是Servlet 4.0 API更改的9.0.0.M18中的更改的回归. (市场)
  • 更新: 使PushBuilder API与Servlet专家组的更改保持一致. (市场)
  • 更新: 根据Servlet专家组对<request-character-encoding><response-character-encoding>更改,使web.xml解析规则对齐. (市场)
  • 码: 重构X的各种实现,以逗号分隔列表到单个实用程序类,并更新代码以使用新的实用程序类. (市场)
  • 固定: 60911 :确保在查找SSL会话ID时不会抛出NPE. 基于Didier Gutacker的补丁. (紫罗兰色)

Coyote

  • 固定: 为HTTP / 2添加基于异步的IO基础. (雷姆)
  • 固定: 修复EOF上的HTTP / 2错误输入取消阻止. (雷姆)
  • 固定: 如果当前连接发生与该连接的当前状态不一致的事件,请尽快关闭该连接. (市场)
  • 固定: 通过确保解锁接收器线程的代码正确处理存在多个线程的情况,可以加快使用多个接收器线程时的关闭速度. (市场)
  • 固定: 60851 :将application/xmlapplication/json到可压缩MIME类型的默认列表中. 迈克尔·奥西波夫(Michael Osipov)的补丁. (市场)
  • 固定: 60852 :在配置属性和内部代码中使用时,拼写可正确压缩. 基于Michael Osipov的补丁. (市场)
  • Fix: 60900: Avoid a NullPointerException in the APR Poller if a connection is closed at the same time as new data arrives on that connection. (markt)
  • Fix: Improve HPACK specification compliance by fixing some test failures reported by the h2spec tool written by Moto Ishizawa. (markt)
  • 固定: 通过修复Moto Ishizawa编写的h2spec工具报告的一些测试失败,提高HTTP / 2规范的合规性. (市场)
  • 固定: 60918 :修复了sendfile处理错误,该错误可能导致后续请求遇到IllegalStateException . (市场)
  • 固定: 改进请求传递时的sendfile处理. (市场)

Jasper

  • Fix: 60844: Correctly handle the error when fewer parameter values than required by the method are used to invoke an EL method expression. Patch provided by Daniel Gray. (markt)

jdbc-pool

  • 固定: 60764 :在StatementFacade中实现equals()hashCode() ,以便在设置了任何语句代理的情况下,在封闭的语句上调用这些方法. 可以使用useStatementFacade属性更改此行为. (kfujino)

Other

  • 固定: 重构生成脚本和NSIS安装程序脚本,以便可以使用NSIS 2.x或NSIS 3.x来生成安装程序. 这主要是为了重新启用在基于Linux的CI系统上构建安装程序的功能,在该系统上,NSIS 3.x和wine的组合会导致安装程序构建失败. (市场)

2017-03-13 Tomcat 9.0.0.M18 (markt)

Catalina

  • Fix: 60469: Refactor RealmBase for better code re-use when implementing Realms that use a custom Principal. (markt)
  • 固定: 60490 :各种格式和布局的改进为ErrorReportValve . 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60573 :发送100响应状态时,请删除原因短语,以与其他响应状态行保持一致. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 更新: 60596 :在连接器上禁用sendfile功能时,提高DefaultServlet的性能. (kkolinko)
  • 码: 通过getDefaultWebXmlListener()使Tomcat子类更容易修改默认的web.xml设置. 亚伦·安德森(Aaron Anderson)提供的补丁. (市场)
  • 固定: 当多个线程正在管理对象并且需要引用注释缓存时,减少默认InstanceManager实现中的争用. (市场)
  • 固定: 60623 :当startStopThreads为1(或等于1的特殊值)时,而不是使用ExecutorService启动当前组件的子代,这些子代将在当前线程上启动. (市场)
  • 码: 60674 :从CorsFilter删除final标记以启用子分类. (市场)
  • Fix: 60683: Security manager failure causing NPEs when doing IO on some JVMs. (csutherl)
  • 固定: 60688 :将Apache Commons BCEL的内部fork更新为r1782855,以将早期访问Java 9支持添加到注释扫描代码中. (市场)
  • 固定: 60694 :在没有JASPIC AuthConfigFactory可用时,在身份验证期间阻止NPE. (市场)
  • 固定: 60697 :当在连接器上禁用HTTP TRACE请求时,请确保来自自定义servlet的HTTP OPTIONS响应在返回的Allow标头中不包括TRACE. (市场)
  • 固定: 60718 :改进了异步处理的错误处理,并更正了多种情况,其中未触发requestDestroyed()事件,并且未在访问日志中进行输入. (市场)
  • 固定: 60720 :在SpnegoAuthenticator中用静态最终AUTH_HEADER_NAME替换" WWW-Authenticate"文字. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (紫罗兰色)
  • 固定: 现在,当RegistrationListener新的AuthConfigProvider时,默认的JASPIC AuthConfigFactory可以正确通知注册的RegistrationListener . (市场)
  • 码: 没有可用的JASPIC配置时,提高AuthenticatorBase的性能. (紫罗兰色)
  • 固定: 当在连接器上禁用HTTP TRACE请求时,请确保来自WebDAV Servlet的HTTP OPTIONS响应在返回的Allow标头中不包括TRACE. (市场)
  • 固定: 60722 :在为由AsyncContext.dispatch()触发的调度生成路径时,请考虑当前Context上的dispatchersUseEncodedPaths设置. (市场)
  • 固定: 60728 :使Tomcat在Tomcat特定war:file:...使用的分隔符可通过系统属性自定义URL协议. 分隔符等同于使用! jar:file:... URL中的字符. *的默认分隔符保持不变. (市场)
  • 更新: 更新Servlet 4.0 API实现,使其与Servlet 4.0专家组的最新建议保持一致. 这包括对新Servlet映射API的更新, ServletContext上的使可用API与部署描述符更等效的新方法,对HTTP push API的更新以及为每个Web应用程序设置默认请求和响应字符编码的能力. 请注意,Servlet 4.0 API仍在开发中,可能会有进一步的更改. (市场)
  • 固定: 60798 :更正了未打包的 WAR中对JAR的处理中的一个错误,该错误意味着多次连续尝试从JAR读取同一条目的尝试将在第二次和后续尝试中失败. (市场)
  • 固定: 60808 :确保ServletRequest.getParameterMap()返回的Map完全不可变. 基于woosan提供的补丁. (市场)
  • 固定: 60824 :在SecurityManager下运行时,如果存在会话,则在会话中正确缓存Subject . Jan Engehausen提供的补丁. (市场)
  • Fix: Ensure request and response facades are used when firing application listeners. (markt/remm)

Coyote

  • 固定: 当HTTP / 2客户端发送的数据多于当前窗口大小所允许的流控制时,改进对这种情况的处理. (市场)
  • Fix: Improve NIO2 look-ahead parsing of TLS client hello for SNI with large client hello messages. (markt)
  • 加: 在Java 9上运行时,如果将JSSE实现用于TLS,则对NIO和NIO2 HTTP连接器启用ALPN并因此对HTTP / 2启用.(标记)
  • Fix: Restore Java 9 direct byte buffer compatibility. (remm)
  • 固定: 59807 :提供更好的错误消息时,有没有SSLHostConfig具有定义hostName ,所述匹配defaultSSLHostConfigName用于相关联的连接器 . (市场)
  • 固定: 60627 :修改Rfc6265CookieProcessor以便除了以显式RFC 2109 $Version=1开头的cookie头之外,以$Version=0开头的cookie也被解析为RFC 2109 cookie. (市场)
  • 固定: 当警告算法不支持certificateVerificationDepth配置选项时,请包含SslHostConfig.truststoreAlgorithm的值. (市场)
  • 固定: 确保与连接器一起使用的执行程序线程池预先启动配置的最小空闲线程数. (市场)
  • 固定: 60716 :将新的JSSE特定属性revocationEnabled添加到SSLHostConfig以在未配置certificateRevocationListFile时允许启用JSSE提供者吊销检查. 期望配置将通过JSSE提供程序特定的机制执行. (市场)
  • 固定: 修改由Rfc6265CookieProcessor生成的cookie头,以便它始终发送Expires属性以及Max-Age属性,以避免不支持Max-Age属性的Microsoft浏览器出现问题. (市场)
  • 固定: 60761 :为NioEndpoint.stopLatch公开受保护的吸气剂和吸气剂,以使该类更易于扩展. (市场)
  • 固定: 在HTTP / 2发生流异常后,防止阻止读取. (雷姆)

Jasper

  • 固定: 继续进行58178的修复. 为标记文件创建ELContext ,请确保已触发所有已注册的ELContextListener . (市场)
  • 固定: 重构为JSP生成的代码,以减少标签所需代码的大小. (市场)
  • 固定: 改进简单标签的错误处理,以确保使用后即可释放并销毁标签. (雷姆,violetagg)
  • 固定: 60769 :更正了针对9.0.0.M16进行的XML编码检测重构中的回归,该回归错误地始终优先使用检测到的BOM编码,而不是在序言中指定的任何编码. (市场)

Cluster

  • 加: 使accessTimeoutBackupManagerClusterSingleSignOn配置. accessTimeout用作复制映射中PING的超时时间. (kfujino)
  • 固定: 60806 :为避免ClassNotFoundException ,请确保将Web应用程序类加载器传递给ReplicatedContext . (kfujino)

WebSocket

  • 固定: 60617 :通过代理建立WebSocket连接时,正确创建CONNECT请求. Svetlin Zarev提供的补丁. (市场)

Tribes

  • 加: 添加超过超时时间已收到PING消息的日志消息. (kfujino)
  • 固定: 当收到超过超时时间的PING消息时,请确保将有效成员添加到地图成员中. (kfujino)
  • 固定: 确保NoRpcChannelReply消息没有接收到RpcCallback . (kfujino)

Web Applications

  • 固定: 将JASPIC的规范和Javadoc参考添加到Docs应用程序. (csutherl)

Other

  • 固定: Josh Soref提供的拼写更正. (紫罗兰色)
  • 码: 删除Web服务注释的本地定义,因为它们由JRE提供. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.12,以获取使用OpenSSL 1.0.2k构建的最新Windows二进制文件. (紫罗兰色)
  • 加: 60784 :更新所有测试HTTP状态行的单元测试,以检查状态代码后是否需要空格. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)

2017-01-16 Tomcat 9.0.0.M17 (markt)

Catalina

  • 加: 60620 :扩展JreMemoryLeakPreventionListener以提供保护以防止ForkJoinPool.commonPool()相关的内存泄漏. (市场)

Coyote

  • 固定: 确保与当前关闭的连接关联的UpgradeProcessor实例已从当前到处理器的连接映射中删除. (市场)
  • 固定: 删除先前使用WebSocket,TLS和APR报告的问题的变通办法,该问题将某些错误情况视为非错误. 原始问题无法用当前代码重现,并且变通办法现在引起问题. (市场)

Jasper

  • 固定: 60497 :使用更好的变量名称作为标签重用标志的后续修订. (雷姆)
  • 固定: 将简单标签的try / final方法恢复使用. (雷姆)

WebSocket

  • 固定: 防止在意外的WebSocket连接关闭时可能的处理循环. (市场)

jdbc-pool

  • 加: 启用重置统计信息而不重新启动池. (kfujino)

Other

  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.01版. (市场)
  • Fix: Spelling corrections provided by Josh Soref. (violetagg)

not released Tomcat 9.0.0.M16 (markt)

Catalina

  • 加: 53602 :将HTTP状态代码451(RFC 7725)添加到ErrorReportValve可以识别的HTTP状态代码列表中. (市场)
  • 固定: 60446 :处理存储的用户凭证使用与当前为CredentialHandler配置的长度不同的密钥长度的情况. 基于Niklas Holm的补丁. (市场)
  • 更新: 更新引用了在Java 9上运行所需的选项的警告,以对这些选项使用最新的语法. (市场)
  • 固定: 60513 :使用RMI清除代码解决了线程安全问题. (雷姆)

Coyote

  • 固定: 当OpenSSL与JSSE连接器一起使用并且尚未配置显式别名时,请扩展服务器证书的搜索过程. (市场)
  • 码: 从每个端点中提取通用的接受者代码到所有端点都使用的新的接受者类中. (市场)
  • 固定: 60450 :改进了TLS虚拟主机默认信任存储类型的选择算法. 特别是,请勿将PKCS12用作默认信任库类型. 更好地记录如何为TLS虚拟主机选择默认信任存储类型. (市场)
  • 固定: 60451 :正确处理包含具有Unicode代码点范围在128到255之间的字符的HTTP / 2标头值.拒绝并带有明确的错误消息HTTP / 2标头值包含包含Unicode代码点在255以上的字符.(标记)
  • Fix: Improve the logic that selects an address to use to unlock the Acceptor to take account of platforms what do not listen on all local addresses when configured with an address of 0.0.0.0 or ::. (markt)
  • 固定: 更正重构中的回归,以更广泛地使用ByteBuffer ,而ByteBuffer会导致单元测试中的间歇性失败. (市场)
  • 固定: 60482 :HTTP / 2不应对查询字符串进行URL解码. (雷姆)
  • 固定: 修复HTTP / 2压缩错误. 一旦为动态HPACK表确定了新的大小,则下一个标头块必须以动态表更新开始. (市场)
  • 固定: 60508 :设置HTTP / 2的请求开始时间. (雷姆)
  • 固定: 现在,AJP连接器的默认输出缓冲区大小基于配置的AJP数据包大小,而不是最小允许的AJP数据包大小. (市场)

Jasper

  • 更新: 实现一个更简单的JSP文件编码检测器,该检测器将XML序言编码检测委托给JRE,而不是使用自定义XML解析器. (市场)
  • 固定: 60497 :使用try / finally后,恢复以前的标签重用行为. (雷姆)
  • 固定: 改进简单标签的错误处理,以确保使用后即可释放并销毁标签. (雷姆)

WebSocket

  • Fix: Correctly handle blocking WebSocket writes when the write times out just before the write is attempted. (markt)

Web Applications

  • 固定: 60344 :在BUILDING.txt中添加有关使用带有正确行尾的源包的注释. (市场)
  • 固定: 60467 :从XML文档中删除有问题的字符. 基于Michael Osipov的补丁. (舒尔茨)
  • 加: 在文档Web应用程序中,必须明确指出,集群要求所有集群网络流量都需要一个安全的网络. (市场)
  • 更新: 将ASF徽标更新为新版本.
  • 固定: 60468 :更正用于报告文档生成日期的示例ISO-8601日期的格式. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)

Other

  • 更新: 更新用于Windows的Apache Tomcat安装程序中使用的ASF徽标,以使用新版本.

2016-12-08 Tomcat 9.0.0.M15 (markt)

Other

  • 码: 增量版本是由于9.0.0.M14的本地内部版本配置错误导致的,直到完成数字签名后才捕获该错误,签名需要唯一的名称,因此需要一个新标签. (市场)

not released Tomcat 9.0.0.M14 (markt)

Catalina

  • 更新: 60202 :向领域添加可用标志,以指示状态或领域后端. 如果锁定域可用,则将锁定域更新为仅注册身份验证失败. (雷姆)
  • 固定: 60340 :改进了DefaultServlet和ErrorReportValve中使用的CSS的可读性. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (紫罗兰色)
  • 固定: 60351 :延迟创建META-INF/war-tracker文件,直到扩展WAR之后以解决在扩展过程中Tomcat进程终止的情况. (市场)
  • 固定: 为本身位于打包的WAR文件中的JAR中的资源正确生成URL. (市场)
  • 固定: 嵌入Tomcat时正确处理主机的configClass属性. (市场)
  • 更新: 60368 :在嵌入式模式下启动时停止创建默认连接器. (雷姆)
  • 固定: 60379 :一旦不再需要GSS凭证,则将其丢弃. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60380 :确保对HttpServletRequest#logout()的调用触发对TomcatPrincipal#logout()的调用. 基于Michael Osipov的补丁. (市场)
  • 固定: 60381 :为实现Contained组件提供标准的toString()实现. (市场)
  • 固定: 60387 :更正了oacatalina.AccessLog.setRequestAttributesEnabled的javadoc. 对于不同的实现,默认值是不同的. (紫罗兰色)
  • 码: 60393 :在Realm#authenticate(GSSContext, boolean)实现中使用一致的参数命名. (市场)
  • 码: 重构org.apache.naming包以减少重复的代码. Simian工具标识的重复代码. (市场)
  • 码: 重构HttpServletRequest#getRequestURL()以减少重复的代码. Simian工具标识的重复代码. (市场)
  • 码: 重构Catalina接口,以更广泛地使用Contained接口并减少重复. (市场)
  • 码:RealmBase删除getName()方法,以及子类用于存储返回值的各种常量. (市场)
  • 固定: 60395 :在Authenticator将不完整的GSSContext传递给领域时进行记录,因为它指示Authenticator器中的错误. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60400 :扩展用于读取请求正文的缓冲区时,请确保将读取位置恢复到原始位置. (紫罗兰色)
  • 码: 重构内部Tomcat组件的MBean实现,以减少代码重复. (市场)
  • 固定: 60410 :确保对JarInputStreamWrapper#close()多次调用不会错误地触发底层JAR或WAR文件的关闭. (市场)
  • 固定: 60411 :实现在支持RewriteValve的符号名返回重定向响应用户代理时指定重定向代码使用. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • Fix: 60413: In the RewriteValve write empty capture groups as the empty string rather than as "null" when generating the re-written URL. Based on a patch by Michael Osipov. (markt)

Coyote

  • Fix: 60372: Ensure the response headers' buffer limit is reset to the capacity of this buffer when IOException occurs while writing the headers to the socket. (violetagg)
  • 固定: 确保在Tomcat启动期间正确报告了需要ALPN的已配置升级协议的可用性. (市场)
  • 固定: 60386 :实现一种更复杂的修剪算法,用于从优先级树中删除关闭的流,以确保该树不会变得太大. (市场)
  • 固定: 60409 :当无法完成sendfile请求时,请确保仅将处理器添加到缓存一次. (markt / violetagg)
  • 固定: 如果将端点配置为侦听特定类型(例如0.0.0.0:: 0.0.0.0任何本地地址,请确保端点在关闭期间能够解锁接收器线程. (市场)
  • 加: 向APR连接器添加新的配置选项ipv6v6only ,该选项允许将它们配置为仅在配置了IPv6地址时接受IPv6连接,而不是默认值(如果操作系统使用双网络堆栈,则默认接受IPv4连接). (市场)
  • 固定: 改进解锁接收器线程的逻辑,以便在为任何本地端口配置连接器时可以更好地选择要连接的地址. 这减少了解锁失败的可能性. (市场)
  • 固定: 60436 :处理异步超时时,请避免使用潜在的NPE. (市场)
  • 固定: 减少一个窗口,在该窗口中,刚开始在容器线程上处理的异步请求仍然有资格进行异步超时. (市场)

Jasper

  • 固定: 60431 :改进了UEL表达式中对varargs的处理. 基于Ben Wolfe的补丁. (市场)

Web applications

  • 固定: 更正《主机配置参考》中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 固定: 60412 :添加有关RewriteValve配置的注释语法的信息. (市场)

Tribes

  • 固定: 减少从其他域接收到的消息的警告日志,以避免过多的日志输出. (kfujino)

WebSocket

  • 固定: 60437 :避免websocket客户端中的握手溢出. (雷姆)

jdbc-pool

  • 加: 58816 :实现jdbc-pool的统计信息. 该统计数据的相关信息是borrowedCountreturnedCountcreatedCountreleasedCountreconnectedCountreleasedIdleCountremoveAbandonedCount . (kfujino)
  • 固定: 60194 :如果validationQuery没有指定,连接验证是通过调用完成isValid()方法. (kfujino)
  • 固定: 60398 :修复TestSlowQueryReport . (kfujino)

Other

  • 固定: 允许自定义service.bat,例如堆内存大小,服务启动模式和JVM args. isapir通过Github提供的补丁. (紫罗兰色)
  • 固定: 60366 :将catalina.bat更改为直接使用LOGGING_MANAGERLOGGING_CONFIG变量以配置日志记录,而不是修改JAVA_OPTS . Petter Isberg提供的补丁. (紫罗兰色)
  • 固定: 60383JASPIC API被添加为对org.apache.tomcat:tomcat-catalina Maven工件的依赖. (紫罗兰色)
  • 固定: 更新server.xml中与TLS连接器示例关联的注释. (市场)
  • 加: 添加了新属性test.verbose ,以控制测试的输出是否在控制台上显示. Emmanuel Bourg提供的补丁. (紫罗兰色)
  • 码: TestOpenSSLCipherConfigurationParser.testSpecification如果存在测试失败,请提供更多详细信息. Emmanuel Bourg提供的补丁. (紫罗兰色)

2016-11-08 Tomcat 9.0.0.M13 (markt)

Coyote

  • 固定: 检查AbstractProtocol中使用的threadPriority值是否有效. (fschumacher)

not released Tomcat 9.0.0.M12 (markt)

Catalina

  • 固定: 通过JMX创建新的连接器时,请确保可以同时创建HTTP / 1.1和AJP / 1.3连接器. (市场)
  • 固定: 当连接器无法实例化关联的ProtocolHandler时,减少多个错误消息. (市场)
  • 固定: 60152 :为连接器生命周期异常提供一个重新抛出而不是记录的选项. 这由连接器的新throwOnFailure属性控制. (市场)
  • 固定: 无法将项目添加到缓存时,请在日志消息中包含上下文名称. (市场)
  • 固定: 从静态资源缓存中排除/WEB-INF/lib JAR文件. (市场)
  • 固定: 在目录上调用getResourceAsStream()时,请确保返回null . (市场)
  • 固定: 60161 :允许创建容器记录器的子类别,并将其用于重写阀. (雷姆)
  • 固定: 阅读提供的关机密码时,请正确测试控制字符. (市场)
  • 固定: 60297 :简化嵌入式模式下的连接器创建. (雷姆)
  • 固定: 以嵌入式模式重构容器的创建,以提高一致性和灵活性. (雷姆)
  • 加: 如果在启用了ThreadLocal内存泄漏检测的Java 9上运行(默认设置),但现在不要求使用命令行选项,则记录警告. (市场)
  • Fix: When a Connector is configured to use an executor, ensure that the StoreConfig component includes the executor name when writing the Connector configuration. (markt)
  • 固定: 配置JMX远程侦听器时,请指定凭据的允许类型. (市场)

Coyote

  • 固定: 在创建编码器和解码器时,请更正转置客户机和服务器表大小的HPACK头表大小配置. (市场)
  • 码: 查看HTTP / 2实现,删除未使用的代码,在可能的情况下降低可见性,并在适当的地方使用final. (市场)
  • 固定: 如果HTTP / 2流在标头解析过程中被重置,请不要继续处理. (市场)
  • 固定: HTTP / 2为每个Cookie使用单独的标头. 根据RFC 7540的要求,在继续处理之前将它们合并到单个Cookie标头中. (市场)
  • 固定: 将HTTP / 2实现与HTTP / 1.1实现对齐,并在请求处理期间发生未处理的异常时返回500响应. (市场)
  • 固定: 更正HTTP标头解析器,以便不将DEL视为有效的令牌字符. (市场)
  • Add: Add checks around the handling of HTTP/2 pseudo headers. (markt)
  • 加: 将对尾部标头的支持添加到HTTP / 2实现中. (市场)
  • 固定: 60232 :处理HTTP / 2流的标头时,请确保读取缓冲区足够大,可以处理标头. (市场)
  • 加: 将配置选项添加到HTTP / 2实现中,以控制允许的最大标头数,允许的标头的最大大小,允许的尾部标头的最大数量,允许的尾部标头的最大大小以及允许的cookie的最大数量. (市场)
  • 固定: 跟踪HTTP / 2流的状态时,正确区分发送和接收重置帧. (市场)
  • 码: 删除对使用旧连接器属性名称backlogsoLingersoTimeout的未记录的支持,这些属性soTimeout已重命名了几个主要版本. (市场)
  • 固定: 60319 :使用执行器时,请将其与连接器属性maxThreadsminSpareThreadsthreadPriority断开连接,以使配置设置能够始终如一地报告. 使用执行程序时,这些连接器属性将报告为-1 . 执行者使用的值可以通过执行者进行设置和获取. (市场)
  • 固定: 如果在非容器线程上进行异步处理期间发生I / O错误,请确保触发了onError()事件. (市场)
  • 固定: 改进在非容器线程上进行异步处理期间对I / O错误的检测,并在检测到它们时触发异步错误处理. (市场)
  • 加: 将其他对有效字符的检查添加到HTTP请求行解析中,以便更快地拒绝无效的请求行. (市场)

Jasper

  • 更新: 更新到Eclipse JDT Compiler 4.6.1. (市场)

Web applications

  • 加: 将HTTP / 2配置信息添加到文档Web应用程序. (市场)
  • 固定: 修复jdbc-pool中validationInterval属性的默认值. (kfujino)
  • 固定: 更正" CGI操作方法"中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)

Tribes

  • 固定: 当代理节点发送备份检索消息时,请确保使用已设置的channelSendOptions而不是默认的channelSendOptions . (kfujino)

Other

  • 加: 将JASPIC API jar添加到Maven Central发布脚本中. (市场)
  • 固定: 从tomcat-util-scan.jar中删除与tomcat-util.jar中的类重复的类. (市场)
  • 加: 将用于构建Windows安装程序的NSIS安装程序更新为3.0版. (市场)

2016-10-10 Tomcat 9.0.0.M11 (markt)

Catalina

  • 加: 59961 :向StandardJarScanner添加一个选项,以控制是否扫描JAR清单以查找其他类路径条目. (市场)
  • 固定: 60013 :重构先前的修复程序,以使重写阀的行为与mod_rewrite保持一致. 作为其一部分,提供BNE标志的实现,并改进QSA标志的处理. 包括Santhana Preethiand的多个测试用例和Tiago Oliveira的补丁. (市场)
  • 固定: 60087 :重构Web资源处理以使用Tomcat特定的war:file:... URL协议来引用WAR文件及其内容,而不是标准的jar:file:...形式,因为JRE的某些组件,例如JAR验证,使用标准格式时会产生意外的结果. 重构的副作用是,当使用打包的WAR时,现在可以在在SecurityManager下运行时使用的安全策略文件中引用WAR和/或WAR中的特定JAR. (市场)
  • 固定: 60116 :解决了改写阀的问题,该问题导致使用NC标志在条件下评估的反向引用被强制小写. (市场)
  • 固定: 确保在使用类加载器的情况下考虑Digester.useContextClassLoader . (紫罗兰色)
  • 固定: 60117 :使用OneLineFormatter时,请确保LogLevel的名称已本地化. Tatsuya Bessho提供的补丁. (kfujino)
  • 固定: 60138 :修复SSLHostConfig ,以使protocols属性限制为当前JSSE实现所支持的协议,而不是实现所使用的默认协议. (市场)
  • 固定: 60146 :如果资源足够小,则通过调用WebResource.getInputStream()触发缓存来提高资源检索的性能. mohitchugh提供的补丁. (市场)
  • 加: 60151 :改进当ResourceLink无法指定类型,指定未知类型或指定错误类型时的异常错误消息. (市场)
  • Fix: 60167: Ignore empty lines in /etc/passwd files when using the PasswdUserDatabase. (markt)
  • 固定: 60170 :从RAT分析中排除压缩的测试文件index.html.br . Gavin McDonald提供的补丁. (市场)
  • Fix: When starting web resources, ensure that class resources are only started once. (markt)
  • 固定: 改进对链接的全局资源的访问检查,以处理当前类装入器是Web应用程序类装入器的子级的情况. (市场)
  • 固定: 60196 :使用isMandatory身份验证时,请确保正确设置了isMandatory标志. (市场)
  • 固定: 60199 :如果反序列化问题阻止会话属性加载,请记录警告. (市场)
  • Fix: 60208: When using RFC6265 compliant cookies, the / character should not be allowed in a cookie name since the RFC6265 will drop such cookies as invalid. (markt)
  • 加:oacatalina.connector.CoyoteInputStream / oacatalina.connector.CoyoteOutputStream引入新的方法read(ByteBuffer) / write(ByteBuffer) . (紫罗兰色)

Coyote

  • Add: Refactor the code that implements the requirement that a call to complete() or dispatch() made from a non-container thread before the container initiated thread that called startAsync() completes must be delayed until the container initiated thread has completed. Rather than implementing this by blocking the non-container thread, extend the internal state machine to track this. This removes the possibility that blocking the non-container thread could trigger a deadlock. (markt)
  • 固定: 如果客户端在SNI处理期间关闭连接,则会更早失败. (市场)
  • 固定: 60123 :避免潜在的线程问题,该问题可能导致在当前请求的处理时间内返回过大的值. (市场)
  • Fix: 60174: Log instances of HeadersTooLargeException during request processing. (markt)
  • 固定: 60173 :允许最大为64kB HTTP / 2头表大小限制. (雷姆)
  • 固定: 直接ByteBuffer清理程序的Java 9兼容性. (雷姆)

Jasper

  • 固定: 60101 :删除已删除的类的预加载. (紫罗兰色)

Web applications

  • 加: 扩展Resources元素中嵌套元素的文档,以阐明不同配置选项关于搜索资源顺序的行为. (市场)
  • 加: 将示例使用classesToInitialize属性JreMemoryLeakPreventionListener到文档Web应用程序. 基于Cris Berneburg的补丁. (市场)
  • 固定: 60192 :更正Manager应用程序状态输出中的错字. Radhakrishna Pemmasani提供的补丁. (市场)

jdbc-pool

  • 固定: 返回已标记为可疑的连接时通知jmx. (kfujino)
  • 固定: 确保POOL_EMPTY通知已添加到jmx通知类型. (kfujino)
  • 固定: 60099 :使用StatementCache时,请确保将所有方法参数都用作缓存键. (kfujino)

Other

  • 固定: 更新Objenesis的下载位置. (紫罗兰色)
  • 固定: 60164 :将log4j-core*.jar替换为log4j-web*.jar因为它是包含ServletContainerInitializer log4j-web*.jar . (市场)
  • 加: 将文档添加到bin / catalina.bat脚本中,以提醒用户在作为Windows服务运行时环境变量不会影响Tomcat的配置. 基于James HH Lampert的文档补丁. (舒尔茨)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.10,以获取使用OpenSSL 1.0.2j构建的最新Windows二进制文件. (市场)

2016-09-05 Tomcat 9.0.0.M10 (markt)

Catalina

  • 固定: 59813 :确保可以正确处理JAR清单中Class-Path属性的循环关系. (紫罗兰色)
  • 固定: 确保通过JMX读取StandardWrappersingleThreadModel属性不会触发相关servlet的初始化. 在某些框架下,这可能会触发意外的初始化线程,如果初始化不是线程安全的,则初始化可能会失败. (市场)
  • 固定: 与不存在的标头从httpd重写的兼容性. (jfclere)
  • 固定: 默认情况下,将用于获取请求分配器的路径视为已编码. 可以通过Context的dispatchersUseEncodedPaths属性针对每个Web应用程序更改此行为. (市场)
  • 加: 提供一种机制,使该容器能够在SecurityManager下运行时检查组件(通常是Web应用程序)是否已被授予给定权限,而不必使当前执行堆栈通过该组件. 使用此新机制将SecurityManager保护扩展到摘要程序的系统属性替换功能. (市场)
  • 加: 通过ResourceLink检索对象时,请确保获得的对象属于预期的类型. (市场)
  • Fix: 59823: Ensure that JASPIC configuration is taken into account when calling HttpServletRequest.authenticate(). (markt)
  • 固定: 59824 :默认情况下,将RewriteValve标记为支持异步处理. (市场)
  • 固定: 59839 :将roleSearchAsUser应用于roleSearchAsUser中的所有嵌套搜索. (fschumacher)
  • 固定: 59859 :修复了WebDAV Servlet中的资源泄漏. 基于Coty Sutherland的补丁. (fschumacher)
  • 固定: 59862 :允许使用系统属性tomcat.util.scan.StandardJarScanFilter.jarsToSkip过滤嵌套的jar文件. 补丁由Terence Bandoian提供. (紫罗兰色)
  • 固定: 59866 :扫描WEB-INF/classes classs的注释时,请勿扫描WEB-INF/classes/META-INF (如果存在),因为将永远不会从该位置加载类. (市场)
  • 固定: 59888 :使用Rfc6265CookieProcessor时,可以正确处理引用的第一版Cookie中的制表符和空格. (市场)
  • 固定: JreMemoryLeakPreventionListener解决了许多JRE内存泄漏,已在Java 9中修复,因此,当在Java 9及更高版本上运行时,现在将禁用关联的保护. (市场)
  • 固定: 59912 :修复了输入流处理中的一种极端情况,即在读取POST正文时可能抛出IOException情况. (市场)
  • 固定: 59913 :更正了对Servlet 4 HttpServletRequest.getMapping() API的支持所引入的回归,如果从后续include中请求,则会导致转发的请求的属性丢失. (市场)
  • 固定: 59966 :如果web.xml中的错误页面配置无效,请不要启动Web应用程序. (市场)
  • 固定: 将CGI Servlet切换到标准日志记录机制,并删除对debug属性的支持. (市场)
  • 固定: 60012 :日志消息中的改进. 根据Nemo Chen的建议. (紫罗兰色)
  • Fix: Changes to the allowLinking attribute of a StandardRoot instance now invalidate the cache if caching is enabled. (markt)
  • 加: 在CGI Servlet中添加一个新的初始化参数envHttpHeaders ,以默认情况下缓解httpoxyCVE-2016-5388 ),并提供一种可用于缓解未来任何类似问题的机制. (市场)
  • 加: 动态添加和删除ResourceLink ,请确保仅在原本应有的情况下才可以通过ResourceLinkFactory看到全局资源. (市场)
  • 固定: 60008 :在处理COR请求时,请将具有URI file格式的任何来源都视为有效来源. (市场)
  • 固定: 改进由状态转换触发的生命周期事件期间的异常处理. 现在捕获到异常,并且组件现在处于FAILED状态. (市场)
  • 固定: 60013 :修复了将RewriteValve与UTF-8查询字符串或UTF-8重定向URL一起使用时的编码问题. (市场)
  • 固定: 60022 :将WAR文件和/或关联的分解目录符号链接到appBase时,改进了处理. (市场)
  • 固定: 修复了读取全局web.xml时文件描述符泄漏的问题. (市场)
  • 固定: 使用指定的web.xml文件的编码或未指定显式编码的UTF-8一致地解码通过web.xml提供的URL模式. (市场)
  • 固定: 使针对Realm实现的定时攻击变得更加困难. (舒尔茨)

Coyote

  • 固定: 更正重构中的回归,以启用自定义密钥库的注入,该密钥库破坏了与JSSE TLS连接器一起使用的OpenSSL样式PEM密钥和证书文件的自动转换. (市场)
  • 固定: 59910 :请勿将JSSE的密钥别名值硬编码为" tomcat". 使用密钥库时,OpenSSL仍将默认使用它. (雷姆)
  • 固定: 59904 :为每个请求允许的cookie数量添加一个限制(默认为200). 基于gehui的补丁. (市场)
  • 固定: 59925 :更正r1628368中的回归并确保按照LegacyCookieProcessor配置处理HTTP分隔符. 中村京平提供的补丁. (市场)
  • 固定: 59950 :报告无法将连接的当前HTTP / 2流数目无法修剪到限制以下时,更正日志消息. (市场)
  • 固定: 确保在所有情况下都调用Semaphore.release . 即使有例外. (紫罗兰色)
  • 固定: 60030 :纠正由于无法处理流结束条件而触发的SNI解析代码中潜在的无限循环. (市场)
  • 固定: 重构JSSE客户机证书验证,以便certificateVerificationDepth配置属性的有效性不取决于证书吊销列表的存在. (市场)
  • 固定: Rfc6265CookieProcessor中的小型日志记录优化. Svetlin Zarev提供的补丁. (市场)
  • 固定: 现在,OpenSSL现在默认情况下会禁用3DES,因此在使用OpenSSL语法选择密码时应体现这一点. (市场)
  • 固定: 为NIO2的异步错误使用正确的ERROR套接字状态代码. (雷姆)
  • 固定: 60035 :如果客户端在握手完成之前断开了TLS连接,则修复了潜在的连接泄漏. (市场)
  • 加: 如果JSSE TLS连接器配置了尚未生效或已过期的受信任证书,则在启动时记录警告. (市场)

Jasper

  • 固定: 使用JspC写入完整的web.xml文件时,请确保XML序言中使用的编码与用于写入文件内容的编码匹配. (市场)
  • 固定: 改进自定义标记的错误处理,以确保将标记返回到池中或在使用后释放并销毁. (市场)
  • 固定: 60032 :修复了在EL值表达式中使用varargs的方法调用的处理. (市场)
  • 固定: 忽略engineOptionsClassscratchdir安全管理器下运行时. (市场)
  • 固定: 修复了StringIndexOutOfBoundsException. 基于wuwen通过Github提供的补丁. (紫罗兰色)

WebSocket

  • 固定: 59908 :如果由于超时而关闭会话,请确保关闭消息中包含原因短语. (市场)

Web applications

  • 固定: 59867 :更正Manager 403.jsp提供的文档. (紫罗兰色)
  • 固定: 59868 :澄清Manager Web应用程序的文档,以使服务器部分中的主机名和IP地址更加清晰,这是主要的主机名和IP地址. (市场)
  • 固定: 59940 :更正配置文档中SSLHostConfig元素的truststorePassword属性的名称. (市场)
  • 固定: MBeans描述符操作方法已移至mbeans-descriptors-howto.html . Radoslav Husar提供的补丁. (紫罗兰色)
  • 固定: 使用有关socket.directSslBuffer的信息更新NIO Connector配置文档. (紫罗兰色)
  • 固定: 60034 :更正文档Web应用程序的"管理人员指南"页面中的错字. (市场)
  • 固定: 在文档Web应用程序中更正CRL位置配置属性的名称. (市场)

jdbc-pool

  • 固定: 为了避免PoolCleaner意外跳过,请在已计划的任务中删除执行间隔的检查代码. (kfujino)
  • 固定: 59850 :确保在启用StatementCache拦截器时关闭ResultSet . (kfujino)
  • 固定: 59923 :减小validationInterval的默认值,以避免潜在的问题,即在数据库重新启动后继续返回无效的连接. (kfujino)
  • 固定: 启用StatementDecoratorInterceptor时,请确保将ResultSet作为代理对象返回. (kfujino)
  • 固定: 60043 :当禁用removeAbandoned时, removeAbandoned确保suspectTimeout在不删除连接的情况下工作. (kfujino)
  • Fix: Add log message of when returning the connection that has been marked suspect. (kfujino)
  • 固定: 更正Javadoc for ConnectionPool.suspect() . 基于Yahya Cahyadi的补丁. (市场)

Other

  • 加: 59871 :在JULI的OneLineFormatter添加属性( timeFormat ),以配置日志消息中使用的时间戳的格式. (市场)
  • 固定: 59899 :更新Tomcat的Java Persistence批注的副本,以包括在2.1 / JavaEE 7中所做的更改.(标记)
  • 固定: 修复了mbeans-descriptors.xml文件中的拼写错误. (紫罗兰色)
  • 更新: 将Commons BCEL的内部fork更新为r1757132以与BCEL 6版本保持一致. (市场)
  • 更新: 将Commons DBCP 2的内部fork更新为r1757164,以修复几个错误. (市场)
  • 更新: 将Commons Codec的内部fork更新为r1757174. 代码格式仅更改. (市场)
  • 更新: 将Commons FileUpload的内部fork更新为afdedc9. 这样就可以修复较大的多部分边界,从而提高性能. (市场)

2016-07-12 Tomcat 9.0.0.M9 (markt)

Catalina

  • 固定: 18500 :添加了对通配符主机名和主机别名的有限支持. 现在允许使用*.domainname形式的名称. 请注意,确切的主机名匹配优先于通配符主机名匹配. (市场)
  • 固定: 57705 :为远程主机和远程地址阀和过滤器拒绝的请求添加调试日志记录. 基于Graham Leggett的补丁. (市场)
  • 固定: 更正针对58588的修复中的回归,该回归从嵌入式JAR中删除了整个org.apache.juli包,从而使它们不可用. (市场)
  • 加: 59399 :为Tomcat随附的Realm实现添加一个新选项,该选项允许按Realm控制用于HTTP-> HTTPS重定向的HTTP状态代码. (市场)
  • 固定: 59708 :修改LockOutRealm逻辑. 在锁定期间进行的有效身份验证尝试将不再将锁定计时器重置为零. (市场)
  • 更新:Context元素的sessionCookiePathUsesTrailingSlash属性的默认值更改为false因为将Servlet映射到/*时引起的问题比默认情况下不启用此选项的安全风险更为严重. (市场)
  • 固定: 随访至59655 . 改进有关配置允许的cookie名称的文档. 中村京平提供的补丁. (市场)
  • 固定: 在Web应用程序的初始化阶段,请勿尝试启动Web资源,因为此时Web应用程序尚未完全配置,并且Web资源可能未正确配置. (市场)
  • 固定: 在调用InstanceManager.destroy()之前,请改善围绕用户代码的错误处理,以确保执行该方法. (市场)

Coyote

  • 固定: 解决多次尝试关闭同一套接字的原因. (市场)
  • 码: 重构证书密钥库和信任库的生成,以使嵌入式用户更容易注入自己的密钥库. (市场)
  • 更新: 在HTTP / 2协议处理程序上添加maxConcurrentStreamExecution ,以限制单个连接中正在执行的并发流的数量. 默认是不限制它. (雷姆)
  • 加: 59233 :添加了动态添加TLS虚拟主机的功能. (市场)
  • 固定: 纠正ServletRequest.getServerPort()对于安全HTTP / 2连接的问题,该问题意味着使用默认端口时返回了错误的值. (市场)
  • 固定: 在调用InstanceManager.destroy()之前,请改善围绕用户代码的错误处理,以确保执行该方法. (市场)
  • 固定: 将HTTP / 2配置参数maxConcurrentStreamExecution的默认值maxConcurrentStreamExecution为20.( maxConcurrentStreamExecution

Jasper

  • Fix: Improve error handling around user code prior to calling InstanceManager.destroy() to ensure that the method is executed. (markt)

WebSocket

  • 码: 现在,WebSocket实现不是直接建立在Servlet API之上,而是可以使用Tomcat内部组件,因此不需要专用的WebSocket Executor. 使用连接器/端点提供的执行程序已将其替换. (市场)
  • Fix: Improve error handling around user code prior to calling InstanceManager.destroy() to ensure that the method is executed. (markt)

Web Applications

  • 固定: 当根本原因是客户端断开连接,因为日志未添加任何值时,请勿在Drawboard WebSocket示例的错误处理程序中记录IOException的其他情况. (市场)
  • Fix: 59642: Mention the localDataSource in the DataSourceRealm section of the Realm How-To. (markt)
  • 固定: 59672 :更新文档Web应用程序的安全注意事项页面,以考虑到Manager和HostManager应用程序现在默认配置了RemoteAddrValve这一事实. (市场)
  • 固定: 修复59399的后续措施 . 确保为所有Realm记录了新的属性transportGuaranteeRedirectStatus . 还要记录NullRealm以及为引擎自动创建的时间. (市场)
  • 固定: 修复jdbc-pool doc中maxAge属性的描述. 此属性在返回连接和借用连接时均起作用. (kfujino)
  • 固定: 59774 :更正文档示例中的prefix值,以配置AccessLogValve . Mike Noordermeer提供的补丁. (市场)

Tribes

  • 加: 当ping超时时,添加日志消息. (kfujino)
  • 固定: 如果在AbstractReplicatedMap#leftOver方法上已收到ping消息,请确保通知该成员处于活动状态,而不是忽略它. (kfujino)

jdbc-pool

  • 固定: 当连接验证失败时,修复重复的连接版本. (kfujino)
  • 固定: 确保不要删除已经释放的废弃连接. (kfujino)

Other

  • 固定: 从Maven发布脚本中删除JULI plus log4j Extras和嵌入式工件. (市场)
  • 加: 使用镜像网络而不是ASF主站点来下载当前的ASF依赖项. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.8,以获取最新的修补程序,并使1.2.8成为最低推荐版本. (市场)

2016-06-13 Tomcat 9.0.0.M8 (markt)

Coyote

  • 固定: 删除意外提交的调试代码. (市场)

not released Tomcat 9.0.0.M7 (markt)

Catalina

  • 固定: 可以避免与RMI目标相关的内存泄漏,这使它们成为需要修复的应用程序错误,而不是JRE错误. 因此,在Web应用程序停止时开始记录与RMI目标相关的内存泄漏. 添加一个选项来控制是否检查这些泄漏. 如果在Java 9上运行且启用了此检查,但没有要求的命令行选项,则记录警告. (市场)
  • 固定: 确保扫描没有MANIFEST.MF文件的jar文件时,在部署过程中不会抛出NPE. (紫罗兰色)
  • 码:StandardContext删除clearReferencesStatic选项. 已知它会导致某些库(例如log4j)出现问题,并且仅链接到可疑的内存泄漏,而不是已知的内存泄漏. 默认情况下已禁用它,一段时间以来内存泄漏报告没有增加. (市场)
  • 固定: 59604 :更正URL解码中的假设,即默认平台编码始终与utf-8兼容. 这种假设并不总是有效的,例如在z / OS上. (市场)
  • 固定: 59608 :跳过JAR清单中的任何无效的Class-Path属性. 由于存在许多错误的库,因此在调试级别记录错误. (雷姆)
  • 固定: 无法注册MBean时修复错误消息. (kfujino)
  • 固定: 59655 :将cookie名称验证配置为默认情况下使用RFC6265规则,以使其与默认cookie解析器对齐. 记录系统属性对cookie名称验证的影响. (标记)

Coyote

  • 固定: 确保使用非令牌的HTTP方法名称的请求(RFC 7231要求)被拒绝,并带有400响应. (市场)
  • 固定: 当AJP连接器处理异步请求时,请确保在开始下一个请求之前完全完成了请求处理. (市场)
  • 固定: 改进对HTTP / 2流重置的处理. (市场)
  • 加: 58750 :默认情况下不再设置HTTP Server标头. 可以通过在Connector上设置server属性来配置服务器头. 新的Connector属性serverRemoveAppProvidedValues可用于删除Web应用程序设置的任何服务器标头. (市场)
  • 固定: 59564 :更正了当读入HTTP / 2输入缓冲区时的偏移量,该偏移量可能导致读取请求正文时出现问题. (紫罗兰/市场)
  • 固定: 修改读/写超时的处理,以便WriteListener.onError()适当的错误处理( ReadListener.onError()WriteListener.onError()AsyncListener.onError() ). (市场)
  • 固定: 如果异步调度导致请求处理完成,请确保在开始处理下一个请求之前吞下任何剩余的请求主体,否则可以将剩余的主体读取为导致400响应的下一个请求的开始. (市场)

Jasper

  • 固定: 59567 :当爆炸的JAR包含一个空的WEB-INF / classes / META-INF文件夹时,修复NPE扫描webapps的TLD. (雷姆)
  • 固定: 修复表达式语言实现中的内存泄漏,该泄漏导致第一个Web应用程序的类加载器使用表达式固定在内存中. (市场)
  • 固定: 59654 :改进尝试从无效位置使用TLD文件时的错误消息. 张虎星提供的补丁. (市场)

WebSocket

  • 固定: 59659 :修复了WebSocket处理客户端意外断开连接时可能发生的内存泄漏. (市场)

Web applications

  • 固定: 58891 :更新SSL方法. 根据亚历山大·贾尔(AlexanderKjäll)的建议. (市场)

Extras

  • Code: 58588: Remove the JULI extras package from the distribution. It was only useful for switching Tomcat's internal logging to log4j 1.2.x and that version of log4j is no longer supported. No additional Tomcat code is required if switching Tomcat's internal logging to log via log4j 2.x. (markt)

jdbc-pool

  • 固定: 使用池清洁器线程修复内存泄漏,该线程清洁器线程保留了对第一个Web应用程序使用连接池的Web应用程序类加载器的引用. (市场)

Other

  • 更新: 将Commons DBCP 2的内部fork更新为r1743696(2.1.1以及其他修复). (市场)
  • 更新: 将Commons Pool 2的内部fork更新为r1743697(2.4.2以及其他修复程序). (市场)
  • 更新: 将Commons File Upload的内部fork更新为r1743698(1.3.1以及其他修复). (市场)
  • 码: 对所有XML文件使用带有标准序言的UTF-8. (市场)
  • 固定: 58626 :添加了对新环境变量( USE_NOHUP )的支持,该变量导致在启动Tomcat时使用nohup . 默认情况下禁用此功能,但在HP-UX上默认禁用该功能,因为在HP-UX上启动Tomcat时需要使用它. (市场)

2016-05-16 Tomcat 9.0.0.M6 (markt)

Catalina

  • 固定: 确保启用unpackWARs将处理打包在Web片段中的带注释的Web组件. (紫罗兰色)

not released Tomcat 9.0.0.M5 (markt)

Catalina

  • 固定: 48922 :对Tomcat内部请求对象中的日期格式进行很小的性能改进. 基于Ondrej Medek提供的补丁. (市场)
  • 固定: 59206 :确保当未指定catalina.base时, oatomcat.util.file.ConfigFileLoader不会引发NPE. (紫罗兰色)
  • 固定: 59217 :在oatomcat.util.http.ServerCookie中的路径回收中删除重复oatomcat.util.http.ServerCookie . 补丁由中村京平提供. (紫罗兰色)
  • 固定: 修复了oacatalina.loader.WebappClassLoaderBase.getResourceAsStream (violetagg)中可能存在的NPE
  • 固定: 59213 :异步分派应基于包装的请求. (雷姆)
  • 固定: 确保javax.servlet.ServletRequestjavax.servlet.ServletResponse期间提供javax.servlet.AsyncListener登记经由提供javax.servlet.AsyncEvent.getSuppliedRequestjavax.servlet.AsyncEvent.getSuppliedResponse (violetagg)
  • 固定: 59219 :如果在异步处理期间引发Exception确保调用AsyncListener.onError() . (市场)
  • 固定: 59220 :如果异步请求超时并且响应已经提交,请确保调用AsyncListener.onComplete() . (市场)
  • 固定: 59226 :从JAR清单处理JAR清单中的Class-Path属性,以排除不包含在WEB-INF/lib JAR. (市场)
  • 固定: 59255 :修复了映射器中可能存在的NPE. (kkolinko /雷姆)
  • 固定: 59256 :默认情况下,不应将slf4j-taglib*.jar从标准JAR扫描中排除. (紫罗兰色)
  • 固定: 澄清日志消息,其中不允许在@WebServlet和@WebFilter批注中同时指定urlPatterns和value属性. (紫罗兰色)
  • 固定: 确保由Valves引起的异常在日志文件中可用,以便在禁用oacatalina.valves.ErrorReportValve.showReport时可以对其进行评估. 补丁程序由Svetlin Zarev提供. (紫罗兰色)
  • 固定: 删除在StoreConfig中定义为Manager TransientAttribute的未使用的可distributable属性. (kfujino)
  • 固定: 修复StoreConfig中Cluster Receiver的处理. bindhost属性定义为TransientAttribute . (kfujino)
  • 固定: 59261 :如果请求在调用时不是处于异步模式下,则ServletRequest.getAsyncContext()现在将根据Servlet规范的要求引发IllegalStateException . (市场)
  • 固定: 59269 :更正PersistentManagerBase的实现,以便minIdleSwap功能按设计,并且换出会话以将活动会话数保持在maxActiveSessions以下. (市场)
  • 更新: 更新建议的Servlet 4.0 API的实现,以提供当前请求的映射类型信息,以反映EG中的讨论. (市场)
  • 固定: 正确配置扩展JAR文件提供的资源目录的基本路径. hengyunabc提供的补丁. (市场)
  • 加: 当有多种压缩格式可用且客户端未表达首选项时,请使用服务器顺序确定首选格式. 基于gmokki的补丁. (市场)
  • Fix: 59284: Allow the Tomcat provided JASPIC SimpleServerAuthConfig to pick up module configuration properties from either the property set passed to its constructor or from the properties passed in the call to getAuthContext. Based on a patch by Thomas Maslen. (markt)
  • 固定: 59310 :请勿为未设置Content-Length值的HEAD请求的自定义响应添加Content-Length: 0标头. (市场)
  • 固定: 规范化路径时,请改善路径以/.结尾的处理/./..并确保输入和输出是否以/结束是一致的. (市场)
  • 固定: 59317 :确保调度后HttpServletRequest.getRequestURI()返回编码的URI,而不是解码的URI. (市场)
  • 固定: 当报告处理来自解压缩WAR中的JAR的web-fragment.xml文件的错误时,请使用正确的URL片段. (市场)
  • 固定: 确保JarScanner仅使用显式回调来处理WEB-INF/classes并且仅在配置为将WEB-INF/classes的内容视为可能的分解JAR时使用. (市场)
  • 码: 取下java2DDisposerProtection从选项JreMemoryLeakPreventionListener . Java 7及更高版本中已修复了该漏洞,Tomcat 9需要Java 8,因此该选项是不必要的. (市场)
  • 码:JreMemoryLeakPreventionListener删除securityPolicyProtection选项. Java 8及更高版本中的泄漏已得到修复,Tomcat 9需要Java 8,因此该选项是不必要的. (市场)
  • 码:JreMemoryLeakPreventionListener删除securityLoginConfigurationProtection选项. Java 8及更高版本中的泄漏已得到修复,Tomcat 9需要Java 8,因此该选项是不必要的. (市场)
  • 固定: 使用ALLOW-FROM选项时,请确保根据规范正确构造了标题X-Frame-Options的值. (紫罗兰色)
  • Fix: Fix an IllegalArgumentException if the first use of an internal Response object requires JASPIC authentication. (markt)
  • 固定: 使用JASPIC并使用缓存的凭据对用户进行身份验证时,请勿触发不必要的会话ID更改. (市场)
  • 固定: 59437 :确保JASPIC CallbackHandler是线程安全的. (市场)
  • 固定: 59449 :在ContainerBase ,确保删除子容器的过程与添加一个子容器的过程相反. 张虎星提供的补丁. (市场)

Coyote

  • Fix: Improves OpenSSL engine robustness when SSL allocation fails for some reason. (remm)
  • 固定: OpenSSL引擎代码清除. (雷姆)
  • 固定: 将密码配置解析与当前的OpenSSL主文件对齐. (市场)
  • 更新:honorCipherOrder的默认值更改为false . 使用当前的默认TLS配置,对于合理的安全配置,不再需要将此设置设为true . (市场)
  • 加: 添加一个新的环境变量JSSE_OPTS ,该变量旨在用于将JVM范围的配置传递给JSSE实现. 默认值为-Djdk.tls.ephemeralDHKeySize=2048 ,可防止Diffie-Hellman密钥太弱. (市场)
  • 固定: 58970 :修复了NIO连接器中的连接计数错误,该错误意味着某些断开的连接没有从当前连接计数中删除. (市场)
  • 固定: 59289 :在意外关闭的情况下,请勿回收升级处理器. (雷姆)
  • 固定: 59295 :使用Locale.toLanguageTag()构造Content-Language HTTP标头,以确保正确表示语言环境. zikfat提供的补丁. (市场)
  • 更新: 59295 :添加了对将pem编码的证书与JSSE SSL一起使用的支持. 由Emmanuel Bourg提交,并进行了其他调整. (雷姆)
  • 固定: 使用JSSE + OpenSSL并将证书链存储在Java KeyStore中时,使TLS证书链对客户端可用. (市场)
  • 固定: 解决ALPS协商失败时OpenSSL中的一个已知问题,问题不允许TLS握手失败. (市场)
  • 更新: 59421 :添加直接HTTP / 2连接支持. (雷姆)
  • 固定: 使用非阻塞I / O时,正确处理非容器线程对AsyncContext.complete()的调用. (市场)
  • 固定: 59451 :对于MessageBytes更正Javadoc. 中村京平提供的补丁. (市场)
  • 固定: 59450 :正确处理LegacyCookieProcessor配置为allowHttpSepsInV0设置为falseforwardSlashIsSeparator设置为true . 中村京平提供的补丁. (市场)

Jasper

  • 固定: 在扫描JAR以获得TLD时,请正确处理(罕见)将JAR分解为WEB-INF/classes并且Web应用程序作为打包WAR部署的情况. (市场)
  • 固定: 59640 :未找到TLD的NPE. (雷姆)

WebSocket

  • 固定: 59189 :显式释放被持有的本机内存InflaterDeflater使用PerMessageDeflate时和WebSocket的会话结束. 基于Henrik Olsson的补丁. (市场)
  • 固定: 还原WsServerContainer.doUpgrade()方法,该方法由于Tomcat不使用而被意外删除. (市场)
  • 固定: 修复由连接器重构引起的回归,并确保在服务器上处理WebSocket消息时将线程上下文类加载器设置为Web应用程序类加载器. (市场)
  • 固定: 确保客户端断开连接触发了相关WebSocket端点的错误处理. (市场)
  • 加: 在关闭WebSocket会话期间处理错误时,使WebSocket客户端更强大. (市场)

Web applications

  • 固定: 59218 :更正Jaspic How-To中jaspic-providers.xml的路径. 补丁由Tatsuya Bessho提供. (紫罗兰色)
  • 固定: 意外添加到主机管理器的"删除"按钮. 由科蒂·萨瑟兰(Coty Sutherland)提交. (雷姆)
  • 固定: 在文档中更新指向部署了Tomcat快照工件的Maven存储库的链接. (markt / violetagg)
  • 固定: 在调用ServletContext.log(String, Throwable)GenericServlet.log(String, Throwable)的文档中进行澄清,记录在SEVERE级别. (紫罗兰色)
  • 固定: 更正SSL / TLS配置方法中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)

Tribes

  • 固定: 当代理节点无法检索备份条目时,请避免使用NPE. (kfujino)
  • 加: 添加指示该成员是localMember的标志. (kfujino)
  • 固定: 修复潜在的NPE,该NPE在使用静态群集时取决于静态成员的属性的设置顺序. (kfujino)
  • 加: 为与ChannelInterceptor相关的通道添加get / set方法. (kfujino)
  • 固定: 与多播群集环境一样,在静态群集环境中,本地成员从群集接收者继承属性. (kfujino)
  • 加: 为与每个Channel服务相关的通道添加get / set方法. (kfujino)
  • 加: 将名称添加到频道以标识频道. 在tomcat群集环境中,将群集名称+"-Channel"设置为默认值. (kfujino)
  • 加: 将通道名称添加到由通道服务调用的线程中,以标识关联的通道. (kfujino)
  • 固定: 停止频道时,请确保从频道服务中清除频道实例. (kfujino)
  • 加: 在复制映射中实现映射状态. (kfujino)
  • 固定: 确保在复制映射的启动/停止期间未执行ping操作. (kfujino)
  • 固定: 在复制映射中的ping处理中,不发送INIT消息,而是发送新引入的PING消息. (kfujino)

Other

  • 固定: 59211 :将hamcrest添加到Eclipse类路径. 补丁由张虎星提供. (紫罗兰色)
  • 更新: 59276 :将可选的Checkstyle库更新为6.17. (kkolinko)
  • 更新: 59280 :将用于构建Windows Installers的NSIS安装程序更新为版本2.51. (kkolinko)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.7,以获取基于OpenSSL 1.0.2h和APR 1.5.2的Windows二进制文件. (市场)

2016-03-16 Tomcat 9.0.0.M4 (markt)

Catalina

  • 固定: 确保/WEB-INF/classes绝不作为Web片段处理. (市场)
  • 更新: 安装本机时切换默认连接器. 除非另行配置,否则默认情况下将使用NIO端点. 如果配置了SSL,将使用OpenSSL而不是JSSE. (雷姆)
  • 固定: 修正58867的修正中的回归. 当配置上下文以将外部目录用于docBase ,并且该目录恰好位于原始WAR的旁边,请将该目录用作docBase而不是将WAR扩展到appBase并使用新创建的扩展目录作为docBase . (市场)
  • 加: 58351 :使服务器构建日期和服务器版本号可通过JMX访问. 张虎星提供的补丁. (市场)
  • 加: 58988 :现在可以用反斜杠将RewriteValve的替换中的特殊字符引起来. (fschumacher)
  • 固定: 58999 :修复了WebappClassLoader中的类和资源名称过滤. 如果名称恰好是" org"或" javax",则抛出StringIndexOutOfBoundsException. (荣)
  • 加: 添加JASPIC(JSR-196)支持. (标记)
  • 加: 使RewriteValve中的var和map替换检查更加严格,并正确检测var替换中的冒号. (fschumacher)
  • 固定: 重构Web应用程序类加载器,以减少JAR扫描对Web应用程序的内存占用量的影响. (市场)
  • 固定: 修复了从JAR和WAR访问文件的错误处理中的一些资源泄漏. (市场)
  • 固定: 重构JAR和JAR-in-WAR资源处理,以减少Web应用程序的内存占用. (市场)
  • 固定: 重构web.xml解析,以便在每次Web应用程序启动时都创建一个新的解析器,而不是在创建Context时创建并缓存解析器. 这使解析器能够考虑到已修改的Context配置参数,并(略微)减少了正在运行的Tomcat实例的内存占用. (市场)
  • 更新: 默认情况下,将Web应用程序类加载器切换到ParallelWebappClassLoader . (市场)
  • 固定: 57809 :删除保存有效web.xml的自定义上下文属性. 需要访问配置信息的组件可以通过Servlet API访问它. (市场)
  • 固定: 重构JAR扫描以减少内存占用. (市场)
  • 固定: 59001 :如果将Tomcat安装在其中一个段以感叹号结尾的路径上,则可以正确处理这种情况. (市场)
  • 固定: 扩展59001的修复程序,以涵盖Tomcat的自定义jar:war:URL中使用的特殊序列. (市场)
  • 固定: 59043 :如果使用HttpServletRequest.logout()则在与单点登录关联的会话到期时避免警告. (市场)
  • 固定: 59054 :确保在Valve在会话中注册自身时,在分布式环境中使用CrawlerSessionManagerValve不会触发错误. (市场)
  • 固定: 将套接字属性支持添加到storeconfig. (雷姆)
  • 固定: 修复了重写规则中对NE和NC标志的错误解析. (雷姆)
  • 固定: 59065 :更正在catalina.sh实现的非Windows系统上的路径中的冒号检查时间,以便它与Cygwin一起正常工作. Ed Randall提供的补丁. (市场)
  • 固定: 如果为主机配置了不存在的appBase,请在尝试将外部WAR文件扩展到其中之前创建appBase. (市场)
  • 固定: 59115 :使用Servlet 3.0文件上载时,提交的文件名可以作为令牌或带引号的字符串提供. 如果是带引号的字符串,请先将该字符串取消引号,然后再返回给用户. (市场)
  • 固定: 59123 :一旦不再需要JNDIRealm使用的NamingEnumeration对象,请关闭它们. (舒马赫/市场)
  • 加: 实现建议的Servlet 4.0 API,以提供当前请求的映射类型信息. (市场)
  • 固定: 59138 :当Web应用程序类加载器已加载键类而非值类时,更正了针对ThreadLocal相关的内存泄漏的误报警告. (市场)
  • 加: 59017 :在Default Servlet泛型中提供预压缩文件支持,因此可以使用任何压缩方式,而不仅仅是gzip. Mikko Tiihonen提供的补丁. (市场)
  • 固定: 59145 :当用户注销与SSO关联的会话时,请不要记录无效的警告. (市场)
  • 固定: 59150 :在APR侦听器上添加一个附加标志,以允许自动使用OpenSSL. (雷姆)
  • Fix: 59151: Fix a regression in the fix for 56917 that added additional (and arguably unnecessary) validation to the provided redirect location. (markt)
  • 固定: 59154 :修复了将CredentialHandler引入Realm导致的JAASMemoryLoginModuleNullPointerException . (舒尔茨/马克特)

Coyote

  • 固定: 在NIO2连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (标记/毫米)
  • 固定: NIO2中握手错误的处理不正确. (雷姆)
  • 固定: 将JSSE会话配置选项与OpenSSL一起使用. (雷姆)
  • 固定: 59015 :如果在关闭过程中Poller遇到错误,请修复关闭期间APR Poller循环不断的潜在原因. (市场)
  • 固定:kECDHEECDHE密码别名与当前的OpenSSL实现对齐. (市场)
  • 固定: 59081 :定义密码时,请保留用户定义的密码顺序. (市场)
  • 固定: 59089 :正确忽略标题名称中包含非令牌字符的HTTP标题. (市场)

Jasper

  • 更新: 更新到Eclipse JDT Compiler 4.5.1. (市场)
  • 固定: 57583 :解决不存在的属性时,提高javax.servlet.jsp.el.ScopedAttributeELResolver的性能. 仅当Jasper与Tomcat的EL实现一起使用时,此改进才有效. (市场)

WebSocket

  • 固定: 修复了会话关闭上的计时问题,该问题可能导致即使消息已完成也为不完整的消息引发异常. (市场)
  • 固定: 当最终消息片段的长度为零时,正确处理部分消息的压缩. (市场)
  • 固定: 59119 :使用安全连接时,更正WebSocket客户端的读取逻辑. (市场)
  • 固定: 59134 :对于通过代理建立的安全连接,正确的客户端连接逻辑. (市场)

Web applications

  • 固定: 更正用于自动部署的预期行为的文档中的错误. 如果更新了WAR并且存在扩展目录,则在unpackWARstrue ,将通过扩展WAR来删除并重新创建unpackWARs . (市场)
  • 固定: 48674 :在主机管理器Web应用程序中实施一个选项以保留当前配置. 基于Coty Sutherland的补丁. (市场)
  • 固定: 58935 :删除文档中关于在Manager应用程序中使用jar:file: URL的错误引用. (市场)
  • 固定: 更正Proxy How-To中ServletRequest.getServerPort()的描述. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 加: 现在,默认情况下,只能通过localhost访问Manager和Host Manager应用程序. (市场)

Tribes

  • 固定: 如果在获取会话时将代理节点提升为主节点,则将新主节点的更改通知原始备份节点. (kfujino)

Other

  • 固定: 58283 :在构建过程中,将库的默认下载位置从/usr/share/java更改${user.home}/temp . 艾哈迈德·霍斯尼(Ahmed Hosni)提供的补丁. (市场)
  • 固定: 59031 :使用Windows卸载程序时,请勿删除已符号链接到Tomcat目录结构中的任何目录的内容. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.5,以获取基于OpenSSL 1.0.2g和APR 1.5.1的Windows二进制文件. (市场)
  • 更新: 修改默认的tomcat-users.xml文件,使用户难以配置打算与Manager应用程序的示例Web应用程序一起使用的条目. (市场)

2016-02-05 Tomcat 9.0.0.M3 (markt)

General

  • 加: 允许使用构建属性test.name配置多个JUnit测试类模式,并在BUILDING.txt中记录该属性. (荣)

Catalina

  • 固定: 与SecurityManager一起运行时,保护ResourceLinkFactory初始化. (kkolinko)
  • 固定: 根据值对象的实现类名称,纠正会话属性过滤中的线程安全问题. (市场)
  • 固定: 将类加载器决策固定在类加载和资源查找的委托上,并使其更快. (荣)
  • 固定: 58768 :如果由于无效位置导致重定向失败,则记录警告. (市场)
  • 码: 58827 :删除JSR-77实施的其余部分. (市场)
  • 固定: 58946 :确保通过RequestDispatcher处理时,请求参数映射保持不变. (市场)
  • 固定: 58905 :确保Tomcat.silence()使正确的记录器Tomcat.silence()并遵守当前设置. (市场)

Coyote

  • 固定: 更正9.0.0.M2中连接器重构中的回归,该回归打破了对APR /本机连接器的TLS支持. (雷姆)
  • 固定: 列出启用TLS的APR /本机连接器的启用密码(例如,通过Manager Web应用程序)时,请更正NPE. (市场)
  • 加: AJP连接器的新配置选项ajpFlush禁用了AJP刷新数据包的发送. (荣)
  • 固定: 在NIO连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (市场)

not released Tomcat 9.0.0.M2 (markt)

Catalina

  • 码: 重构创造MapperListener以确保Mapper采用的是Mapper与相关Service为其创建监听器. (市场)
  • 加: 移动为上下文根和目录提供重定向的功能,其中将尾随/从映射器添加到DefaultServlet . 这样,在进行重定向之前,任何配置的Valves和Filters都可以处理此类请求. 可以通过Context的mapperContextRootRedirectEnabledmapperDirectoryRedirectEnabled属性来配置此行为, mapperDirectoryRedirectEnabled属性可用于还原以前的行为. (市场)
  • 码: 重构Service.getContainer()以返回Engine而不是Container . (市场)
  • 固定: 34319StoreBase.processExpire JDBCStore加载StoreBase.processExpire中足够旧的那些键以使其过期. 基于Tom Anderson的补丁. (fschumacher)
  • 加: 56917 :根据RFC7231(HTTP / 1.1),允许HTTP / 1.1和更高版本的重定向使用相对URI. 这由Context上的新属性useRelativeRedirects控制,默认为true . (市场)
  • 固定: 58629 :当未配置Service Engine时,允许嵌入式Tomcat实例启动. (市场)
  • Fix: Correctly notify the MapperListener associated with a Service if the Engine for that Service is changed. (markt)
  • Add: Make a web application's CredentialHandler available through a context attribute. This allows a web application to use the same algorithm for validating or generating new stored credentials from cleartext ones. (schultz)
  • 固定: 58635 :使用Java代理运行Tomcat时,允许在代理代码中设置断点. 基于张虎星的补丁. (市场)
  • 固定: 修复了部署应用程序时HostConfig潜在的NPE. 覆盖率扫描报告的问题. (紫罗兰色)
  • 固定: 58655 :修正IllegalStateException时调用HttpServletResponse.sendRedirect()RemoteIpFilter . 这是由于尝试正确生成重定向的绝对URI引起的. 有了对56917的修复,现在重定向可能是相对的,从而使RemoteIpFiltersendRedirect()实现更加简单. 这也解决了当从http重定向到https到从https重定向到http时重定向可能没有按预期表现的问题. (市场)
  • 固定: 58657 :Servlet 3.1 ReadListenerWriteListener异常不需要立即对连接造成致命影响. 允许写入错误响应. (市场)
  • 固定: 正确实现validateClientProvidedNewSessionId以便如果启用了validateClientProvidedNewSessionId ,则客户端提供的会话ID可能会被拒绝. (市场)
  • 固定: 58701 :卸载Servlet时,请在StandardWrapper重置instanceInitialized字段,以便可以正确初始化新实例. (市场)
  • 更新: 向Apr侦听器添加一个新的aprPreferred标志. 如果设置为false ,则在使用连接器默认值时,如果可用tomcat-native,它将使用NIO + OpenSSL,而不是APR连接器. (雷姆)
  • 固定: 将路径参数处理添加到HttpServletRequest.getContextPath() . 这是57215的修复程序. (市场)
  • 固定: 58692 :使StandardJarScanner更强大. 如果无法扫描类路径条目而不是触发Web应用程序失败,则记录警告. 包括Derek Abdine编写的测试用例. (市场)
  • 固定: 58702 :如果客户端中止连接,请确保生成访问日志条目. (市场)
  • Fix: Fixed various issues reported by Findbugs. (violetagg)
  • 固定: 58735 :将对X-XSS-Protection标头的支持添加到HttpHeaderSecurityFilter . Jacopo Cappellato提供的补丁. (市场)
  • 固定:StatusManagerServlet添加到只能由特权应用程序加载的Servlet列表. (市场)
  • 固定: 简化代码并修复org.apache.catalina.core.DefaultInstanceManager类中的消息. (kkolinko)
  • 固定: 58751 :正确处理AsyncListener在异步超时时分派给Servlet且Servlet使用sendError()来触发错误页面的情况. 包括一个基于Andy Wilkinson提供的代码的测试用例.
  • 固定: 确保当DefaultServlet提供自述文件时,将使用正确的文件编码(如果指定). (紫罗兰色)
  • 固定: 修复Connector MBean的localPort属性的声明:它是只读的. (kkolinko)
  • 固定: 58766 :通过首先检查文件名,可以更快地在注释扫描过程中跳过非类文件. 改善调试日志记录. (kkolinko)
  • 固定: 58836 :处理转发的请求时正确合并查询字符串参数,其中目标包括查询字符串,该查询字符串包含无值的参数. (市场/ kkolinko)
  • 固定: 确保在HostConfig.deployWAR()中发生不太可能的错误情况下重置共享Digester. (kkolinko)
  • 加: 扩展群集会话管理器实现中的可用功能,该功能使会话属性复制可以基于属性名称过滤到所有会话管理器实现中. 请注意,配置属性名称已从sessionAttributeFilter更改为sessionAttributeNameFilter . 在加载和卸载时应用筛选器,以确保将Web应用程序停止时所做的配置更改应用于所有持久数据. (市场)
  • 加: 扩展会话属性过滤选项,以包括基于值的实现类的过滤和可选的WARN级别日志记录(如果已过滤属性). 这些选项可用于Tomcat附带的所有Manager实现. 使用SecurityManager ,默认情况下将启用过滤. (市场)
  • 码: 由于从不使用属性, maxInactiveIntervalManager界面中删除distributablemaxInactiveInterval . Context的等效属性始终优先. (市场)
  • 固定: 58867 :改进了在Tomcat停止时已修改的WAR文件的主机启动检查,如果unpackWARstrue ,则重新展开它们. (市场)
  • 固定: 58900 :正确取消部署符号链接的资源,并防止无限期的部署/取消部署周期. (市场)

Coyote

  • Fix: 58621: The certificate chain cannot be set using the main certificate attribute, so restore the certificate chain property. (remm)
  • 固定: 允许连接器可以使用JSSE或OpenSSL的新SSL配置类型. 两者都可以允许,但可能会造成支持问题. NSSL的OpenSSL实现使用此类型. (雷姆)
  • 固定: 通过使用Context.bind和unbind改进升级上下文类加载器的处理. (雷姆)
  • 加: 通过使用JSSE实现中的代码来改进OpenSSL密钥库/信任库配置. (雷姆,jfclere)
  • 固定: 修复客户端意外断开连接时的潜在循环. (市场)
  • 加: 客户端证书身份验证的OpenSSL重新协商支持. (雷姆)
  • 固定: 修复NIO连接器重新协商. (雷姆)
  • 固定: 58659 :修复了连接窗口大小受限制的HTTP / 2处理期间的潜在死锁. (市场)

Jasper

  • 固定: 57136#c25 :将Jasper中的quoteAttributeEL设置的默认值更改为true以更好地与其他实现和Tomcat的较旧版本兼容. 在JspC中添加命令行选项-no-quoteAttributeEL quoteAttributeEL. (kkolinko)
  • 固定: 修复org.apache.el.util.MessageFactory中丢失消息的处理. (紫罗兰色)

Cluster

  • 固定: 在静态集群成员身份中启用本地成员的显式配置. (kfujino)
  • 固定: 修复DeltaSession潜在的整数溢出. 通过覆盖率扫描报告. (fschumacher)
  • 固定: 为了避免心跳线程和后台线程同时运行Channel.heartbeat ,如果SimpleTcpCluster heartbeatBackgroundEnabled设置为true ,请确保不启动心跳线程. (kfujino)

WebSocket

  • 加: 55006 :现在,WebSocket客户端在建立与服务器的WebSocket连接时将使用java.net.java.net.ProxySelector配置(使用HTTP类型). 基于Niki Dokovski的补丁. (市场)
  • 固定: 58624 :如果在编写消息时关闭了WebSocket连接,请更正潜在的死锁. (市场)
  • 固定: 57489 :确保即使关闭消息发送失败,在关闭WebSocket连接时也会调用onClose() . 包括Barry Coughlan的测试用例. (市场)

Web Applications

  • 固定: 58631 :更正文档Web应用程序的Windows Service How-To页面中的继续字符使用. (市场)
  • 固定: 更正SSL文档中已弃用的属性,以指向与各个证书相关的属性的正确的新位置. (市场)
  • 固定: 在" JNDI资源"方法中更正一些错字. (市场)
  • 固定: 不要在Manager应用程序中不必要地创建会话. (市场)
  • 固定: 不要在主机管理器应用程序中不必要地创建会话. (市场)
  • 固定: 58723 :澄清管理器的文本界面的文档和错误消息,以明确在引用使用并行部署部署的上下文时,版本必须与路径一起使用. (市场)
  • 加: 在BUILDING.txt中记录test.threads选项. (kkolinko)

Tribes

  • 固定: 即使已注册到删除可疑列表的静态成员已消失,也请确保将静态成员注册到添加可疑列表中. (kfujino)
  • 固定: 使用静态集群时,将已在成员资格服务中缓存的成员添加到地图成员列表中,以确保地图成员是静态成员. (kfujino)
  • 固定: 添加对静态集群中本地成员的启动通知的支持. (kfujino)
  • 固定: 忽略来自其他域的不必要的成员删除操作. (kfujino)
  • 固定: 添加对静态集群中本地成员的关闭通知的支持. (kfujino)

jdbc-pool

  • 固定: 正确评估系统属性org.apache.tomcat.jdbc.pool.onlyAttemptCurrentClassLoader . 以前基本上被忽略了. 通过覆盖率扫描报告. (fschumacher)
  • 固定: 修复ConnectionPoolPooledConnection潜在的整数溢出. 通过覆盖率扫描报告. (fschumacher)

Other

  • 更新: 将可选的Checkstyle库更新为6.14.1. (kkolinko)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.4,以获取基于OpenSSL 1.0.2e和APR 1.5.1的Windows二进制文件. (市场)
  • 更新: 将用于构建Windows Installers的NSIS Installer更新到2.50版. (市场/ kkolinko)
  • 更新: 将Commons BCEL的内部fork更新为r1725718,以与BCEL 6(下一个主要的BCEL版本)的重构保持一致. (市场)
  • 更新: 将Commons DBCP 2的内部fork更新为r1725730(2.1.1以及其他修复). (市场)
  • 更新: 将Commons Pool 2的内部fork更新为r1725738(2.4.2以及其他修复程序). (市场)
  • 更新: 将Commons Codec的内部fork更新为r1725746(1.9和其他修复程序). (市场)

2015-11-17 Tomcat 9.0.0.M1 (markt)

General

  • 加: 使Java 8成为构建和运行Tomcat 9的最低必需版本.
  • 更新: 删除对Comet的支持. (市场)
  • 更新: 收紧.tar.gz分发的默认文件权限,以便默认情况下所有文件或目录都不是世界可读的. 将Tomcat配置为以默认umask 0027运行,可以通过在setenv.sh设置UMASK来覆盖它. (市场)
  • 更新: 删除对Windows Itanium的本机代码(Windows Service Wrapper,APR /本机连接器)支持. (市场)

Catalina

  • 更新: 默认的HTTP cookie解析器已更改为org.apache.tomcat.util.http.Rfc6265CookieProcessor . (市场)

Coyote

  • 更新: 删除对HTTP BIO和AJP BIO连接器的支持. (市场)
  • 码: 重构HTTP升级和AJP实现以减少重复. (市场)
  • 加: 增加了对Stuart Douglas贡献的HPACK标头编码和解码的支持. (雷姆)
  • 加: 57108 :添加了对服务器名称指示(SNI)的支持. 为支持此功能,server.xml中的SSL配置进行了重大更改. (市场)
  • 加: 添加由OpenSSL支持的JSSE的SSL引擎. 包括ALPN支持. 基于Numa de Montmollin贡献的代码,并源自Twitter和Netty开发的代码. (雷姆)
  • 固定: RFC 7230声明客户端应忽略HTTP / 1.1响应消息中的原因短语. 由于原因短语是可选的,因此Tomcat不再发送它. 结果,系统属性org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER不再使用,并且已被删除. (市场)
  • 更新: 最低要求的Tomcat本机版本已增加至1.2.2. 1.2.x分支包括HTTP / 2所需的ALPN和SNI支持. (市场)
  • Add: Add support for HTTP/2 including server push. (markt)

Tribes

  • Fix: Clarify the handling of Copy message and Copy nodes. (kfujino)

Other

  • 加: 支持在Ant的junit任务上使用threads属性. 请注意,使用大于1的值将禁用Cobertura代码覆盖率. (市场)

by  ICOPY.SITE