Changelog

Tomcat 8.5.56 (markt)

Catalina

  • 固定: 64432 :更正一个重构回归,该重构破坏了RewriteValve中对多行配置的处理. Jj提供的补丁. (市场)
  • 更新: 添加特殊的内部重写映射以进行大小写修改和转义. (雷姆/舒马赫)
  • 固定: 64470 :固线处理的默认值应反映相关的系统属性. (雷姆)
  • 固定: 实现一些与Servlet请求属性相对应的重写SSL环境. (雷姆)
  • 更新: 64442 :在tomcat-users.xml文件中的组,角色和用户的排序方面更具灵活性. (fschumacher)

Coyote

  • 更新: 在最新的OpenJDK 8版本中添加对ALPN的支持. (雷姆)
  • 固定: 64467 :提高关闭空闲HTTP / 2流的性能. (市场)
  • 加: 64483 :如果AJP请求因为包含意外的请求属性而被拒绝,则记录警告. (市场)

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). (市场)

2020-05-11 Tomcat 8.5.55 (markt)

Catalina

  • 码: 除去不推荐使用的其余Servlet 4 Preview API. 仍然依赖于此功能的用户最好应该升级到Tomcat9.0.x. 如果无法升级,则应将应用程序代码强制转换为内部Tomcat实现类. (市场)
  • 固定: 重新整理针对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提供的拉取请求. (市场)
  • Fix: 64384: Fix multipart configuration ignoring some parameters in some cases. (schultz)
  • 加: 64386 :WebdavServlet不会为资源集合发送" getlastmodified"属性. (米高)
  • 固定: 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随附的中文翻译的范围. Winsonzhao,ZhangJieWen和Lee Yazhou的贡献. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.24. (市场)
  • 码: 尽可能重构以使用增强的for循环. Lars Grefer的拉取请求. (市场)
  • 加: 改进对IntelliJ IDEA的IDE支持. Lars Grefer提供的补丁. (市场)

2020-04-08 Tomcat 8.5.54 (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提交的代码. (雷姆)
  • 固定: 64265 :修复了默认servlet执行的ETag比较. 默认Servlet始终使用弱比较. (市场)
  • 固定: 在配置文件中使用${...}属性替换时,添加对默认值的支持. 根据Bernd Bohmann提供的拉动请求. (市场)

Coyote

  • 加: 配置HTTP连接器时,请警告是否为URIEncoding指定的编码不是RFC7230要求的US-ASCII的超集. (市场)
  • 固定: 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

  • Add: Add support for specifying Java 14 (with the value 14) and Java 15 (with the value 15) as the compiler source and/or compiler target for JSP compilation. If used with an ECJ version that does not support these values, a warning will be logged and the latest supported version will used. (markt)

Cluster

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

Web applications

  • 固定: 更正文档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 . (市场)
  • 固定: 不建议使用LOGGING_CONFIG环境变量,并将其替换为CATALINA_LOGGING_CONFIG环境变量,以避免与使用LOGGING_CONFIG其他组件发生冲突. (市场)

2020-03-16 Tomcat 8.5.53 (markt)

Coyote

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

Other

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

not released Tomcat 8.5.52 (markt)

Catalina

  • 固定: 与HostWebXmlCacheCleaner侦听器的存储配置兼容性. (雷姆)
  • 固定: 修改RewriteValve以使用ServletRequest.getServerName()填充HTTP_HOST变量,而不是从Host标头中提取它,因为这将支持HTTP / 2. (市场)
  • 码: PushBuilder推荐使用的Servlet 4 Preview API中删除PushBuilder . 仍然依赖于此功能的用户最好应该升级到Tomcat9.0.x. 如果无法升级,则应将应用程序代码强制转换为内部Tomcat实现类. (市场)
  • 固定: 将Tomcat嵌入式切换为从默认的web.xml生成的属性文件中加载MIME类型映射,这样无论Tomcat如何启动,MIME类型映射都是一致的. (市场)
  • 固定: 资源元素缺少商店配置属性. (雷姆)
  • Fix: 64153: Ensure that the parent for the web application class loader is set consistently. (markt)
  • 固定: 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提供的拉取请求. (市场)
  • 固定: 在容器线程上调用complete()之前,当连接器暂停时,允许异步请求完全完成. (市场)

Jasper

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

Web applications

  • 加: 展开有关AJP连接器的address属性的文档,并说明AJP Connector还通过APR / Native实现支持ipv6v6only属性. (市场)

Other

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

2020-02-11 Tomcat 8.5.51 (markt)

Catalina

  • 码: 删除部分不推荐使用的Servlet 4 Preview API. 仍然依赖于此功能的用户最好应该升级到Tomcat9.0.x. 如果无法升级,则应将应用程序代码强制转换为内部Tomcat实现类. (市场)
  • 更新: 如果不需要,请不要在身份验证期间将用户名和密码存储为会话注释. (kkolinko)
  • 固定: 在JNDIRealm中不使用GSSCredential时,避免无用的环境还原. (雷姆)
  • 固定: 58577 :搜索要通过JMXProxyServlet调用的MBean操作时,请遵守参数计数. (舒尔茨)
  • 加: 62755 :增加了在嵌入Tomcat时选择不添加默认的web.xml配置并通过addWebapp()添加上下文的addWebapp() . 调用setAddDefaultWebXmlToWebapp(false)以阻止自动配置. (isapir /市场)
  • 更新: 63691 :在通配符模式" *"或" * .jar"设置或添加到tomcat.util.scan.StandardJarScanFilter.jarsToSkip时,跳过所有jar和目录扫描. (伊萨皮尔)
  • 固定: 64005 :更正了8.5.28中引入的静态资源缓存更改的回归. 使用为打包WAR的根提供的URL时,避免NullPointerException . (市场)
  • 固定: 64008 :澄清/扩展Tomcat#addWebapp()和相关方法的Javadoc. (市场)
  • Code: Deprecate the JmxRemoteLifecycleListener as the features it provides are now available in the remote JMX capability included with the JRE. This listener will be removed in Tomcat 10 and may be removed from Tomcat 8.5.x some time after 2020-12-31. (markt)
  • 固定: 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因为它未被使用. (市场)
  • 固定: 修复了一个问题,该问题意味着连接意外关闭的HTTP / 2请求的访问日志中可能缺少远程主机,地址和端口信息. (市场)

Coyote

  • Fix: Ensure that Servlet Asynchronous processing timeouts fire when requests are made using HTTP/2. (markt)
  • 固定: 如果已经通过新的SSLHostConfigSSLHostConfigCertificate元素设置了配置,则在连接器上使用不赞成使用的TLS属性时,请修复TLS配置的损坏. (市场)
  • 固定: 63966 :将使用HTTP连接到HTTPS端口的显示消息从utf-8切换到UTF-8. (市场)
  • 加: 使用基于JSSE的TLS连接器时,添加对RFC 5915格式的未加密EC密钥文件的支持. (市场)
  • 加: 报告/记录无效的HTTP标头时,会使用0xNN格式对所有非打印字符进行编码. (市场)
  • 固定: 更正8.5.48中引入的回归,这意味着Transfer-Encoding忽略Transfer-Encoding标头中的无效令牌,而不是将其视为错误. (市场)
  • 固定: 将HTTP连接器属性rejectIllegalHeaderName重命名为rejectIllegalHeader并扩展基础实现以包括标头值和名称. (市场)
  • 更新: 默认情况下禁用(在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实现的错误的自定义服务查找. (市场)
  • Add: Add a META-INF/services entry to jasper-el.jar so that the Expression Language implementation can be discovered via the services API. (markt)

Cluster

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

Web applications

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

Other

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

2019-12-12 Tomcat 8.5.50 (markt)

Catalina

  • 加: CsrfPreventionFilter的改进:附加日志记录,允许自定义CSRF随机数请求参数名称. (舒尔茨)
  • 加: 63681 :介绍RealmBase#authenticate(GSSName,GSSCredential)和朋友. (米高)
  • Fix: 63964: Correct a regression in the static resource caching changes introduced in 8.5.48. URLs constructed from URLs obtained from the cache could not be used to access resources. (markt)
  • 固定: 63968 :在Expires过滤器中修复ClassCastException ,这是对63909的修复中的回归. (市场)
  • 固定: 63970 :更正了8.5.48中引入的静态资源缓存更改的回归. 无法将与为JAR资源获得的URL的连接JarURLConnectionJarURLConnection . (市场)
  • 加: 63937 :向标准的Authenticator实现中添加一个新属性allowCorsPreflight ,该属性允许将Authenticator配置为允许CORS预检请求绕过CORS规范要求的身份验证. (市场)
  • 固定: 63939 :更正CORS过滤器中的相同原点检查. 现在认为具有显式默认端口的源与没有默认端口的源相同,并且现在按照CORS规范要求以区分大小写的方式比较源. (市场)
  • 固定: 63982 :CombinedRealm对主体实现进行了假设(michaelo)
  • 固定: 63983 :更正了8.5.48中引入的静态资源缓存更改的回归. 已打开大量文件描述符,这些文件描述符在被GC释放之前可能达到操作系统限制. (市场)
  • 更新: 63987 :弃用Realm.getRoles(Principal) . (米高)
  • 码: 为会话FileStore实现添加一个单元测试,并在FileStore重构循环以使用ForEach样式. Govinda Sakhare提供的拉取请求. (市场)
  • 固定: 重构FORM身份验证,以减少重复的代码,并确保在禁用缓存时,不会在会话中缓存经过身份验证的主体. 这是CVE-2019-17563的修复程序. (市场/ kkolinko)

Coyote

  • 码: 现在,不再支持需要使用多个较小轮询集的Windows操作系统,因此可以将APR轮询器重构为始终使用单个轮询集. (市场)
  • 更新: 在基本和SSL通道中为NIO添加矢量. (雷姆)
  • 加: 将异步API添加到NIO和APR连接器. (雷姆)
  • 固定: 63931 :改进了asyncIO的超时处理,以确保阻塞操作(如果发生)会看到SocketTimeoutException . (remm / markt)
  • 固定: 63932 :默认情况下,请勿压缩具有较强ETag的内容. 此行为是通过新的Connector属性noCompressionStrongETag为HTTP / 1.1和HTTP / 2连接器配置的. (市场)
  • 固定: 通过删除write(Non)BlockingDirect简化常规端点写入. 现在,将对所有常规写入进行缓冲,以实现更可预测的行为. (雷姆)
  • 固定: 当操作发生超时异常时,将异常直接发送到完成处理程序,并添加一个布尔值以确保完成处理程序仅被调用一次. (remm / markt)

WebSocket

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

Web applications

  • 固定: 在示例Web应用程序的JSP部分的FORM身份验证示例的错误页面上修复断开的重试链接. (市场)
  • Fix: Correct the documentation for the maxConnections attribute of the Connector in the documentation web application. (markt)
  • 加: 在JSP FORM身份验证示例中添加设置和显示会话属性的功能,以演示经过身份验证的会话在重新启动之间的会话持久性. (市场)

Other

  • 固定: 请更正针对63815的修复程序(在shell脚本中使用CATALINA_OPTSJAVA_OPTS时应避免使用*扩展),因为它引起了各种回归,尤其是daemon.sh . (市场)
  • 加: 扩展Windows安装程序对适合的Java安装的搜索,以包括64位JDK注册表项和JAVA_HOME环境变量. Alexander Norz提供的拉取请求. (市场)
  • 加: 扩展Apache Tomcat随附的德语翻译的范围. Jens提供的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的范围. (雷姆)
  • 加: 扩展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 8.5.49 (markt)

Catalina

  • 固定: 更正8.5.48中引入的回归,该回归在使用RequestDispatcher时可能触发NullPointerException . (市场)
  • 加: CsrfPreventionFilter的改进:将最新的可用随机数公开为请求属性; 将期望的现时请求参数名称公开为上下文属性. (舒尔茨)

not released Tomcat 8.5.48 (markt)

Catalina

  • 固定: 63832 :在停止时发生JVM错误时,将容器正确标记为FAILED. (雷姆)
  • 固定: 63836 :确保一旦销毁主机实例,就清除对Host对象的引用. (市场)
  • 固定: 63872 :修复了一些未使用规范路径设置docBase的极端情况,这反过来意味着未按预期构造资源URL. (市场)
  • 固定: 如果在处理过程中由于OutOfMemoryException请求失败,请尽最大努力清除. (市场)
  • 固定: 确保在为Web应用程序启用静态资源缓存时,所有对静态文件(包括JSP文件)的访问都通过缓存进行,以便可以看到静态文件的一致视图. 在进行此更改之前,可以看到更新的上次修改时间,但是内容将是修改之前的时间. (市场)
  • 更新: 63905清理Tomcat CSS. (米高)
  • 固定: 63909 :当使用不带默认值的ExpiresFilter并由默认Servlet提供响应时,如果默认Servlet设置了304(未找到)状态代码,请确保过滤器处理响应. (市场)
  • 固定: 更新Servlet 4预览API,以反映对最终版本中API所做的更改. 请注意,此预览API已被弃用一年多,下一个8.5.x版本可能会立即将其删除. (市场)
  • 固定: 重构JMX远程RMI注册表创建. 这是CVE-2019-12418的修复程序. (雷姆)

Coyote

  • 固定: 一旦在AsyncListener.onTimeout()AsyncListener.onError()期间调用了AsyncContext.complete()AsyncContext.dispatch()确保ServletRequest.isAsyncStarted()返回false . (市场)
  • 固定: 6381663817 :在启动异步处理之后但在启动异步处理的容器线程完成处理当前请求/响应之前,可以正确处理I / O错误. (市场)
  • 固定: 63825 :在处理ExpectConnection HTTP标头以查找特定令牌时,请严格确保存在正确的令牌. (市场)
  • 固定: 63829 :在查看Tomcat是否正在提供预压缩的内容时,改进对Content-Encoding标头的检查. 确保仅匹配完整的令牌,并且匹配不区分大小写. (市场)
  • 加: 63835 :添加了对"保持活动"响应标头的支持. (米高)
  • 固定: 63864 :重构transfer-encoding请求标头以使用共享的解析代码并减少重复. (市场)
  • 固定: 63865 :将" Unset选项添加到同一站点的cookie,如果用户设置,则通过" None值. 约翰·凯利(John Kelly)提供的补丁. (市场)
  • 固定: 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单元测试. (米高)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 加: 扩展Apache Tomcat随附的简体中文翻译的内容和质量. rpo130,沉梅森,李亚州,winsonzhao,黄青石,莱,侯书成和周艳明提供的资料. (市场)

2019-10-11 Tomcat 8.5.47 (markt)

Coyote

  • 固定: 生成或解析HTTP2-Settings标头时,请使用URL安全基数64编码,而不是标准基数64编码,这是RFC 7540要求将HTTP升级到h2c一部分.
  • Fix: 63765: NIO2 should try to unwrap after TLS handshake to avoid edge cases. (remm)
  • 固定: 63766 :确保处理HTTP升级连接时处理处理器对象被回收,该处理在切换到用于升级协议的处理器之前终止. (市场)

Jasper

  • 固定: 63781 :在执行与EL实现中的类,字段和方法的可见性相关的各种检查时,还请检查包含模块是否已导出. (市场)

Web Socket

  • 固定: 63753 :如果正在使用非默认端口,请确保Web套接字HTTP升级请求中的Host标头仅包含端口. (市场)
  • 固定: 在Java 9及更高版本上运行时,请勿尝试实例化未导出模块中的WebSocket端点. (市场)

Web Applications

  • 文件: 为通用注释API实现添加Javadoc. (市场)

jdbc-pool

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

Other

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

2019-09-19 Tomcat 8.5.46 (markt)

Catalina

  • 固定: 63684 :对于给定的安全性约束, Wrapper从未传递给RealmBase.hasRole() . (米高)
  • 固定: 如果将服务直接嵌入到应用程序中(即没有服务器),并且启用了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来增加连接的流控制窗口,以使连接的流控制窗口的初始大小与增加的值一致. (市场)
  • Fix: 63710: When using HTTP/2, ensure that a content-length header is not set for those responses with status codes that do not permit one. (markt)
  • 固定: 63737 :更正了在解析accept-encoding头以确定是否支持gzip编码(包括仅解析找到的第一个头)时的各种问题. (市场)

Web applications

  • 固定: 更正ROOT Web应用程序索引页上的源代码链接,使其指向Git而不是Subversion. (市场)
  • 固定: 修复了为文档Web应用程序生成的Javadoc的各种问题,以启用从Java 10开始构建的发行版本. (市场)
  • 固定: 修复了大量的Javadoc和文档拼写错误. 康志东提供的补丁. (市场)
  • 固定: 群集的拼写和格式更正方法. Bill Mitchell提供的拉取请求. (市场)

Other

  • 固定: 向后移植对i18n消息的英文版的各种更正和改进. (市场)
  • Add: Include the available German translations in the standard Tomcat distribution. Back-port additions and updates to the German i18n messages. (markt)
  • 固定: 向后移植对西班牙i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植对法语i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植对日语i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植对俄罗斯i18n消息的各种更正和改进. (市场)
  • 加: 将韩语翻译添加到标准Tomcat发行版中. (市场)
  • 加: 将简体中文翻译添加到标准Tomcat发行版中. (市场)
  • 固定: 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消息和相关的翻译. 康志东提供的补丁. (市场)

2019-08-21 Tomcat 8.5.45 (markt)

Coyote

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

not released Tomcat 8.5.44 (markt)

Catalina

  • 加: 62258 :当错误导致关闭与客户端的连接时,不要触发标准错误页面机制,因为没人会看到错误页面. (市场)
  • Add: 62496: Add option to write auth information (remote user/auth type) to response headers. (michaelo)
  • 加: 51497 :向AccessLogValve添加选项ipv6Canonical ,以使IPv6地址以RFC 5952定义的规范格式输出.(ognjen / markt)
  • 加: 57665 :将对X-Forwarded-Host标头的支持添加到RemoteIpFilterRemoteIpValve . (市场)
  • 固定: 63550 :仅在JNDIRealm指定了alternateURL JNDIRealm ,然后JNDIRealm尝试. (市场)
  • 加: 63556 :将请求标记为在RemoteIpValve和RemoteIpFilter中转发(michaelo)
  • 固定: 63579 :正确解析格式不正确的OPTIONS请求,并以400响应拒绝它们,而不是触发导致500响应的内部错误. (市场)
  • 固定: 63608 :将与RewriteValve一起使用的模式的否定匹配功能的RewriteValve与文档中的描述RewriteValve . (市场)
  • 更新: 63627 :在RealmBase.authenticate(GSSContext, boolean)实现更细粒度的处理. (米高)
  • Fix: If an unhandled exception occurs on a asynchronous thread started via AsyncContext.start(Runnable), process it using the standard error page mechanism. (markt)
  • 固定: 回收请求时,丢弃使用setBufferSize分配的大字节缓冲区. (雷姆)
  • 固定: 更正X-Powered-By标头中的版本信息. (市场)
  • 固定: 如果没有部署ROOT上下文并且请求未映射到任何其他部署的Context,请避免在CrawlerSessionManagerValve发生NullPointerException . Jop Zinkweg提供的补丁. (市场)
  • 固定: 63636 :从未在StandardWrapper.findSecurityReference()调用Context.findRoleMapping() StandardWrapper.findSecurityReference() . (米高)

Coyote

  • 固定: 63524 :在配置内部内存中密钥存储库时,改进了对基于PEM文件的密钥和不包含完整证书链的证书的处理. 在配置内部内存中密钥存储库时,改进对PKCS#1格式的私钥的处理. (市场)
  • 固定: 63568 :尝试在不支持tcpNoDelay的套接字类型上设置它时避免错误,这在使用NIO继承的通道功能时可能发生. 由FrantišekKučera提交. (雷姆)
  • 固定: 正确解析包含128到255范围内的字节的无效主机名,并使用400响应拒绝它们,而不是触发导致500响应的内部错误. (市场)
  • 固定: 63571 :允许用户配置无限的TLS会话缓存和/或超时. (市场)
  • 固定: 63578 :改进对无效请求的处理,以便将400个响应(而不是500个响应)返回给客户端. (市场)
  • 固定: 修复h2spec测试套件失败. 如果霍夫曼编码的字符串文字包含EOS符号,则是错误的. (jfclere)
  • Add: Connections that fail the TLS handshake will now appear in the access logs with a 400 status code. (markt)
  • 固定: HTTP / 2连接的超时总是不能正确处理,因此某些连接的打开时间比预期的要长. (市场)
  • 加: 扩展HTTP / 2过多的开销保护以覆盖各种形式的滥用客户端行为,如果检测到任何此类行为,则关闭连接. (市场)
  • 固定: 解决了当连接器停止时仍在进行阻塞的I / O操作时,使用APR /本机连接器在关机时崩溃的问题. (市场)

Web applications

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

Other

  • 固定: 55969 :加强Windows安装程序创建的Apache Tomcat安装的安全性. 将Windows安装程序使用的默认关机端口从8005更改为-1 (禁用). 将对所选安装目录的访问限制为本地管理员,本地系统和本地服务. (市场)
  • 更新: 62696 :Windows安装程序的数字签名现在使用SHA-256进行哈希处理. (市场)
  • 固定: 63285 :修改service.bat以便在安装Windows服务时,默认情况下,它将更改Windows服务使用的可执行文件的名称,以使其与服务名称匹配. 这使安装行为与Windows安装程序一致. 删除Windows服务后,将还原原始的可执行文件名称. 可以通过在服务名称之后使用新的--no-rename选项来禁用--no-rename . (市场)
  • 更新: 从Checkstyle切换到JRE6反向端口,并更新到版本8.22. 这允许Tomcat 8.5在仍使用Java 7进行构建的同时使用较新的Checkstyle版本.
  • 加: 63285 :在service.bat添加一个选项,以便在安装Windows服务时,可以更改Windows服务使用的可执行文件的名称以匹配该服务名称. 这使安装行为与Windows安装程序一致. 删除Windows服务后,将还原原始的可执行文件名称. 可以通过在服务名称之后使用新的--rename选项来启用重命名. (市场)
  • 更新: 63310 :更新到Commons守护程序1.2.0. 这提供了对Java 11的改进支持.这还将Windows安装程序为Windows服务配置的用户从" Local System更改为特权较低的" Local Service . (市场)
  • 固定: 63567 :恢复的传球$LOGGING_MANAGER到JVM中catalina.sh致电时stop . (市场)
  • 更新: 将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 8.5.43 (markt)

Catalina

  • 更新: 修改Default和WebDAV Servlet,以便在通过readonly初始化参数禁用时,针对PUTDELETE请求返回405状态代码.
  • 固定:Allow标头的内容与Default和WebDAV Servlet的响应代码对齐. 对于任何给定资源,返回405状态代码的方法将不会在Allow标头中列出,而Allow标题中列出的方法将不会返回405状态代码. (市场)
  • 固定: 使用WebDAV将文件资源复制到需要覆盖集合的目标位置时,请确保操作成功而不是失败(响应为500). 这使Tomcat可以通过Litmus WebDAV测试套件中的两个附加测试. (市场)
  • 固定: 49464 :当文件编码与所需的响应编码不兼容时,改进默认Servlet对静态文件的处理. (市场)
  • 固定: 修复UTF-32LE字符集名称中的拼写错误. zhanhb vi Github修补程序. (fschumacher)
  • 加: 58590 :如果检测到最后修改时间的更改,则增加了UserDatabase监视后备XML文件的更改并重新加载源文件的功能. 默认情况下启用此功能,这意味着对$CATALINA_BASE/conf/tomcat-users.xml更改现在将在文件保存后不久生效. (市场)
  • 固定: 改进对范围请求标头的解析. (市场)
  • 固定: 指定Tomcat无法识别的范围单位的范围标头应被忽略,而不是触发416响应. 基于zhanhb的拉取请求. (市场)
  • 固定:If-Range标头比较日期时,需要完全匹配. 基于zhanhb的拉取请求. (市场)
  • 固定: 向默认servlet添加一个选项,以禁用将Content-Range标头作为部分PUT的PUT请求的处理. 默认行为(作为部分PUT处理)保持不变. 基于zhanhb的拉取请求. (市场)
  • 固定: 改进内容范围标头的解析. (市场)
  • 固定: 当依靠HttpServlet生成HEAD响应并且GET响应使用分块时,请确保HEAD响应与GET响应一致. (市场)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.23. (市场)

Coyote

  • 固定: 当客户端使用TLS 1.0连接到配置为使用NIO或带有OpenSSL 1.1.1或更高版本的NIO的Tomcat HTTPS连接器时,避免潜在的挂起. (市场)
  • 固定: 一旦URI被识别为无效,请勿尝试进一步处理它. 根据Alex Repert的PR. (市场)
  • 固定: 修复了在APR中使用多个轮询器时避免单个轮询器较长轮询时间的可能性. (市场)
  • 固定: 重构针对63205的修复程序,使其仅在使用PKCS12密钥库时才适用,因为已经报告了一些其他密钥库类型的回归. (市场)

Jasper

  • 加: 如果SMAP处理器在SMAP生成期间无法删除或重命名类文件,则在错误消息中包括文件名. (市场)

WebSocket

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

Other

  • 码: 切换i18n消息文件以使用UTF-8并在构建时将其转换为ASCII. (市场)
  • 固定: 63523 :将SSLUtilBase方法恢复为受保护以保留兼容性. (雷姆)
  • 固定: 切换终端可用性检查以测试stdin,因为将输出通过管道传输到另一个进程时,使用stdout不起作用. RadosławJózwik提供的补丁. (市场)

2019-06-07 Tomcat 8.5.42 (markt)

Catalina

  • 加: 57287 :将文件排序添加到DefaultServlet(schultz)
  • 固定: 如果定义了默认servlet,请确保默认servlet读取了整个全局XSLT文件. 由Coverity Scan识别. (市场)
  • 固定: 生成HTTP Allow标头时,避免潜在的NullPointerException . 由Coverity Scan识别. (市场)
  • 加: 删除目标路径中包含的用于获取RequestDispatcher所有片段. 由于这是应用程序错误,因此将请求的目标路径记录为警告. (市场)

Coyote

  • 更新: 添加更接近核心NIO2的其他NIO2样式读取和写入方法,以便与CompletableFuture之类的异步工作流一起使用. (雷姆)
  • 固定: 避免在异步IO中使用无用的异常包装. (雷姆)
  • 固定: 63412 :从Web应用程序使用异步IO API时,安全管理器失败. (雷姆)
  • 固定: 修复导致不正确的HTTP / 2连接超时的并发问题. (remm / markt)
  • 更新:maxConcurrentStreams上的Http2Protocol的默认值从200减少到100,以与HTTP / 2实现的典型默认值保持一致. (市场)
  • 更新: 将默认的HTTP / 2标头列表大小从4GB减小到32kB,以符合典型的HTTP / 2实现. (市场)
  • 加: 添加对同一站点cookie属性的支持. 约翰·凯利(John Kelly)提供的补丁. (市场)
  • 固定: 纠正流刷新代码中的一个错误,该错误可能导致多个线程同时处理该流,从而导致处理该流的错误. (市场)

Cluster

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

Tribes

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

Other

  • 更新: 从FindBugs切换到SpotBugs. (fschumacher)
  • Fix: 63403: Fix TestHttp2InitialConnection test failures when running with a non-English locale. (kkolinko)
  • 固定: 使用test命令而不是tty命令来检查终端的可用性,因为基于tty的测试在非英语语言环境中失败. (市场)

2019-05-13 Tomcat 8.5.41 (markt)

Catalina

  • 固定: 修复了从WAR文件执行CGI脚本时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了由Coverity扫描确定的StringCache中潜在的并发问题. (市场)
  • 固定: 修复了APR连接器的主Sendfile线程中的潜在并发问题. 由Coverity扫描识别. (市场)
  • 固定: 修复了从WAR文件运行Web应用程序时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复DataSourceRealm某些异常路径上的潜在资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了解析JSP文件时异常路径上潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了当JNDI查找返回兼容类的对象时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 码: 重构ManagerServlet以避免在为指定类型的资源过滤JNDI资源时加载类. (市场)
  • 固定: 在禁用资源缓存的情况下,通过默认servlet访问大文件时,避免使用OutOfMemoryErrorArrayIndexOutOfBoundsException . (市场)
  • 固定: 如果在server.xml使用docBase而不是可选path定义了Contextserver.xml避免NullPointerException . (市场)
  • 固定: 63324 :重构CrawlerSessionManagerValve以使放置在会话中的对象与带有mem-cached的会话序列化兼容. Martin Lemanski提供的补丁. (市场)
  • Fix: 63333: Override the isAvailable() method in the JAASRealm so that only login failures caused by invalid credentials trigger account lock out when the LockOutRealm is in use. Patch provided by jchobantonov. (markt)

Coyote

  • 固定: 在不支持SSLv2Hello的较新JRE上运行时,请勿警告除非明确配置,否则它不可用. (市场)
  • 码: 重构主机名验证以提高性能. Uwe Hees提供的补丁. (市场)
  • 固定: 扩展HTTP / 2超时处理,以包括写入时连接窗口耗尽. 这是CVE-2019-10072的修复程序. (市场)

Other

  • 固定: 63335 :确保由OneLineFormatter编写的堆栈跟踪完全缩进. 现在,整个堆栈跟踪由一个附加的TAB字符缩进. (市场)
  • 固定: 使用OneLineFormatter ,不要在打印堆栈跟踪后在日志中打印空白行. (市场)
  • 更新: 将Apache Commons DBCP 2的内部fork更新为dcdbc72(2019-04-24),以进行一些清理和增强,减少了与需要Java 8的JDBC 4.2相关的更改.
  • Update: Update the internal fork of Apache Commons Pool 2 to 0664f4d (2019-04-30) to pick up some enhancements and bug fixes. (markt)
  • 更新: 将Apache Commons FileUpload的内部fork更新为41e4047(2019-04-24),以获取一些增强功能. (市场)

2019-04-12 Tomcat 8.5.40 (markt)

Catalina

  • 固定: 63196 :为RemoteIpFilterRemoteIpValveprotocolHeader属性提供默认值( X-Forwarded-Proto ). (市场)
  • 固定: 63235 :重构Charset缓存以减少启动时间. (市场)
  • 固定: 63249 :在记录注册或注销JMX Bean的失败时,请使用一致的日志级别( WARN ). (市场)
  • 固定: 63249 :在记录与启动或停止组件失败相关的LifecycleException时,请使用一致的日志级别( ERROR ). (市场)
  • 固定: 当SSI指令fsize与无效目标一起使用时,返回文件大小-而不是1k . (市场)
  • 固定: 63251 :为已知的JRE错误( JDK-8194653 )实现一种变通方法,该错误可能在Tomcat启动时导致死锁. (市场)
  • 固定: 63275 :使用RequestDispatcher确保HttpServletRequest.getContextPath()返回已调度请求中的编码路径. (市场)
  • 固定: 63286 :记录%D%T httpd中的LogFormat指令与AccessLogValvepattern属性之间的行为差​​异. (市场)
  • 固定: 63311 :将Tomcat配置为验证XML配置文件(例如web.xml)时,将对https URL的支持添加到Tomcat中的本地解析器,该解析器用于解析标准XML DTD和模式. (市场)
  • 固定: 对SSI printenv命令的输出进行编码. 这是CVE-2019-0221的修复程序. (市场)
  • 码: 将常量用于SSI编码值. (市场)
  • 加: 当将CGI Servlet配置为enableCmdLineArguments设置为true时,将各个命令行参数的编码形式限制为RFC 3875允许的值.可以通过使用新的初始化参数cmdLineArgumentsEncoded来放宽此限制. (市场)
  • 加: 当将CGI Servlet配置为enableCmdLineArguments设置为true时,在Windows上运行时,将各个命令行参数的解码形式限制为已知的安全值. 通过使用新的初始化参数cmdLineArgumentsDecoded可以放宽此限制. 这是CVE-2019-0232的修复程序. (市场)
  • 更新: 将CGI Servlet的enableCmdLineArguments参数的默认值从true更改为false以针对CVE-2019-0232进行其他强化. (市场)

Coyote

  • 固定: 修复NIO2异步读取API与常规读取之间的不良交互. (雷姆)
  • 固定: 重构经典IO API的NIO2写入挂起策略. (雷姆)
  • 固定: 使用isReadyForRead代码协调NIO2 isReadyForWrite. (雷姆)
  • 固定: 当使用支持ALPN(从Java 9开始)且未协商协议的JSSE TLS连接器时,Tomcat无法回退到HTTP / 1.1,而是断开了连接. (市场)
  • 固定: 纠正Tomcat 9.0.17中TLS连接器重构中的一个回归,该回归阻止了PKCS#8私钥与基于OpenSSL的连接器一起使用. (市场)
  • Fix: When performing an upgrade from HTTP/1.1 to HTTP/2, ensure that any query string present in the original HTTP/1.1 request is passed to the HTTP/2 request processing. (markt)
  • 固定: 当Tomcat在未读取所有HTTP / 2请求的情况下写入最终响应时,请重置流以通知客户端不需要剩余的请求正文. (市场)
  • 固定: 63312 :更正错误页面处理中的回归,该回归阻止了错误页面发出重定向或采取其他需要更改响应状态代码的操作. (市场)

Jasper

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

WebSocket

  • 固定: 改进WebSocket客户端在TLS握手期间的异常处理. (市场)

Web applications

  • 固定: 63184 :扩展SSI文档以提供有关受支持的指令及其属性的更多信息. 守夜人提供的补丁. (市场)
  • 加: 在文档中添加有关使用正则表达式编写RewriteValveRewriteValve的DoS风险的RewriteValve . salgattas提供的补丁. (市场)

jdbc-pool

  • 固定: 63320 :确保StatementCache缓存在参数中包含数组的语句. (kfujino)

2019-03-19 Tomcat 8.5.39 (markt)

Catalina

  • 固定: 次要HTTP / 2推送修复. (雷姆)
  • 固定: 重构如何将Cookie从基本请求传输到PushBuilder以便可以通过用于HTTP标头的标准PushBuilder方法访问并进行编辑. (市场)
  • 加: 重构错误处理,以使在将处理传递给应用程序之前发生的错误可以由应用程序提供的错误处理和/或容器提供的错误处理( ErrorReportValve )进行适当处理. (市场)
  • 加: 将由缺少的ROOT Web应用程序触发的404错误传递到容器错误处理,以生成响应主体. (市场)
  • 加: 将无效请求目标触发的400个错误传递到容器错误处理,以生成响应主体. (市场)
  • 加: 将无效请求或不可用服务触发的错误适当地传递给应用程序提供的错误处理和/或容器提供的错误处理( ErrorReportValve ). (市场)
  • 码: 重构内部Tomcat组件的MBean实现,以减少代码重复. (市场)
  • 更新: 简化tomcat-i18n jar文件的catalina.properties文件中的jarsToSkip属性的值. 使用前缀模式而不是列出每种语言. (kkolinko)
  • 固定: 恢复意外删除的访问日志阀属性maxLogMessageBufferSize的getter和setter. (市场)
  • 加: 63206 :向Context添加一个新属性createUploadTargets ,如果该属性为true ,则使它能够创建Servlet使用的临时上载位置(如果Servlet指定的位置尚不存在). 默认值为false . (市场)
  • Fix: 63210: Ensure that the Apache Commons DBCP 2 based default connection pool is correctly shutdown when it is no longer required. This ensures that a non-daemon thread is not left running that will prevent Tomcat from shutting down cleanly. (markt)
  • 固定: 63213 :当JNDIRealm配置为roleNested设置为true时,请在搜索嵌套组时确保对组名进行正确的转义. (市场)
  • 固定: 63236 :使用Phillip Webb建议的String.intern()来减少由于字符串重复而造成的内存浪费. 开始全新安装时,此更改可节省〜245k. 另外还要感谢YourKit Java profiler来帮助查找浪费的内存和根本原因. (市场)
  • 固定: 63246 :修复了在调用AsyncContext.dispatch()时潜在的NullPointerException . (市场)

Coyote

  • 固定: 确保MessageBytestoString()toBytes()toChars()方法的行为一致,并且不会在新创建的对象上以及调用recycle()之后立即引发NullPointerException . 这不应影响典型的Tomcat用户. 这可能会影响直接在自己的代码中使用这些类的用户. (市场)
  • 固定: 在执行从HTTP / 1.1到HTTP / 2(h2c)的升级时,请确保通过标准方法ServletRequest.getServerName()ServletRequest.getServerPort()使升级后请求的HTTP / 1.1 Host头中的主机名和端口可用. (市场)
  • 固定: 使PEM文件解析器成为公共实用程序类. (雷姆)
  • 固定: 重构APR / Native端点TLS配置代码,以使JSSE样式配置(包括JKS密钥库)可以与APR / Native连接器一起使用. (市场)
  • 加: 通过TLS配置重构,配置属性sessionCacheSizesessionTimeout不再仅限于JSSE实现. 它们现在也可以与OpenSSL实现一起使用. (市场)
  • 固定: 重构经典IO API的NIO2读取挂起策略. (雷姆)
  • 固定: 63182 :使用异步线程时,请避免使用NIO2的HTTP / 1.1的额外读取通知. (雷姆)
  • 加: 63205 :为已知的JRE KeyStore加载错误添加解决方法. (市场)
  • 更新: 与Tomcat 9分支中的NIO2异步API同步. (雷姆)
  • 固定: NIO2应该尝试在任何地方使用SocketTimeoutException,而不是将其与InterruptedByTimeout混合使用. (雷姆)
  • 固定: 更正请求验证中的错误,该错误意味着HTTP / 2推送请求始终导致400响应. (市场)
  • 固定: 63223 :跟踪当前活动的HTTP / 2流时,正确考虑推送请求. (市场)
  • 固定: 在假定发生超时之前,请验证HTTP / 2流仍可写. (雷姆)
  • 固定: 由于OpenSSL引擎具有内部缓冲区,因此避免使用OpenSSL发生某些溢出情况以提高效率. (雷姆)
  • 固定: 协调HTTP / 1.1 NIO2保持活动代码. (雷姆)

WebSocket

  • Code: Remove the STREAMS_DROP_EMPTY_MESSAGES system property that was introduced to work-around four failing TCK tests. An alternative solution has been implemented. Sending messages via getSendStream() and getSendWriter() will now only result in messages on the wire if data is written to the OutputStream or Writer. Writing zero length data will result in an empty message. Note that sending a message via an Encoder may result in the message being send via getSendStream() or getSendWriter(). (markt)

Web applications

  • 固定: 在Manager Web应用程序的"服务器状态"页面上使用客户端的首选语言. 查看并修复几种在Manager和Host Manager Web应用程序中未遵守客户端语言偏好的情况. (kkolinko)
  • 固定: 修复Manager和Host Manager Web应用程序使用的消息. 添加或删除主机时使用的消歧消息键. 改善状态页面上摘要值的显示:用空格分隔术语和值. 改进过期会话命令的消息措辞. (kkolinko)
  • 固定: 不要在Manager和Host Manager Web应用程序中添加CSRF nonce参数并禁止Referer标头用于外部链接. (kkolinko)

Tribes

  • 固定: 确保在addSuspects列表中注册的成员是静态成员. (kfujino)

Other

  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. (kkolinko)
  • 固定: 63041 :还原对53930的更改,这些更改增加了对CATALINA_OUT_CMD环境变量的支持,因为它们阻止了未明确指定PID文件的systemd配置的正确操作. (市场)

2019-02-08 Tomcat 8.5.38 (markt)

Catalina

  • 固定: 54741 :添加新方法Tomcat.addWebapp(String,URL) ,当在嵌入式模式下使用Tomcat时,该方法允许从URL部署Web应用程序. (市场)
  • 固定: 确保ServletOutputStream实现与异步I / O的要求一致,并且所有写方法都使用单个写而不是多个写. (市场)
  • 固定: 更正Context.getDocBase()Context.setDocBase()的Javadoc并删除指示URL可以用于docBase文本,因为这种情况已经有一段时间了. (市场)
  • 加: 作为服务运行时,请确保Tomcat已完全终止. (市场)
  • 码: 在请求正文读取期间处理I / O错误与在响应正文写入期间处理I / O错误的方式相同. 这些错误被视为客户端错误而不是服务器端错误,并且仅在调试级别记录. (市场)
  • 固定: 63038 :尝试从损坏的JAR文件加载类时,请确保引发ClassNotFoundException . (市场)
  • 加: 可以通过BasicAuthenticator上的新属性trimCredentials来配置从传递给BASIC身份验证的凭据中删除trimCredentials和结尾的空格. (市场)
  • 固定: 63003 :扩展unloadDelay在属性Context ,包括飞行异步请求. (市场)
  • 加: 63026 :向JNDIRealm添加新属性forceDnHexEscape ,以强制转义专有名称的String表示形式以使用\nn形式. 这样可以避免使用Active Directory的领域出现问题,当使用\nn格式时,该领域似乎更能接受可选的转义. (市场)
  • Fix: Avoid a swallowed (and therefore ignored) access failure during web application class loading when running under a SecurityManager. (markt)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.21. (市场)
  • 固定: 63137 :如果已为Web应用程序的资源配置了映射到/WEB-INF/classes classs的多个位置,请确保在构建Web应用程序类路径时使用所有这些位置. MarcinGołębski提供的补丁. (市场)

Coyote

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

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文件和关联的标记,因为它不再被使用. (市场)
  • 固定: 63143 :当默认系统区域设置的语言不是英语时,请确保Manager Web应用程序遵守浏览器中配置的用户的语言首选项. (市场)

Tribes

  • 加: 将EncryptInterceptor添加到可用的群集拦截器的产品组合中. 这将会话数据的对称加密添加到Tomcat群集中,而不管所使用的群集管理器类型或成员身份如何. (舒尔茨)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.21,以在将NIO / NIO2与OpenSSL一起使用时获取内存泄漏修复程序. (市场)

Other

  • 固定: 63041 :更正了针对53930的修复程序中的回归,该回归使Tomcat无法与systemd一起正常使用. Patrik S.(市场)提供的补丁
  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.04版. (市场)

2018-12-18 Tomcat 8.5.37 (markt)

Catalina

  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.19. (市场)

Other

  • Update: Update the packaged version of the Tomcat Native Library to 1.2.19 to pick up the latest Windows binaries built with APR 1.6.5 and OpenSSL 1.1.1a. (markt)

not released Tomcat 8.5.36 (markt)

Catalina

  • Fix: 62788: Add explicit logging configuration to write log files using UTF-8 to align with Tomcat's use of UTF-8 by default elsewhere. (markt)
  • 固定: 默认Servlet不应覆盖先前设置的内容类型. (雷姆)
  • 加: 62897 :在标准Context实现上提供一个属性( clearReferencesThreadLocals ),该属性可以禁用通过ThreadLocal进行的内存泄漏检查,因为此检查取决于使用Java的更高版本中已弃用的API. (市场)
  • 固定: 修复具有重复SSL属性的更多storeconfig问题. (雷姆)
  • 固定: 62968 :在处理规则7时,避免在Mapper中进行不必要(且相对昂贵)的getResources()调用.
  • 固定: 62978 :更新RemoteIpValve以处理x-forwarded-proto forward x-forwarded-proto标头中的多个值. Tom Groot提供的补丁. (市场)
  • 固定: 更新RemoteIpFilter以处理x-forwarded-proto forward x-forwarded-proto标头中的多个值. 基于Tom Groot提供的补丁. (市场)
  • 码: 62986 :重构在Web应用程序启动期间执行类扫描的代码,以使下游用户的集成更简单. 由rmannibucau提供的补丁. (市场)
  • 固定: 62988 :修复LoadBalancerDrainingValve以便在未明确声明会话cookie配置时可以使用. 基于Andreas Kurth提供的补丁. (市场)
  • 固定: 63002 :修复设置重写qsdiscard标志. (雷姆)
  • 固定: 实施Servlet规范的8.2.2 2c节的要求,并阻止Web应用程序部署(如果它具有名称重复的片段并且配置为使用片段的相对顺序). (市场)

Coyote

  • 固定: 当使用通过不支持TLSv1.3的OpenSSL版本构建的Tomcat Native时,请避免出现异常. (市场)
  • 固定: 62899 :当使用Servlet非阻塞I / O通过HTTP / 2流读取请求正文时,防止错误地超时断开连接. (市场)
  • 固定: 在初始化之前,请避免SSLHostConfig JMX注册错误. (雷姆)

Jasper

  • 加: 53737 :扩展预编译工具JspC,以包括对资源JAR的支持. (市场)
  • Fix: 62976: Avoid an IllegalStateException when using background compilation when tag files are packaged in JAR files. (markt)

Web applications

  • 固定: 62918 :过滤出子类型mbean,以避免破坏连接器状态页面. (雷姆)

Other

  • 固定: 在Cygwin Shell中运行并且JAVA_ENDORSED_DIRS系统属性为空时,防止出现错误. Zemian Deng提供的补丁. (市场)
  • 加: 53930 :增加了对CATALINA_OUT_CMD环境变量的支持,该环境变量定义了将捕获的stdout和stderr重定向到的命令. 凯西·卢卡斯(Casey Lucas)提供的补丁. (市场)

2018-11-07 Tomcat 8.5.35 (markt)

Catalina

  • 加: 61692 :添加了通过新的初始化参数cgiMethods控制CGI Servlet处理哪些HTTP方法的cgiMethods . (市场)
  • 固定: 62687 :使用压缩战争时公开资源的内容长度信息. (雷姆)
  • 固定: 62737 :修复了{}嵌套的重写替换解析. (雷姆)
  • 固定: 恢复重写配置时,添加重写标志输出. (雷姆)
  • 固定: 将丢失的qsdiscard标志添加到重写标志中,作为丢弃查询字符串的更干净的方法. (雷姆)
  • 固定: 添加有关context.xml.defaultweb.xml.default文件的文档,这些文档可用于基于每个主机自定义conf/context.xmlconf/web.xml . (fschumacher)
  • 固定: 确保规范路径始终用于上下文的docBase,以确保行为一致. (市场)
  • 固定: 62803 :修复了storeconfig中的SSL连接器配置处理. (雷姆)
  • 固定: 62797 :可以通过传递,以使客户端中止状态为200而不是500.Zikfat提交了补丁. (雷姆)
  • 固定: 62809 :更正了对Deployer Ant任务的DIGEST身份验证支持的实现中的回归(错误45832 ),这在需要身份验证时阻止DeployTask起作用. (市场)
  • 更新: 将建议的最低Tomcat本机最低版本更新为1.2.18. (市场)
  • Add: Ignore an attribute named source on Context elements provided by StandardContext. This is to suppress warnings generated by the Eclipse / Tomcat integration provided by Eclipse. Based on a patch by mdfst13. (markt)
  • 加: 62830 :添加了JniLifeCycleListener和静态方法Library.loadLibrary(libraryName)Library.load(filename)以通过共享的类加载器加载本机库,以便多个Webapp可以使用它. (伊萨皮尔)
  • 固定: 更正西班牙语资源文件中的错字. DiegoAgulló提供的补丁. (市场)
  • Fix: 62868: Order the Enumeration<URL> provided by WebappClassLoaderBase.getResources(String) according to the setting of the delegate flag. (markt)

Coyote

  • Add: Add TLSv1.3 to the default protocols and to the all alias for JSSE based TLS connectors when running on a JVM that supports TLS version 1.3. One such JVM is OpenJDK version 11. (rjung)
  • 固定: 62685 :更正主机名验证解析中的错误,该错误不允许完全限定的域名以句点终止. AG提供的补丁. (市场)
  • 固定: 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提供的补丁. (市场)

Other

  • 更新: 将Apache Commons Pool 2的内部fork更新为d4e0e88(2018-09-12),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.18,以获取使用APR 1.6.5和OpenSSL 1.1.1构建的最新Windows二进制文件. (市场)

2018-09-10 Tomcat 8.5.34 (markt)

Catalina

  • 加: 使isLocked()的方法LockOutRealm公众和暴露通过JMX的方法. (市场)
  • 固定: 使用RequestDispatcher对象时,改进对路径参数的处理. (市场)
  • 固定: 62664 :将内容类型为multipart/form-data请求multipart/form-data为带有@MultipartConfig批注的servlet,而与HTTP方法无关. (市场)
  • 固定: 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上的异步处理编写大型主体时响应主体的输出损坏的其他修复程序. (市场)

Jasper

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

Web applications

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

Other

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

2018-08-17 Tomcat 8.5.33 (markt)

Catalina

  • 固定: 使用CORS筛选器时,请确保正确设置了HTTP Vary标头,并提高了通过COPRS筛选器的请求的可缓存性. (市场)
  • 固定: 62527 :将JNDI的限制恢复为java:命名空间. (雷姆)
  • Add: Introduce a new class - MultiThrowable - to report exceptions when multiple actions are taken where each action may throw an exception but all actions are taken before any errors are reported. Use this new class when reporting multiple container (e.g. web application) failures during start. (markt)
  • 固定:RequestDispatcher和Web应用程序类加载器中正确解码URL路径(不应将+解码为路径中的空格). (市场)
  • 加: 如果JASPIC主题意外不可用,则使注销更加可靠. (市场)
  • 固定: 62547 :将身份验证器配置为缓存经过身份验证的主体时,未在注销时调用cleanSubject() . GuillermoGonzálezdeAgüero提供的补丁. (市场)
  • 加: 62559 :将jaxb-*.jar添加到StandardJarScanner忽略的JAR列表中. (市场)
  • 加: 62560 :将oraclepki.jar添加到StandardJarScanner忽略的JAR列表中. (市场)
  • Add: 62607: Return a non-zero exit code from catalina.[bat|sh] run if Tomcat fails to start. (markt)
  • 码:Tomcat.addWebapp(String,String)声明中删除ServletException Tomcat.addWebapp(String,String)因为它永远不会抛出. Tzafrir提供的补丁. (市场)
  • 固定: 使用短路逻辑来防止CorsFilter中潜在的NPE. (fschumacher)
  • 码: 从JAASRealm中的容器名称简化appName的构造. (fschumacher)

Coyote

  • 更新: 60560 :添加对使用继承的通道到NIO连接器的支持. 基于Thomas Meyer提交的补丁以及Coty Sutherland的测试和建议. (雷姆)
  • 固定: 62507 :确保基于JSSE的TLS连接器与DKS密钥库一起正常工作. 注意:DKS密钥库需要Java 8或更高版本. (市场)
  • 固定: 重构代码,该代码将额外的标头名称添加到Vary HTTP响应标头中,以使用可解决几种其他极端情况的通用实用程序方法. (市场)
  • 固定: 62515 :将连接器配置为(通过将bindOnInit设置为false )以在启动/停止期间绑定/取消绑定服务器套接字时,请在停止过程中更早地关闭套接字,以便在关闭过程中新连接不位于TCP待办事项中在停止完成时被丢弃. 在这种情况下,现在将立即拒绝新的连接. (市场)
  • 固定: 62526 :当密钥库密码配置为空字符串时,可以正确处理PKCS12格式的密钥库. (市场)
  • 固定: 修复HTTP / 2压缩后端口中的错误,该错误意味着永远不会启用压缩. (市场)
  • 固定: 62605 :当使用基于HTTP / 2的异步处理时,如果初始请求正文数据在请求标头之后到达,则确保调用ReadListener.onDataAvailable() . (市场)
  • 固定: 62614 :确保在isReady()返回false之后调用WriteListener.onWritePossible()并且在通过HTTP / 2使用异步处理时,窗口大小随后会增加. (市场)

Jasper

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

WebSocket

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

Web applications

  • 加: 61565 :添加了通过Manager Web应用程序触发重新加载TLS主机配置(证书和密钥文件,未重新解析server.xml)的功能. (市场)
  • 加: 62558 :为Manager和Host Manager Web应用程序添加俄语翻译. 基于Ivan Krasnov的补丁. (市场)
  • 加: 62561 :将有关服务器和共享类加载器使用的高级类加载器配置信息添加到文档Web应用程序. (市场)

Tribes

  • 固定: 确保将指定的rxBufSize正确设置为接收器缓冲区大小. (kfujino)

Other

  • 更新: 支持在运行时保留Java 7兼容性的同时使用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). (市场/ kkolinko)
  • 加: 下载用于构建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 8.5.32 (markt)

Catalina

  • 固定: 以与等效的@Resource批注的mappedName元素相同的方式对待web.xml中的<env-entry><mapped-name>元素. 两者现在都尝试设置资源的mappedName属性. (市场)
  • 固定: 使用web.xml中定义的<injection-target>纠正资源处理. 首先使用JavaBean属性名称查找匹配项,然后(只有在未找到匹配项的情况下)使用字段查找匹配项. (市场)
  • Fix: When restoring a saved request with a request body after FORM authentication, ensure that calls to the HttpServletRequest methods getRequestURI(), getQueryString() and getProtocol() are not corrupted by the processing of the saved request body. (markt)
  • 固定: 现在将使用注入目标定义但没有值的JNDI资源视为未定义资源. (市场)
  • 固定: 确保用于web.xml中的<lookup-name>条目和@Resource批注的lookup元素的JNDI名称指定具有显式java:命名空间的名称. (市场)
  • 码: 重构org.apache.naming包以减少重复的代码. Simian工具标识的重复代码. (市场)
  • 固定: 50019 :添加对<lookup-name> . 基于Gurkan Erdogdu的补丁. (市场)
  • 加: 51953 :添加RemoteCIDRFilterRemoteCIDRValve ,可用于允许/拒绝基于IPv4和/或IPv6客户端地址的请求,其中IP范围是使用CIDR表示法定义的. 基于Francis Galiegue的补丁. (市场)
  • Fix: 62343: Make CORS filter defaults more secure. This is the fix for CVE-2018-8014. (markt)
  • Fix: Ensure that the web application resources implementation does not incorrectly cache results for resources that are only visible as class loader resources. (markt)
  • 固定: 使与Tomcat关联的所有记录器提供的"过滤器"均为非静态,以确保重新加载Web应用程序时不会丢失日志消息. (市场)
  • 固定: 更正批注-api.jar的清单. JAR实现了Common Annotations API 1.2,清单应该反映这一点. (市场)
  • 固定: 切换到非静态记录器,其中记录器可能与Web应用程序类加载器相关联,如果Web应用程序停止,则会丢失日志消息. (市场)
  • 加: 62389 :将IPv6环回地址添加到默认的internalProxies正则表达式中. 克雷格·安德鲁斯的补丁. (市场)
  • 固定:RemoteIpValveRemoteIpFilter ,正确处理请求通过一个或多个trustedProxies但不传递internalProxies . 基于zhanhb的补丁. (市场)
  • 固定: 更正MBeanFactory.removeConnector()的逻辑,以确保当有多个使用不同地址但使用同一端口的连接器时,删除了正确的连接器. (市场)
  • 固定: 通过要求经过身份验证的Subject至少包含一个userClassNames指定类型的Principal,使JAASRealm错误配置更加明显. (市场)
  • 固定: 62476 :按照HTTP规范(RFC 7231,7234)的要求,将GMT时区用作Expires标头的值. (kkolinko)

Coyote

  • 固定: NIO2 SSL的一致异常传播关闭. (雷姆)
  • 固定: 如果AJP连接器检测到反向代理正在发送的AJP消息对于配置的packetSize太大,则记录一条错误消息. (市场)
  • 固定: 通过取消FQDN的最后部分必须为字母的要求来放宽主机验证. (市场)
  • 固定: 62371 :改进了对主机验证失败的记录. (市场)
  • 固定: 为NIO2添加丢失的握手超时. (雷姆)
  • 固定: 用户名包含转义字符时,请正确处理摘要授权标头. (市场)
  • 固定: 当十六进制字段值之一以无效字符结尾标头时,正确处理摘要授权标头. (市场)
  • 固定: 正确处理Accept-Language标头中的无效质量值. (市场)
  • 文件: 62423 :修复SSL文档CRL属性拼写错误. (雷姆)
  • 固定: 通过确保IPv4映射的IPv6地址在IPv4部分中不包含前导零来改进IPv6验证. 基于Katya Stoycheva的补丁. (市场)
  • 固定: 修复了尝试记录消息时从replaceSystemProperties()引发的NullPointerException . (csutherl)
  • 固定: 避免不必要的异步超时处理. (市场)

Jasper

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

Cluster

  • 固定: 创建复制的会话时,请删除重复的呼叫,以减少创建会话所花费的时间,从而减少由于该会话尚不存在而忽略后续会话更新消息的机会. (市场)

WebSocket

  • 固定: 当路径参数的解码失败时,请确保抛出DecodeException而不是ArrayIndexOutOfBoundsException . (kfujino)
  • 固定: 将TLS与WebSocket客户端一起使用时,请启用主机名验证. (市场)

Web applications

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

Tribes

  • 固定:McastService检索未设置的属性时,请确保返回正确的默认值. (kfujino)

jdbc-pool

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

Other

  • 固定: 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 8.5.31 (markt)

Catalina

  • 固定: 62263 :当RemoteIpValve处理找不到上下文的请求时,请避免NullPointerException . (市场)
  • 固定: 修复了在实际使用中不太可能发生的极少数情况. 这种边缘情况意味着将较长的UTF-8字符流写入几乎完全由代理对组成的HTTP响应中可能会导致一个代理对被丢弃. (市场)
  • 固定: 当DataSource Resource type="javax.sql.XADataSource"时注册MBean. 三浦正史提供的补丁. (csutherl)
  • 加: 将Apache Commons BCEL的内部fork更新为r1829827,以将早期访问Java 11支持添加到注释扫描代码中. (市场)
  • 固定: 62297 :在主机或引擎上配置Valve时,使CrawlerSessionManagerValve能够正确处理对多个主机和/或Web应用程序进行爬网的机器人. (fschumacher)
  • 固定: 62309 :在非强制性身份验证的情况下,在SecurityManager下使用JASPIC时,修复了SecurityException . (市场)
  • 固定: 62329 :当目录没有专用条目时,正确列出JAR文件中的资源. MeelisMüür提供的补丁. (市场)
  • 加:HttpServletRequest#getContextPath()的返回值中的多个前导/字符折叠为单个/ ,以避免与HttpServletResponse#sendRedirect() . 默认情况下,此行为是启用的,并且可以通过新的Context属性allowMultipleLeadingForwardSlashInPath配置. (市场)
  • 固定: 使用补充字符改善UTF-8解码器中的溢出处理. (市场)

Coyote

  • 固定: 纠正线程池中的"一对一"错误,该错误使线程池的大小增加到比配置的限制大一倍. usc提供的补丁. (市场)
  • 固定: 防止将NIO或NIO2连接器与OpenSSLImplementation一起使用时,由于前一次握手期间的错误导致的意外TLS握手失败,而该错误没有正确清理. (市场)
  • 加: 对所有连接器启用提供的主机名和端口的严格验证. 主机名和/或端口无效的请求将被拒绝,并带有400响应. (市场)
  • 加: 62273 :实施配置选项以解决规范不兼容的用户代理(包括所有主要浏览器)的问题,这些代理不能正确地对RFC 7230和RFC 3986要求的URI路径和查询字符串进行%nn编码.(标记)

Jasper

  • 固定: 启用ECJ 4.7及更高版本以替代Apache Tomcat随附的ECJ版本. (市场)
  • 固定: 如果使用较新的ECJ版本,则可以将Java 10指定为JSP源和/或目标. (市场)
  • 固定: 62287 :请勿依赖哈希码来测试ValueExpressionImpl实例的相等性. Mark Struberg提供的补丁. (市场)

WebSocket

  • 固定: 62301 :更正了针对61491的修复程序中的回归,该回归在使用PerMessageDeflate时在所有情况下均未正确处理最终的空消息部分. (市场)
  • 固定: 62332 :在遇到从客户端读取的I / O错误后,请确保WebSocket连接已关闭. (市场)

Other

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

2018-04-07 Tomcat 8.5.30 (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实例. (市场)
  • 加: 添加LoadBalancerDrainingValve,这是一个Valve,旨在减少节点耗尽其经过身份验证的用户所需的时间. (舒尔茨)
  • 加: 62224 :在Java 9及更高版本上运行时,请禁用forkJoinCommonPoolProtectionJreMemoryLeakPreventionListener ,因为已修复了底层JRE错误. (市场)

Coyote

  • 固定: 避免APR /本机轮询器中的潜在循环. (市场)
  • Fix: Ensure streams that are received but not processed are excluded from the tracking of maximum ID of processed streams. (markt)
  • 固定: 重构对暂停的连接器的检查,以始终防止在暂停连接器之后创建新的流. (市场)
  • 固定: 改进HTTP / 2推送流的调试日志记录. (市场)
  • 固定: 现在,OpenSSL引擎SSL会话将忽略无效访问. (雷姆)
  • Fix: 62177: Correct two protocol errors with HTTP/2 PUSH_PROMISE frames. Firstly, the HTTP/2 protocol only permits pushes to be sent on peer initiated requests. Secondly, pushes must be sent in order of increasing stream ID. These restriction were not being enforced leading to protocol errors at the client. (markt)

Web applications

  • 加:FragmentationInterceptor添加文档. (kfujino)
  • 加: 记录使用CombinedRealm时如何确定已认证用户的角色. (市场)

Tribes

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

jdbc-pool

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

Other

  • Fix: 62164: Switch the build script to use TLS for downloads from SourceForge and Maven Central to avoid failures due to HTTP to HTTPS redirects. (markt)
  • 加: 启动JVM时,始终报告操作系统的umask. (舒尔茨)

2018-03-08 Tomcat 8.5.29 (markt)

Catalina

  • 固定: 调用类转换器时的次要优化. (荣)
  • 固定: 防止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提供的补丁. (紫罗兰色)
  • 固定: 62123 :在尝试清理应用程序触发的Web应用程序停止时触发的RMI内存泄漏时,请避免ConcurrentModificationException . (市场)
  • 固定: 更正60276修复程序中的回归,这意味着将压缩应用于所有MIME类型. Stefan Knoblich提供的补丁. (市场)

Coyote

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

Web applications

  • 加: 48672 :添加有关主机管理器Web应用程序的文档. Marek Czernek提供的补丁. (市场)
  • 加: 解决某些版本的IE中已知的,不符合规范的行为,当Manager应用程序生成纯文本响应时,该行为可能允许XSS. 根据Muthukumar Marikani的建议. (市场)

Other

  • 更新: 更新构建脚本,以便不再根据ASF分发策略中的更改为发行版生成MD5哈希. (市场)

2018-02-11 Tomcat 8.5.28 (markt)

Catalina

  • 固定: 防止由于LogManager实现的更改而在Java 10上运行时将堆栈跟踪写入标准输出. (市场)
  • 固定: 62000 :当无法解析JNDI引用时,请确保报告根本原因异常而不是将其吞下. (市场)
  • 固定: 62036 :当使用NonLoginAuthenticator配置Web应用程序时在会话中缓存经过身份验证的用户Principal时,请缓存内部Principal对象,而不是面对Principal的用户,因为Tomcat要求内部对象正确处理以后的授权检查. (市场)
  • 固定: 如果已经进行过一次加载尝试,则避免重复尝试. (雷姆)
  • Fix: Avoid NPE in ThreadLocalLeakPreventionListener if there is no Engine. (remm)
  • 固定: 62067 :使用URL模式""正确应用映射到上下文根的安全约束. (市场)
  • 固定: 使用嵌入式Tomcat时,在Web应用程序启动期间仅执行一次Authenticator配置. (市场)
  • 固定: 在Web应用程序启动时(而不是在Servlet加载时)处理所有ServletSecurity批注,以确保一致地应用约束. (市场)

Coyote

  • 固定: 61751 :修复在带TLS的NIO2上使用时截断的请求输入流的问题. (市场)
  • 固定: 62023 :使用APR连接器而不是使Tomcat崩溃时,报告多个SSLHostConfig元素的日志错误. (csutherl)
  • 固定: 62032 :当未在SSLHostConfig上定义certificateFile时,修复了NullPointerException,并在定义了certificateFile但对于JKS和PEM文件类型都不存在该文件时,统一了行为. (csutherl)

WebSocket

  • 固定: 62024 :当关闭异常关闭的连接时,请立即关闭套接字,而不要等待客户端可能永远不会到达的关闭消息. (市场)

Webapps

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

jdbc-pool

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

Other

  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.03版. (kkolinko)

2018-01-22 Tomcat 8.5.27 (markt)

Catalina

  • 固定: 更正先前针对61916的修订中的回归,这意味着对于映射到AddDefaultCharsetFilter所有请求,对addHeader()任何调用都将被对setHeader()的调用替换. (市场)

Coyote

  • Fix: 61993: Improve handling for ByteChunk and CharChunk instances that grow close to the maximum size allowed by the JRE. (markt)

Jasper

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

Web applications

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

not released Tomcat 8.5.26 (markt)

Catalina

  • 固定: 更正发行版本中的Javadoc错误.

not released Tomcat 8.5.25 (markt)

Catalina

  • 固定: 47214 :在SecurityManager下运行时,请使用循环预加载匿名内部类,以确保以后代码中的更改或使用其他编译器时都可以安全. (kkolinko)
  • 加: 57619 :对如何处理JAR URL进行小的优化,以减少重复的String对象在内存中的存储. Dmitri Blinov提供的补丁. (市场)
  • 固定: 向ServletContext中添加一些缺少的NPE. (雷姆)
  • 固定: 61916 :当通过setHeader()addHeader()设置内容类型以及通过setContentType()设置内容类型时,扩展AddDefaultCharsetFilter以添加字符集. (市场)
  • 固定: 61999 :将maxSavePostSize设置为0应该在身份验证期间禁用保存POST数据. (雷姆)

Coyote

  • 加: 60276 :为通过HTTP / 2提供的响应实施GZIP压缩支持. (市场)
  • 固定: 没有任何要读取的数据时,请勿调用onDataAvailable. (雷姆)
  • 固定: 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连接,则返回简单的纯文本错误消息. (市场)
  • 固定: 调用ServletInputStream.isReady()时正确处理EOF. (市场)

Jasper

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

Web applications

  • 固定: 从示例Web应用程序中删除Servlet 4.0早期预览示例,因为现在不赞成使用早期预览,而推荐使用提供完整Servlet 4.0实现的Tomcat 9. (市场)
  • 加: 61223 :将mbeans-descriptors.dtd文件添加到自定义MBean文档中,以便用户为构造自定义组件的mbeans-descriptors.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 8.5.24 (markt)

Catalina

  • 加: 在Java 9或更高版本下运行时,并且启用了JreMemoryLeakPreventionListenerurlCacheProtection选项,请使用Java 9中添加的API仅禁用JAR URL连接的缓存. (市场)
  • 固定: 使用TLS相关请求属性时,修复可能的SecurityException . (市场)
  • 固定: 61597 :在Java 9上运行并启用类路径扫描时,扩展StandardJarScanner以扫描模块路径上的JAR. (市场)
  • Fix: 61601: Add support for multi-release JARs in JAR scanning and web application class loading. (markt)
  • 固定: 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

  • 加: 在Java 9上运行时,如果将JSSE实现用于TLS,则对NIO和NIO2 HTTP连接器启用ALPN并因此对HTTP / 2启用.(标记)
  • 加: 60762 :添加了在运行时更改连接器的TLS配置的功能,而无需重新启动连接器. (市场)
  • 固定: 61568 :使用NIO2连接器并将新线程添加到池时,避免潜在的SecurityException . (市场)
  • 固定: 61583 :更正了该修补程序中的进一步回归功能,以允许使用Java密钥存储,该Java密钥存储包含并非全部具有相同密码的多个密钥. 这可以修复使用别名选择的多个密钥的PKCS11密钥存储处理. (市场)
  • 固定: 将连接内的默认HTTP / 2流并发执行次数从200减少到20.(remm)
  • 固定: 61668 :在调用AbstractHttp11Protocol.getSSLProtocol()时,避免使用可能的NPE. (市场)
  • 固定: 61673 :在处理与连接关联的流时,避免可能的ConcurrentModificationException . (市场)
  • Fix: 61719: Avoid possible NPE calling InputStream.setReadListener with HTTP/2. (remm)
  • 固定: 61736 :当客户端在网络数据包之间留出较大的时间间隔时,可提高NIO连接器的性能. 紫龙宋提供的补丁. (市场)
  • 固定: 61740 :更正了使用HTTP / 2时导致间歇性请求失败的Hpack标头索引验证中的一个错误. (市场)

Jasper

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

WebSocket

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

Web applications

  • 固定: 使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无法启动. (荣)
  • 码: 重构以准备Java9.重构以避免使用某些将在Java 9以后版本中弃用的方法. (市场)
  • 加: 51496 :使用Windows安装程序时,请检查所请求的服务名称是否已经存在,如果存在,请提示用户选择其他服务名称. Ralph Plawetzki提供的补丁. (市场)
  • 固定: 将必要的Java 9配置选项添加到启动脚本中,以防止Web应用程序停止时生成警告. (市场)
  • 固定: 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-10-01 Tomcat 8.5.23 (markt)

Catalina

  • 固定: 加载Java 9的JVM logging.properties文件时,请使用正确的路径.(rjung)
  • 固定: 向在Windows上修复CVE-2017-12617所需的资源处理中添加其他验证. 这些检查是在其他地方执行的,但是将它们添加到资源处理中可确保始终执行检查. (市场)
  • 固定: 61554 :从RAT分析中排除打算在GitHub中显示的异常编码的测试文件和markdown文件. 克里斯·Thistlethwaite提供的补丁. (市场)

Other

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

not released Tomcat 8.5.22 (markt)

Catalina

  • Fix: 60963: Add ExtractingRoot, a new WebResourceRoot implementation that extracts JARs to the work directory for improved performance when deploying packed WAR files. (markt)
  • 加: 添加一个选项以拒绝包含HTTP头的请求,这些请求的HTTP头带有无效(非令牌)头名称,且响应为400. (市场)
  • 固定: 61542 :修复了CVE-2017-12617并防止在启用HTTP PUT时通过特制请求上传JSP. (市场)
  • 固定: 实施RFC 7230(和RFC 2616)的要求,即HTTP / 1.1请求必须包含Host标头,并且必须以400响应拒绝任何不被拒绝的请求. (市场)
  • 固定: 实施RFC 7230的要求,即在请求行中指定主机的任何HTTP / 1.1请求都必须在Host标头中指定相同的主机,并且任何此类未请求的请求都必须以400响应来拒绝. 此检查是可选的,但默认情况下处于禁用状态. 可以使用连接器的allowHostHeaderMismatch属性启用它. (市场)
  • Fix: Implement the requirements of RFC 7230 that any HTTP/1.1 request that contains multiple Host headers is rejected with a 400 response. (markt)

Coyote

  • 更新: 添加一种在嵌入式模式下设置属性源的方法. (雷姆)
  • 固定: 61557 :更正了该修补程序中的进一步回归功能,以启用Java密钥库的使用,该Java密钥库包含多个密钥,而这些密钥并非都具有相同的密码. 回归破坏了对某些FIPS兼容密钥存储的支持. (市场)

jdbc-pool

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

Other

  • 固定: 更新针对59904的修复程序,以便接受小于零的值,而不是引发 NegativeArraySizeException. (雷姆)

2017-09-19 Tomcat 8.5.21 (markt)

Catalina

  • 固定:ErrorReportValve生成错误页面之前,请在生成错误页面之前检查关联的连接是否仍允许I / O,以便在永远不发送页面的情况下可以跳过页面生成. (市场)
  • 加: 61189 :添加了为单个CGI脚本设置环境变量的功能. 基于jm009的补丁. (市场)
  • 固定: 61210 :在SecurityManager下运行时,请勿在该配置文件不存在时打印关于无法读取日志记录配置文件的警告. (市场)
  • 加: 61280 :将RFC 7617支持添加到BasicAuthenticator . 请注意,默认配置不会更改现有行为. (市场)
  • 固定: 61424 :在SecurityManager下运行并使用Subject.doAs()时,避免可能的StackOverflowError . (市场)

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侦听器时可能出现的争用情况. (雷姆)
  • 固定: 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

  • 固定: 为了避免来自备份会话的意外会话超时通知,请在接收映射成员通知消息时更新访问时间. (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

  • 固定: 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 8.5.20 (markt)

Catalina

  • 固定: 还原为49464的修复程序,因为它继续触发回归. (市场)
  • 固定: 纠正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

  • 固定: 61086 :确保为HTTP 205响应明确发信号通知为空的请求正文. 对r1795278的附加修复. 基于Alexandr Saperov提供的补丁. (紫罗兰色)
  • 更新: 61345 :添加服务器侦听器,该服务器侦听器可用于从摘要程序中配置的属性源进行系统属性替换. (雷姆)
  • 加: 添加其他日志记录以记录在连接器停止过程中等待NIO轮询器停止时发生的问题. (市场)

Jasper

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

WebSocket

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

2017-07-28 Tomcat 8.5.19 (markt)

Catalina

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

Web applications

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

Other

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

not released Tomcat 8.5.18 (markt)

Catalina

  • 固定: 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 8.5.17 (markt)

Catalina

  • 固定: 49464 :当文件编码与所需的响应编码不兼容时,改进默认Servlet对静态文件的处理. (市场)
  • 固定: 61214 :从上下文MBean描述中删除已删除的属性servlets . Alexis Hassler提供的补丁. (市场)
  • 固定: 61215 :在org.apache.catalina.valves包的mbean-descriptors.xml文件中正确定义addConnectorPortinvalidAuthenticationWhenDeny ,以便可以通过JMX访问属性. (市场)
  • 固定: 使异步错误处理更加健壮. 特别要确保在非容器线程上发生I / O错误后,为所有已注册的AsyncListener调用onError() . (市场)
  • 固定: 在安全管理器下运行时,FileHandler要求将附加的删除文件权限授予JULI. 清理日志文件的线程被标记为守护程序线程. (紫罗兰色)
  • 固定: 61229 :更正了8.5.15中的回归,该回归破坏了WebDAV对名称中包含&字符的资源的处理. (市场)

Coyote

  • 固定: 恢复配置对SSLv3的支持的功能. 启用此协议将在日志中触发警告,因为它是不安全的. (市场)
  • 固定: 对于基于OpenSSL的TLS会话返回null会话时,请勿记录警告,因为在启用会话票证后,这是预期的. (市场)
  • 固定: 当访问日志阀记录TLS相关的请求属性并且NIO2连接器与OpenSSL一起使用时,请确保在连接关闭时TLS属性对访问日志阀可用. (市场)
  • 固定: 60461 :同步APR连接器的SSL会话访问. (雷姆)
  • 加: 为了简化从8.0.x到8.5.x的迁移,如果显式配置了HTTP或AJP BIO连接器,而不是由于BIO被删除而无法启动连接器,请自动切换到NIO并继续. 将记录一条警告,以警告用户进行此切换. (市场)

Web applications

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

2017-06-26 Tomcat 8.5.16 (markt)

Catalina

  • 固定: 61072 :尊重文档声明,该文档声明允许使用平台默认安全随机数生成会话ID. (雷姆)
  • 固定: 更正oacconnector.CoyoteAdapter#parseSessionCookiesId的javadoc. 约翰·安德鲁(徐州王)通过Github提供的补丁. (紫罗兰色)
  • 固定: 61101 :作为响应,CORS过滤器应设置Vary标头. 由Rick Riemer提交. (雷姆)
  • 加: 61105 :添加新的JULI FileHandler配置,以指定保留日志文件的最大天数. (紫罗兰色)
  • 固定: 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标头中使用的字符集名称具有与应用程序提供的形式完全相同的形式. 这将还原8.5.15中的行为更改,该行为更改对某些客户端造成了问题. (市场)
  • 固定: 61201 :确保CGI可执行文件的SCRIPT_NAME环境变量以一致的方式填充,而不管CGI Servlet如何映射到请求. (市场)

Coyote

  • 固定: 61086 :为HTTP 205响应明确发信号通知为空的请求主体. (市场)
  • 固定: 61120 :处理HTTP / 2请求时,请勿忽略路径参数. (市场)
  • 固定: 还原针对漏洞60718的修复中引入的更改,该更改将客户端将连接从200断开到500时将访问日志中记录的状态代码更改了.(标记)
  • 固定: 将其他同步添加到OpenSSL引擎提供的SSL会话对象中,以便并发销毁不会导致JVM崩溃. (雷姆)
  • Fix: 61195: Backport, with deprecation where appropriate, the endpoint and protocol property changes from 9.0.x to ease migration from 8.5.x to 9.0.x. (markt)

Jasper

  • Fix: 44787: Improve error message when JSP compiler configuration options are not valid. (markt)
  • 固定: 61137jsjsp.tagext.TagLibraryInfo#urijsjsp.tagext.TagLibraryInfo#prefix字段不应为最终字段. 由Katya Todorova提供的补丁. (紫罗兰色)

WebSocket

  • 固定: 当用于PongMessageMessageHandler未实现MessageHandler.Whole时,更正日志消息. (荣)
  • 加: 引入新的API oatomcat.websocket.WsSession#suspend / oatomcat.websocket.WsSession#resume ,可用于挂起/恢复读取传入消息. (紫罗兰色)
  • 固定: 提高用于报告WebSocket消息发送结果的Future的线程安全性. (市场)
  • 固定: 61183 :在先前的修订中为58624纠正了一个回归,该回归可能会触发死锁,具体取决于客户端代码采用的锁定策略. (市场)

Web applications

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

Tribes

  • Add: Add JMX support for Tribes components. (kfujino)

Other

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

2017-05-10 Tomcat 8.5.15 (markt)

General

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

Catalina

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

Coyote

  • 固定: 当配置了不支持certificateVerificationDepthTrustManager ,仅在明确设置certificateVerificationDepth时记录有关缺少支持的警告. (市场)
  • 固定: 60970 :扩展了对大标头的推送请求的修复. (市场)
  • 固定: HTTP / 2响应中的状态代码小于200时,请勿包含Date标头.(标记)

Jasper

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

WebSocket

  • 固定: 61003 :即使在处理期间发生某些异常, oatwebsocket.AsyncChannelWrapperSecure确保正确重置oatwebsocket.AsyncChannelWrapperSecure中的读写标志. (markt / violetagg)

Web Applications

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

Other

  • 加: 修改用于发布到Maven存储库的Ant构建脚本,以使其不再需要由GPG签名的工件. CI系统可以将快照构建上传到ASF Maven存储库. (市场)
  • 码: 查看i18n属性文件,删除不必要的转义符,并始终使用[...]分隔插入值. (市场)

2017-04-18 Tomcat 8.5.14 (markt)

Catalina

  • 固定: 59825 :记录一条消息,该消息列出处理链中调用ServletRequest.startAsync()失败时不支持异步处理的组件. (市场)
  • 固定: 60926 :确保在通过安全管理器运行Tomcat时, oaccore.ApplicationContextFacade#setSessionTimeout将调用正确的方法. (市场)
  • 更新: 更新早期访问Servlet 4.0 API实现,以反映方法名称从getPushBuilder()newPushBuilder()的更改. (市场)
  • 固定: 更正X中的回归以逗号重构会破坏采用参数的JMX操作. (市场)
  • 固定: 在读取未启用TLS的正在运行的HTTP连接器的属性时,请避免NullPointerException . (市场)
  • 固定: 60940 :从打包的WAR文件运行Web应用程序时,改进对位于/WEB-INF/lib Jar文件的META-INF/META-INF/MANIFEST.MF条目的处理. (市场)
  • 固定: 预加载ExceptionUtils类. 由于该类在错误处理中被广泛使用,因此应谨慎地预先加载它,以免在加载此类时出现任何错误,从而掩盖了错误处理过程中的真实问题. (市场)
  • 固定: 避免在关闭期间与访问日志记录相关的潜在NullPointerException ,其中一些在运行单元测试时已被观察到. (市场)
  • 固定: 如果没有注册javax.servlet.WriteListener那么对javax.servlet.ServletOutputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)
  • 固定: 如果没有注册javax.servlet.ReadListener那么对javax.servlet.ServletInputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)

Coyote

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

Jasper

  • 固定: 60925 :改善访问由接口定义的属性的处理时BeanELResolver是下使用SecurityManager . (市场)

jdbc-pool

  • 码: 重构为代理类创建的构造函数,以减少重复的代码. (kfujino)
  • 固定:StatementFacade ,对已关闭的语句的方法调用将引发SQLException而不是NullPointerException . (kfujino)

Other

  • 固定:Jre8Compat对Java 8的正确注释. 由Gibbub提供的补丁程序. (紫罗兰色)
  • 固定: 60932 :在i18n消息中使用时,请正确转义单引号. 基于Michael Osipov的补丁. (市场)
  • 固定: 更新与Symantec Code Signing服务集成的自定义Ant任务,以使用现在强制性的2因子身份验证. (市场)

2017-03-30 Tomcat 8.5.13 (markt)

Catalina

  • 加: 54618HttpHeaderSecurityFilter HSTS preload参数的支持添加到HttpHeaderSecurityFilter . (市场)
  • 固定: 60853 :通过JMX公开SSLHostConfigSSLHostConfigCertificate对象. (市场)
  • 固定: 60876 :确保由Rfc6265CookieProcessor生成的Set-Cookie标头符合规范. Jim Griswold提供的补丁. (市场)
  • 固定: 60882 :为没有任何pathInfo关联的请求获取RequestDispatcher时,修复了NullPointerException . 这是Servlet 4.0 API早期预览更改在8.5.12中所做的更改的回归. (市场)
  • 更新: 使PushBuilder API与Servlet专家组的更改保持一致. (市场)
  • 码: 重构X的各种实现,以逗号分隔列表到单个实用程序类,并更新代码以使用新的实用程序类. (市场)
  • 固定: 60911 :确保在查找SSL会话ID时不会抛出NPE. 基于Didier Gutacker的补丁. (紫罗兰色)

Coyote

  • 加: 60362 :添加新的连接器配置sendReasonPhrase . 当此属性设置为true ,原因短语将与响应一起发送. 默认情况下,将不发送原因短语. 此选项已弃用,在Tomcat 9中不可用.(violetagg)
  • 固定: 修复EOF上的HTTP / 2错误输入取消阻止. (雷姆)
  • 固定: 如果当前连接发生与该连接的当前状态不一致的事件,请尽快关闭该连接. (市场)
  • Fix: Speed up shutdown when using multiple acceptor threads by ensuring that the code that unlocks the acceptor threads correctly handles the case where there are multiple threads. (markt)
  • 固定: 60852 :在配置属性和内部代码中使用时,拼写可正确压缩. 基于Michael Osipov的补丁. (市场)
  • 固定: 60900 :如果在新数据到达该连接的同时关闭连接,则避免APR轮询程序中出现NullPointerException . (市场)
  • 固定: 通过修复Moto Ishizawa编写的h2spec工具报告的一些测试失败,提高HPACK规范的兼容性. (市场)
  • 固定: 通过修复Moto Ishizawa编写的h2spec工具报告的一些测试失败,提高HTTP / 2规范的合规性. (市场)
  • 固定: 60918 :修复了sendfile处理错误,该错误可能导致后续请求遇到IllegalStateException . (市场)
  • 固定: 改进请求传递时的sendfile处理. (市场)

Jasper

  • 固定: 改进简单标签的错误处理,以确保使用后即可释放并销毁标签. (雷姆,violetagg)
  • 固定: 60844 :当使用比方法所需的参数值少的参数值来调用EL方法表达式时,可以正确处理错误. Daniel Gray提供的补丁. (市场)

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 8.5.12 (markt)

Catalina

  • 固定: 60469 :重构RealmBase以便在实现使用自定义Principal Realms时更好地重用代码. (市场)
  • 固定: 60490 :各种格式和布局的改进为ErrorReportValve . 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • Update: 60596: Improve performance of DefaultServlet when sendfile feature is disabled on connector. (kkolinko)
  • 码: 通过getDefaultWebXmlListener()使Tomcat子类更容易修改默认的web.xml设置. 亚伦·安德森(Aaron Anderson)提供的补丁. (市场)
  • 固定: 当多个线程正在管理对象并且需要引用注释缓存时,减少默认InstanceManager实现中的争用. (市场)
  • 码: 60674 :从CorsFilter删除final标记以启用子分类. (市场)
  • 固定: 60683 :在某些JVM上进行IO时,安全管理器故障导致NPE. (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 . (市场)
  • Code: Improve the performance of AuthenticatorBase when there is no JASPIC configuration available. (violetagg)
  • 固定: 当在连接器上禁用HTTP TRACE请求时,请确保来自WebDAV Servlet的HTTP OPTIONS响应在返回的Allow标头中不包括TRACE. (市场)
  • 固定: 60722 :在为由AsyncContext.dispatch()触发的调度生成路径时,请考虑当前Context上的dispatchersUseEncodedPaths设置. (市场)
  • 固定: 60728 :使Tomcat在Tomcat特定war:file:...使用的分隔符可通过系统属性自定义URL协议. 分隔符等同于使用! jar:file:... URL中的字符. *的默认分隔符保持不变. (市场)
  • Update: Update the org.apache.catalina.servlet4preview package that can be used to gain early access to Servlet 4.0 features to align with the latest proposals from the Servlet 4.0 expert group. This includes updates to the new Servlet mapping API, new methods on the ServletContext to make the available API more equivalent to the deployment descriptor, updates to the HTTP push API and the ability to set default request and response character encoding per web application. Note that the Servlet 4.0 API is still a work in progress and further changes are likely. (markt)
  • 固定: 60798 :更正了未打包的 WAR中对JAR的处理中的一个错误,该错误意味着多次连续尝试从JAR读取同一条目的尝试将在第二次和后续尝试中失败. (市场)
  • 固定: 60808 :确保ServletRequest.getParameterMap()返回的Map完全不可变. 基于woosan提供的补丁. (市场)
  • 固定: 60824 :在SecurityManager下运行时,如果存在会话,则在会话中正确缓存Subject . Jan Engehausen提供的补丁. (市场)
  • 固定: 确保在触发应用程序侦听器时使用请求和响应外观. (标记/毫米)

Coyote

  • 固定: 当HTTP / 2客户端发送的数据多于当前窗口大小所允许的流控制时,改进对这种情况的处理. (市场)
  • 固定: 改进带有大型客户端问候消息的SNI的TLS客户端问候的NIO2超前解析. (市场)
  • 固定: 59807 :提供更好的错误消息时,有没有SSLHostConfig具有定义hostName ,所述匹配defaultSSLHostConfigName用于相关联的连接器 . (市场)
  • 固定: 当警告算法不支持certificateVerificationDepth配置选项时,请包含SslHostConfig.truststoreAlgorithm的值. (市场)
  • Fix: Ensure that executor thread pools used with connectors pre-start the configured minimum number of idle threads. (markt)
  • 加: 60594 :允许使用系统属性tomcat.util.http.parser.HttpParser.requestTargetAllow在请求中最近处理的一些无效字符. (csutherl)
  • 固定: 60627 :修改Rfc6265CookieProcessor以便除了以显式RFC 2109 $Version=1开头的cookie头之外,以$Version=0开头的cookie也被解析为RFC 2109 cookie. (市场)
  • 固定: 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生成的代码,以减少标签所需代码的大小. (市场)
  • 固定: 60769 :更正了针对8.5.10进行的XML编码检测重构中的回归,该回归总是错误地始终使用检测到的BOM编码,而不是在序言中指定的任何编码. (市场)
  • 更新: 更新到Eclipse JDT Compiler 4.6.1. (市场)

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提供的拼写更正. (紫罗兰色)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.12,以获取使用OpenSSL 1.0.2k构建的最新Windows二进制文件. (紫罗兰色)
  • 加: 60784 :更新所有测试HTTP状态行的单元测试,以检查状态代码后是否需要空格. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.01版. (市场)

2017-01-16 Tomcat 8.5.11 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

jdbc-pool

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

Other

  • 固定: Josh Soref提供的拼写更正. (紫罗兰色)

not released Tomcat 8.5.10 (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以上的字符.(标记)
  • 固定: 改进选择用于解锁接收器的地址的逻辑,以考虑平台配置为0.0.0.0::时不会监听所有本地地址的逻辑. (市场)
  • 固定: 更正重构中的回归,以更广泛地使用ByteBuffer ,而ByteBuffer会导致单元测试中的间歇性失败. (市场)
  • 固定: 60482 :HTTP / 2不应对查询字符串进行URL解码. (雷姆)
  • 固定: 修复HTTP / 2压缩错误. 一旦为动态HPACK表确定了新的大小,则下一个标头块必须以动态表更新开始. (市场)
  • 固定: 60508 :设置HTTP / 2的请求开始时间. (雷姆)

Jasper

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

WebSocket

  • 固定: 在尝试写之前,如果写超时,则正确处理阻塞WebSocket的写操作. (市场)

Web Applications

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

Other

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

2016-12-08 Tomcat 8.5.9 (markt)

Catalina

  • 更新: 60202 :向领域添加可用标志,以指示状态或领域后端. 如果锁定域可用,则将锁定域更新为仅注册身份验证失败. (雷姆)
  • Fix: 60340: Readability improvements for CSS used in DefaultServlet and ErrorReportValve. Patch provided by Michael Osipov. (violetagg)
  • 固定: 60351 :延迟创建META-INF/war-tracker文件,直到扩展WAR之后以解决在扩展过程中Tomcat进程终止的情况. (市场)
  • 固定: 为本身位于打包的WAR文件中的JAR中的资源正确生成URL. (市场)
  • 固定: 嵌入Tomcat时正确处理主机的configClass属性. (市场)
  • 固定: 60368 :恢复嵌入式嵌入式外壳,允许移除连接器. (雷姆)
  • 固定: 60379 :一旦不再需要GSS凭证,则将其丢弃. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60380 :确保对HttpServletRequest#logout()的调用触发对TomcatPrincipal#logout()的调用. 基于Michael Osipov的补丁. (市场)
  • 固定: 60387 :更正了oacatalina.AccessLog.setRequestAttributesEnabled的javadoc. 对于不同的实现,默认值是不同的. (紫罗兰色)
  • 码: 60393 :在Realm#authenticate(GSSContext, boolean)实现中使用一致的参数命名. (市场)
  • 固定: 60395 :在Authenticator将不完整的GSSContext传递给领域时进行记录,因为它指示Authenticator器中的错误. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • Fix: 60400: When expanding the buffer used for reading the request body, ensure the read position will be restored to the original one. (violetagg)
  • 固定: 60410 :确保对JarInputStreamWrapper#close()多次调用不会错误地触发底层JAR或WAR文件的关闭. (市场)
  • 固定: 60411 :实现在支持RewriteValve的符号名返回重定向响应用户代理时指定重定向代码使用. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60413 :在RewriteValve在生成重写的URL时,将空的捕获组写为空字符串,而不是"null" . 基于Michael Osipov的补丁. (市场)

Coyote

  • 固定: 60372 :确保在将标头写入套接字时发生IOException时,将响应标头的缓冲区限制重置为该缓冲区的容量. (紫罗兰色)
  • 固定: 确保在Tomcat启动期间正确报告了需要ALPN的已配置升级协议的可用性. (市场)
  • 固定: 60386 :实现一种更复杂的修剪算法,用于从优先级树中删除关闭的流,以确保该树不会变得太大. (市场)
  • 固定: 60409 :当无法完成sendfile请求时,请确保仅将处理器添加到缓存一次. (markt / violetagg)
  • 固定: 如果将端点配置为侦听特定类型(例如0.0.0.0:: 0.0.0.0任何本地地址,请确保端点在关闭期间能够解锁接收器线程. (市场)
  • 加: 向APR连接器添加新的配置选项ipv6v6only ,该选项允许将它们配置为仅在配置了IPv6地址时接受IPv6连接,而不是默认值(如果操作系统使用双网络堆栈,则默认接受IPv4连接). (市场)
  • 固定: 改进解锁接收器线程的逻辑,以便在为任何本地端口配置连接器时可以更好地选择要连接的地址. 这减少了解锁失败的可能性. (市场)
  • 固定: 60436 :处理异步超时时,请避免使用潜在的NPE. (市场)
  • Fix: Reduce the window in which an async request that has just started processing on a container thread remains eligible for an async timeout. (markt)

Jasper

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

Web applications

  • 固定: 修复BUILDING.txt中记录的JDK版本号. (荣)
  • 固定: 更正《主机配置参考》中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 固定: 60412 :添加有关RewriteValve配置的注释语法的信息. (市场)
  • 固定: 60467 :从XML文档中删除有问题的字符. 基于Michael Osipov的补丁. (舒尔茨)

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 8.5.8 (markt)

Coyote

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

not released Tomcat 8.5.7 (markt)

Catalina

  • Fix: When creating a new Connector via JMX, ensure that both HTTP/1.1 and AJP/1.3 connectors can be created. (markt)
  • 固定: 无法将项目添加到缓存时,请在日志消息中包含上下文名称. (市场)
  • 固定: 从静态资源缓存中排除/WEB-INF/lib JAR文件. (市场)
  • 固定: 在目录上调用getResourceAsStream()时,请确保返回null . (市场)
  • 固定: 60161 :允许创建容器记录器的子类别,并将其用于重写阀. (雷姆)
  • 固定: 阅读提供的关机密码时,请正确测试控制字符. (市场)
  • 固定: 60297 :简化嵌入式模式下的连接器创建. (雷姆)
  • Fix: Refactor creation of containers in embedded mode for more consistency and flexibility. (remm)
  • 加:oacatalina.connector.CoyoteInputStream / oacatalina.connector.CoyoteOutputStream引入新的方法read(ByteBuffer) / write(ByteBuffer) . (紫罗兰色)
  • Fix: When configuring the JMX remote listener, specify the allowed types for the credentials. (markt)

Coyote

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

Web applications

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

Tribes

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

Other

  • 加: 将JASPIC API jar添加到Maven Central发布脚本中. (市场)
  • Fix: Remove classes from tomcat-util-scan.jar that are duplicates of those in tomcat-util.jar. (markt)

2016-10-10 Tomcat 8.5.6 (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无法指定类型,指定未知类型或指定错误类型时的异常错误消息. (市场)
  • 固定: 60167 :使用PasswdUserDatabase时,忽略/etc/passwd文件中的空行. (市场)
  • 固定: 60170 :从RAT分析中排除压缩的测试文件index.html.br . Gavin McDonald提供的补丁. (市场)
  • 固定: 启动Web资源时,请确保仅启动一次类资源. (市场)
  • 固定: 改进对链接的全局资源的访问检查,以处理当前类装入器是Web应用程序类装入器的子级的情况. (市场)
  • 固定: 60196 :使用isMandatory身份验证时,请确保正确设置了isMandatory标志. (市场)
  • 固定: 60199 :如果反序列化问题阻止会话属性加载,请记录警告. (市场)
  • 固定: 60208 :使用兼容RFC6265的cookie时,cookie名称中不应包含/字符,因为RFC6265会将此类cookie视为无效. (市场)

Coyote

  • 加: 重构实现以下要求的代码:必须先延迟从非容器线程对complete()dispatch()的调用,然后再调用容器启动的线程,而该容器启动的线程必须调用startAsync()完成. 而不是通过阻塞非容器线程来实现这一点,而是扩展内部状态机来对此进行跟踪. 这消除了阻塞非容器线程可能触发死锁的可能性. (市场)
  • 固定: 如果客户端在SNI处理期间关闭连接,则会更早失败. (市场)
  • 固定: 60123 :避免潜在的线程问题,该问题可能导致在当前请求的处理时间内返回过大的值. (市场)
  • 固定: 60174 :的Log实例HeadersTooLargeException请求处理过程中. (市场)
  • 固定: 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)
  • 固定: 60139 :对于正确的Javadoc PoolConfiguration.getValidationIntervalsetValidationInterval . Phillip Webb报道. (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 8.5.5 (markt)

Catalina

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

Coyote

  • 固定: 更正重构中的回归,以启用自定义密钥库的注入,该密钥库破坏了与JSSE TLS连接器一起使用的OpenSSL样式PEM密钥和证书文件的自动转换. (市场)
  • 固定: 59910 :请勿将JSSE的密钥别名值硬编码为" tomcat". 使用密钥库时,OpenSSL仍将默认使用它. (雷姆)
  • 固定: 59904 :为每个请求允许的cookie数量添加一个限制(默认为200). 基于gehui的补丁. (市场)
  • Fix: 59925: Correct regression in r1628368 and ensure that HTTP separators are handled as configured in the LegacyCookieProcessor. Patch provided by Kyohei Nakamura. (markt)
  • 固定: 59950 :报告无法将连接的当前HTTP / 2流数目无法修剪到限制以下时,更正日志消息. (市场)
  • 固定: 确保在所有情况下都调用Semaphore.release . 即使有例外. (紫罗兰色)
  • 固定: 60030 :纠正由于无法处理流结束条件而触发的SNI解析代码中潜在的无限循环. (市场)
  • Fix: Small logging optimization in the Rfc6265CookieProcessor. Patch provided by Svetlin Zarev. (markt)
  • 固定: 现在,OpenSSL现在默认情况下会禁用3DES,因此在使用OpenSSL语法选择密码时应体现这一点. (市场)
  • 固定: 为NIO2的异步错误使用正确的ERROR套接字状态代码. (雷姆)
  • 固定: 60035 :如果客户端在握手完成之前断开了TLS连接,则修复了潜在的连接泄漏. (市场)
  • 固定: 重构JSSE客户机证书验证,以便certificateVerificationDepth配置属性的有效性不取决于证书吊销列表的存在. (市场)
  • 加: 如果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应用程序的"管理人员指南"页面中的错字. (市场)

jdbc-pool

  • 固定: 为了避免PoolCleaner意外跳过,请在已计划的任务中删除执行间隔的检查代码. (kfujino)
  • 固定: 59850 :确保在启用StatementCache拦截器时关闭ResultSet . (kfujino)
  • 固定: 59923 :减小validationInterval的默认值,以避免潜在的问题,即在数据库重新启动后继续返回无效的连接. (kfujino)
  • Fix: Ensure that the ResultSet is returned as Proxy object when enabling the StatementDecoratorInterceptor. (kfujino)
  • 固定: 60043 :当禁用removeAbandoned时, removeAbandoned确保suspectTimeout在不删除连接的情况下工作. (kfujino)
  • 固定: 返回已标记为可疑的连接时添加的日志消息. (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版本保持一致. (市场)
  • Update: Update the internal fork of Commons DBCP 2 to r1757164 to pick up a couple of bug fixes. (markt)
  • 更新: 将Commons Codec的内部fork更新为r1757174. 代码格式仅更改. (市场)
  • 更新: 将Commons FileUpload的内部fork更新为afdedc9. 这样就可以修复较大的多部分边界,从而提高性能. (市场)

2016-07-12 Tomcat 8.5.4 (markt)

Catalina

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

Coyote

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

Jasper

  • 固定: 在调用InstanceManager.destroy()之前,请改善围绕用户代码的错误处理,以确保执行该方法. (市场)

WebSocket

  • 码: 现在,WebSocket实现不是直接建立在Servlet API之上,而是可以使用Tomcat内部组件,因此不需要专用的WebSocket Executor. 使用连接器/端点提供的执行程序已将其替换. (市场)
  • 固定: 在调用InstanceManager.destroy()之前,请改善围绕用户代码的错误处理,以确保执行该方法. (市场)

Web Applications

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

Extras

  • 码: 58588 :从发行版中删除JULI Extras软件包. 它仅在将Tomcat的内部日志切换到log4j 1.2.x时有用,并且不再支持该版本的log4j. 如果将Tomcat的内部日志切换为通过log4j 2.x进行日志,则不需要其他Tomcat代码. (市场)

Tribes

  • 加: 当ping超时时,添加日志消息. (kfujino)
  • Fix: If the ping message has been received at the AbstractReplicatedMap#leftOver method, ensure that notify the member is alive than ignore it. (kfujino)

jdbc-pool

  • 固定: 当连接验证失败时,修复重复的连接版本. (kfujino)
  • Fix: Ensure that do not remove the abandoned connection that has been already released. (kfujino)

Other

  • 更新: 59276 :将可选的Checkstyle库更新为6.17. (kkolinko)
  • 加: 使用镜像网络而不是ASF主站点来下载当前的ASF依赖项. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.8,以获取最新的修补程序,并使1.2.8成为最低推荐版本. (市场)
  • 码: 对所有XML文件使用带有标准序言的UTF-8. (市场)

2016-06-13 Tomcat 8.5.3 (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流重置的处理. (市场)
  • Add: 58750: The HTTP Server header is no longer set by default. A Server header may be configured by setting the server attribute on the Connector. A new Connector attribute, serverRemoveAppProvidedValues may be used to remove any Server header set by a web application. (markt)
  • 固定: 59564 :更正了当读入HTTP / 2输入缓冲区时的偏移量,该偏移量可能导致读取请求正文时出现问题. (紫罗兰/市场)
  • 固定: 修改读/写超时的处理,以便WriteListener.onError()适当的错误处理( ReadListener.onError()WriteListener.onError()AsyncListener.onError() ). (市场)
  • Fix: If an async dispatch results in the completion of request processing, ensure that any remaining request body is swallowed before starting the processing of the next request else the remaining body may be read as the start of the next request leading to a 400 response. (markt)
  • 固定: 解决多次尝试关闭同一套接字的原因. (市场)

Jasper

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

WebSocket

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

Web applications

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

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以及其他修复). (市场)
  • 固定: 58626 :添加了对新环境变量( USE_NOHUP )的支持,该变量导致在启动Tomcat时使用nohup . 默认情况下禁用此功能,但在HP-UX上默认禁用该功能,因为在HP-UX上启动Tomcat时需要使用它. (市场)

2016-05-16 Tomcat 8.5.2 (markt)

Catalina

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

not released Tomcat 8.5.1 (markt)

Catalina

  • 固定: 59206 :确保当未指定catalina.base时, oatomcat.util.file.ConfigFileLoader不会引发NPE. (紫罗兰色)
  • 固定: 59217 :在oatomcat.util.http.ServerCookie中的路径回收中删除重复oatomcat.util.http.ServerCookie . 补丁由中村京平提供. (紫罗兰色)
  • 固定: 修复了oacatalina.loader.WebappClassLoaderBase.getResourceAsStream (violetagg)中可能存在的NPE
  • Fix: 59213: Async dispatches should be based off a wrapped request. (remm)
  • 固定: 确保javax.servlet.ServletRequestjavax.servlet.ServletResponse期间提供javax.servlet.AsyncListener登记经由提供javax.servlet.AsyncEvent.getSuppliedRequestjavax.servlet.AsyncEvent.getSuppliedResponse (violetagg)
  • 固定: 59219 :如果在异步处理期间引发Exception确保调用AsyncListener.onError() . (市场)
  • Fix: 59220: Ensure that AsyncListener.onComplete() is called if the async request times out and the response is already committed. (markt)
  • 固定: 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以下. (市场)
  • Add: Add the org.apache.catalina.servlet4preview package that can be used to gain early access to Servlet 4.0 features. Note that this package will not be present in Tomcat 9. (markt)
  • 固定: 正确配置扩展JAR文件提供的资源目录的基本路径. hengyunabc提供的补丁. (市场)
  • 加: 当有多种压缩格式可用且客户端未表达首选项时,请使用服务器顺序确定首选格式. 基于gmokki的补丁. (市场)
  • 固定: 59284 :允许Tomcat提供的JASPIC SimpleServerAuthConfig从传递给其构造函数的属性集中或从对getAuthContext的调用中传递的属性中选取模块配置属性. 基于Thomas Maslen的补丁. (市场)
  • 固定: 59310 :请勿为未设置Content-Length值的HEAD请求的自定义响应添加Content-Length: 0标头. (市场)
  • 固定: 规范化路径时,请改善路径以/.结尾的处理/./..并确保输入和输出是否以/结束是一致的. (市场)
  • 固定: 59317 :确保调度后HttpServletRequest.getRequestURI()返回编码的URI,而不是解码的URI. (市场)
  • Fix: Use the correct URL for the fragment when reporting errors processing a web-fragment.xml file from a JAR located in an unpacked WAR. (markt)
  • 固定: 确保JarScanner仅使用显式回调来处理WEB-INF/classes并且仅在配置为将WEB-INF/classes的内容视为可能的分解JAR时使用. (市场)
  • 码: 取下java2DDisposerProtection从选项JreMemoryLeakPreventionListener . Java 7及更高版本中已修复了该漏洞,Tomcat 8需要Java 7,因此该选项是不必要的. (市场)
  • 固定: 使用ALLOW-FROM选项时,请确保根据规范正确构造了标题X-Frame-Options的值. (紫罗兰色)
  • 固定: 如果首次使用内部Response对象需要JASPIC身份验证,请修复IllegalArgumentException . (市场)
  • 固定: 使用JASPIC并使用缓存的凭据对用户进行身份验证时,请勿触发不必要的会话ID更改. (市场)
  • 固定: 59437 :确保JASPIC CallbackHandler是线程安全的. (市场)
  • 固定: 59449 :在ContainerBase ,确保删除子容器的过程与添加一个子容器的过程相反. 张虎星提供的补丁. (市场)

Coyote

  • 固定: 将密码配置解析与当前的OpenSSL主文件对齐. (市场)
  • 更新:honorCipherOrder的默认值更改为false . 使用当前的默认TLS配置,对于合理的安全配置,不再需要将此设置设为true . (市场)
  • 加: 添加一个新的环境变量JSSE_OPTS ,该变量旨在用于将JVM范围的配置传递给JSSE实现. 默认值为-Djdk.tls.ephemeralDHKeySize=2048 ,可防止Diffie-Hellman密钥太弱. (市场)
  • 固定: 在Java 7上运行时,由于JSSE连接器的默认密码列表中不含DHE密码,因为它们使用768位DH弱密钥,并且无法配置为使用更多安全密钥. (市场)
  • Fix: 58970: Fix a connection counting bug in the NIO connector that meant some dropped connections were not removed from the current connection count. (markt)
  • Fix: 59289: Do not recycle upgrade processors in unexpected close situations. (remm)
  • 固定: 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,以允许框架更轻松地将请求分发到WebSocket端点. (紫罗兰色)
  • 固定: 修复由连接器重构引起的回归,并确保在服务器上处理WebSocket消息时将线程上下文类加载器设置为Web应用程序类加载器. (市场)
  • 固定: 确保客户端断开连接触发了相关WebSocket端点的错误处理. (市场)
  • 加: 在关闭WebSocket会话期间处理错误时,使WebSocket客户端更强大. (市场)

Web applications

  • 固定: 59210 :服务器推例子有使用oacatalina.connector.RequestFacade获得时oacatalina.core.ApplicationPushBuilder . 补丁由张虎星提供. (紫罗兰色)
  • 固定: 59218 :更正Jaspic How-To中jaspic-providers.xml的路径. 补丁由Tatsuya Bessho提供. (紫罗兰色)
  • 固定: 意外添加到主机管理器的"删除"按钮. 由科蒂·萨瑟兰(Coty Sutherland)提交. (雷姆)
  • Fix: Update in the documentation the link to the maven repository where Tomcat snapshot artifacts are deployed. (markt/violetagg)
  • 固定: 在调用ServletContext.log(String, Throwable)GenericServlet.log(String, Throwable)的文档中进行澄清,以SEVERE级别记录. (紫罗兰色)
  • 固定: 更正SSL / TLS配置方法中的错字. 通过comment.apache.org报告的问题. (紫罗兰色)

Tribes

  • 固定: 当代理节点无法检索备份条目时,请避免使用NPE. (kfujino)
  • 加: 收到意外消息时添加日志. (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

  • 固定: 59209 :删除honorCipherOrder=false从server.xml中连接器实例属性. 取消注释该块时,连接器将为此属性使用默认值false . 如果需要启用它,则可以将其显式添加到连接器定义中. 使用此功能需要Java 8或更高版本. 补丁由张虎星提供. (紫罗兰色)
  • 固定: 59211 :将hamcrest添加到Eclipse类路径. 补丁由张虎星提供. (紫罗兰色)
  • 更新: 59280 :将用于构建Windows Installers的NSIS安装程序更新为版本2.51. (kkolinko)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.7,以获取基于OpenSSL 1.0.2h和APR 1.5.2的Windows二进制文件. (市场)

2016-03-24 Tomcat 8.5.0 (markt)

General

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

Catalina

  • 更新: 默认的HTTP cookie解析器已更改为org.apache.tomcat.util.http.Rfc6265CookieProcessor . (市场)
  • 码: 重构创造MapperListener以确保Mapper采用的是Mapper与相关Service为其创建监听器. (市场)
  • 加: 移动为上下文根和目录提供重定向的功能,其中将尾随/从映射器添加到DefaultServlet . 这样,在进行重定向之前,任何配置的Valves和Filters都可以处理此类请求. 可以通过Context的mapperContextRootRedirectEnabledmapperDirectoryRedirectEnabled属性来配置此行为, mapperDirectoryRedirectEnabled属性可用于还原以前的行为. (市场)
  • 码: 重构Service.getContainer()以返回Engine而不是Container . (市场)
  • 固定: 34319StoreBase.processExpire JDBCStore加载StoreBase.processExpire中足够旧的键以使其过期. 基于Tom Anderson的补丁. (fschumacher)
  • 加: 58351 :使服务器构建日期和服务器版本号可通过JMX访问. 张虎星提供的补丁. (市场)
  • 加: 56917 :根据RFC7231(HTTP / 1.1),允许HTTP / 1.1和更高版本的重定向使用相对URI. 这由Context上的新属性useRelativeRedirects控制,默认为true . (市场)
  • 固定: 58629 :当未配置Service Engine时,允许嵌入式Tomcat实例启动. (市场)
  • 固定: 如果该服务的引擎已更改,请正确通知与该服务关联的MapperListener. (市场)
  • 加: 通过上下文属性使Web应用程序的CredentialHandler可用. 这允许Web应用程序使用相同的算法从明文验证或生成新存储的凭据. (舒尔茨)
  • 固定: 58635 :使用Java代理运行Tomcat时,允许在代理代码中设置断点. 基于张虎星的补丁. (市场)
  • Fix: Fixed potential NPE in HostConfig while deploying an application. Issue reported by coverity scan. (violetagg)
  • 固定: 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 :如果客户端中止连接,请确保生成访问日志条目. (市场)
  • 固定: 修复了Findbugs报告的各种问题. (紫罗兰色)
  • 固定: 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)
  • 固定: 58768 :如果由于无效位置导致重定向失败,则记录警告. (市场)
  • 码: 58827 :删除JSR-77实施的其余部分. (市场)
  • 固定: 58836 :处理转发的请求时正确合并查询字符串参数,其中目标包括查询字符串,该查询字符串包含无值的参数. (市场/ kkolinko)
  • 固定: 确保在HostConfig.deployWAR()中发生不太可能的错误情况下重置共享Digester. (kkolinko)
  • 加: 扩展群集会话管理器实现中的可用功能,该功能使会话属性复制可以基于属性名称过滤到所有会话管理器实现中. 请注意,配置属性名称已从sessionAttributeFilter更改为sessionAttributeNameFilter . 在加载和卸载时应用筛选器,以确保将Web应用程序停止时所做的配置更改应用于所有持久数据. (市场)
  • 加: 扩展会话属性过滤选项,以包括基于值的实现类的过滤和可选的WARN级别日志记录(如果已过滤属性). 这些选项可用于Tomcat附带的所有Manager实现. 使用SecurityManager ,默认情况下将启用过滤. (市场)
  • 码: 由于从不使用属性, maxInactiveIntervalManager界面中删除distributablemaxInactiveInterval . Context的等效属性始终优先. (市场)
  • Fix: 58867: Improve checking on Host start for WAR files that have been modified while Tomcat has stopped and re-expand them if unpackWARs is true. (markt)
  • 固定: 58900 :正确取消部署符号链接的资源,并防止无限期的部署/取消部署周期. (市场)
  • 固定: 与SecurityManager一起运行时,保护ResourceLinkFactory初始化. (kkolinko)
  • 固定: 根据值对象的实现类名称,纠正会话属性过滤中的线程安全问题. (市场)
  • 固定: 将类加载器决策固定在类加载和资源查找的委托上,并使其更快. (荣)
  • 固定: 58905 :确保Tomcat.silence()使正确的记录器Tomcat.silence()并遵守当前设置. (市场)
  • Fix: 58946: Ensure that the request parameter map remains immutable when processing via a RequestDispatcher. (markt)
  • 固定: 确保/WEB-INF/classes绝不作为Web片段处理. (市场)
  • 更新: 安装本机时切换默认连接器. 除非另行配置,否则默认情况下将使用NIO端点. 如果配置了SSL,将使用OpenSSL而不是JSSE. (雷姆)
  • 固定: 修正58867的修正中的回归. 当配置上下文以将外部目录用于docBase ,并且该目录恰好位于原始WAR的旁边,请将该目录用作docBase而不是将WAR扩展到appBase并使用新创建的扩展目录作为docBase . (市场)
  • 加: 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. (雷姆)
  • 固定: 59151 :修复了针对56917的修订中的回归问题,该回归将其他(可能是不必要的)验证添加到了提供的重定向位置. (市场)
  • Fix: 59154: Fix a NullPointerException in the JAASMemoryLoginModule resulting from the introduction of the CredentialHandler to Realms. (schultz/markt)

Coyote

  • 更新: 删除对HTTP BIO和AJP BIO连接器的支持. (市场)
  • Code: Refactor HTTP upgrade and AJP implementations to reduce duplication. (markt)
  • 加: 增加了对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支持. (市场)
  • 加: 添加对HTTP / 2的支持,包括服务器推送. (市场)
  • 固定: 58621 :不能使用主证书属性设置证书链,因此请还原证书链属性. (雷姆)
  • 固定: 允许连接器可以使用JSSE或OpenSSL的新SSL配置类型. 两者都可以允许,但可能会造成支持问题. NSSL的OpenSSL实现使用此类型. (雷姆)
  • 固定: 通过使用Context.bind和unbind改进升级上下文类加载器的处理. (雷姆)
  • 加: 通过使用JSSE实现中的代码来改进OpenSSL密钥库/信任库配置. (雷姆,jfclere)
  • 固定: 修复客户端意外断开连接时的潜在循环. (市场)
  • Add: OpenSSL renegotiation support for client certificate authentication. (remm)
  • 固定: 修复NIO连接器重新协商. (雷姆)
  • 固定: 58659 :修复了连接窗口大小受限制的HTTP / 2处理期间的潜在死锁. (市场)
  • 固定: 列出启用TLS的APR /本机连接器的启用密码(例如,通过Manager Web应用程序)时,请更正NPE. (市场)
  • 加: AJP连接器的新配置选项ajpFlush禁用了AJP刷新数据包的发送. (荣)
  • 固定: 在NIO连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (市场)
  • 固定: 在NIO2连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (标记/毫米)
  • Fix: Bad processing of handshake errors in NIO2. (remm)
  • 固定: 将JSSE会话配置选项与OpenSSL一起使用. (雷姆)
  • 固定: 59015 :如果在关闭过程中Poller遇到错误,请修复关闭期间APR Poller循环不断的潜在原因. (市场)
  • 固定:kECDHEECDHE密码别名与当前的OpenSSL实现对齐. (市场)
  • 固定: 59081 :定义密码时,请保留用户定义的密码顺序. (市场)
  • 固定: 59089 :正确忽略标题名称中包含非令牌字符的HTTP标题. (市场)

Jasper

  • 固定: 57136#c25 :将Jasper中的quoteAttributeEL设置的默认值更改为true以更好地与其他实现和Tomcat的较旧版本兼容. 在JspC中添加命令行选项-no-quoteAttributeEL quoteAttributeEL. (kkolinko)
  • 固定: 修复org.apache.el.util.MessageFactory中丢失消息的处理. (紫罗兰色)
  • 更新: 更新到Eclipse JDT Compiler 4.5.1. (市场)
  • 固定: 57583 :解决不存在的属性时,提高javax.servlet.jsp.el.ScopedAttributeELResolver的性能. 仅当Jasper与Tomcat的EL实现一起使用时,此改进才有效. (市场)

Cluster

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

WebSocket

  • 加: 55006 :现在,WebSocket客户端在建立与服务器的WebSocket连接时将使用java.net.java.net.ProxySelector配置(使用HTTP类型). 基于Niki Dokovski的补丁. (市场)
  • 固定: 57489 :确保即使关闭消息发送失败,在关闭WebSocket连接时也会调用onClose() . 包括Barry Coughlan的测试用例. (市场)
  • 固定: 58624 :如果在编写消息时关闭了WebSocket连接,请更正潜在的死锁. (市场)
  • 固定: 修复了会话关闭上的计时问题,该问题可能导致即使消息已完成也为不完整的消息引发异常. (市场)
  • 固定: 当最终消息片段的长度为零时,正确处理部分消息的压缩. (市场)
  • 固定: 59119 :使用安全连接时,更正WebSocket客户端的读取逻辑. (市场)
  • 固定: 59134 :对于通过代理建立的安全连接,正确的客户端连接逻辑. (市场)

Web applications

  • 固定: 48674 :在主机管理器Web应用程序中实施一个选项以保留当前配置. 基于Coty Sutherland的补丁. (市场)
  • 固定: 58631 :更正文档Web应用程序的Windows Service How-To页面中的继续字符使用. (市场)
  • 固定: 更正SSL文档中已弃用的属性,以指向与各个证书相关的属性的正确的新位置. (市场)
  • Fix: Correct some typos in the JNDI resources How-To. (markt)
  • 固定: 不要在Manager应用程序中不必要地创建会话. (市场)
  • 固定: 不要在主机管理器应用程序中不必要地创建会话. (市场)
  • 固定: 58723 :澄清管理器的文本界面的文档和错误消息,以明确在引用使用并行部署部署的上下文时,版本必须与路径一起使用. (市场)
  • 加: 在BUILDING.txt中记录test.threads选项. (kkolinko)
  • 固定: 更正用于自动部署的预期行为的文档中的错误. 如果更新了WAR并且存在扩展目录,则在unpackWARstrue ,将通过扩展WAR来删除并重新创建unpackWARs . (市场)
  • 固定: 58935 :删除文档中关于在Manager应用程序中使用jar:file: URL的错误引用. (市场)
  • 固定: 更正Proxy How-To中ServletRequest.getServerPort()的描述. 通过comment.apache.org报告的问题. (紫罗兰色)
  • 加: 现在,默认情况下,只能通过localhost访问Manager和Host Manager应用程序. (市场)

Tribes

  • 固定: 明确处理"复制"消息和"复制"节点. (kfujino)
  • 固定: 即使已注册到删除可疑列表的静态成员已消失,也请确保将静态成员注册到添加可疑列表中. (kfujino)
  • 固定: 使用静态集群时,将已在成员资格服务中缓存的成员添加到地图成员列表中,以确保地图成员是静态成员. (kfujino)
  • 固定: 添加对静态集群中本地成员的启动通知的支持. (kfujino)
  • 固定: 忽略来自其他域的不必要的成员删除操作. (kfujino)
  • 固定: 添加对静态集群中本地成员的关闭通知的支持. (kfujino)
  • 固定: 如果在获取会话时将代理节点提升为主节点,则将新主节点的更改通知原始备份节点. (kfujino)

jdbc-pool

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

Other

  • 加: 允许使用构建属性test.name配置多个JUnit测试类模式,并在BUILDING.txt中记录该属性. (荣)
  • 加: 支持在Ant的junit任务上使用threads属性. 请注意,使用大于1的值将禁用Cobertura代码覆盖率. (市场)
  • 更新: 将可选的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和其他修复程序). (市场)
  • 固定: 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应用程序一起使用的条目. (市场)

by  ICOPY.SITE