Changelog

Tomcat 9.0.27 (markt)

Catalina

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

Coyote

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

Jasper

  • 更新: 更新到Eclipse JDT编译器4.13. (市场)
  • 固定: 添加GraalVM特定的ELResolver以尽可能避免在BeanElResolver中使用BeanInfo,因为它需要手动进行反射配置. (雷姆)
  • Fix: 63781: When performing various checks related to the visibility of classes, fields an methods in the EL implementation, also check that the containing modeul has been exported. (markt)

Web Socket

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

Web Applications

  • 文件: 添加基本​​的GraalVM文档. (雷姆)
  • 文件: 为通用注释API实现添加Javadoc. (市场)

jdbc-pool

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

Other

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

2019-09-19 Tomcat 9.0.26 (markt)

Other

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

not released Tomcat 9.0.25 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

  • 固定: 更正ROOT Web应用程序索引页上的源代码链接,使其指向Git而不是Subversion. (市场)
  • 固定: 修复了为文档Web应用程序生成的Javadoc的各种问题,以启用从Java 10开始构建的发行版本. (市场)
  • 固定: 63733 :删除了"其他组件"的文档,因为它们已被删除/合并到9.0.5及更高版本的核心Tomcat发行版中. (市场)
  • 固定: 63739 :更正Tomcat嵌入式发行版中包含的Tomcat提供的JAR的无效的Automatic-Module-Name清单条目. (市场)
  • 固定: 修复了大量的Javadoc和文档拼写错误. 康志东提供的补丁. (市场)
  • 固定: 群集的拼写和格式更正方法. Bill Mitchell提供的拉取请求. (市场)

Other

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

2019-08-17 Tomcat 9.0.24 (markt)

Coyote

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

not released Tomcat 9.0.23 (markt)

Catalina

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

Coyote

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

Cluster

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

Web applications

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

Other

  • 固定: JNDI支持GraalVM本机映像. (雷姆)
  • 固定: 对GraalVM本机映像的JSP运行时库支持. (雷姆)
  • 固定: GraalVM本机映像的java.util.logging配置. (雷姆)
  • 更新: 将Checkstyle更新为8.22. (市场)
  • 固定: 55969 :加强Windows安装程序创建的Apache Tomcat安装的安全性. 将Windows安装程序使用的默认关机端口从8005更改为-1 (禁用). 将对所选安装目录的访问限制为本地管理员,本地系统和本地服务. (市场)
  • Update: 62696: The digital signature for the Windows installer now uses SHA-256 for hashes. (markt)
  • 加: 63285 :在service.bat添加一个选项,以便在安装Windows服务时,可以更改Windows服务使用的可执行文件的名称以匹配该服务名称. 这使安装行为与Windows安装程序一致. 删除Windows服务后,将还原原始的可执行文件名称. 可以通过在服务名称之后使用新的--rename选项来启用重命名. (市场)
  • 更新: 63310 :更新到Commons Daemon 1.2.0. 这提供了对Java 11的改进支持.这还将Windows安装程序为Windows服务配置的用户从Local System更改为特权较低的Local Service . (市场)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 固定: 63555 :为Tomcat嵌入式发行版中包含的每个Tomcat提供的JAR添加" Automatic-Module-Name条目. (市场)
  • 固定: 63567 :恢复的传球$LOGGING_MANAGER到JVM中catalina.sh致电时stop . (市场)
  • 固定: 纠正JAR文件清单中损坏的OSGi数据. (市场)
  • 固定: 将" embed"添加到Tomcat嵌入式WebSocket JAR的Bundle-NameBundle-Symbolic-Name ,以使命名与其他嵌入式JAR对齐,并使之与不包含API类的标准WebSocket JAR区分. (市场)
  • 更新: 将对bnd的依赖关系更新为4.2.0. (市场)
  • 更新: 将Commons Codec的内部fork更新为3ebef4a(2018-08-01),以获取针对CODEC-134的修复程序. (市场)
  • 更新: 将Commons Pool2的内部fork更新为796e32d(2018-08-01),以获取对Commons Pool2 2.7.0的更改. (市场)
  • 更新: 将Commons DBCP2的内部fork更新为87d9e3a(2018-08-01)以获取对Commons DBCP2 2.7.0和DBCP-555的更改. (市场)
  • 更新: 63648 :更新测试套件中使用的测试TLS密钥和证书,以替换即将到期的密钥和证书. (市场)

2019-07-09 Tomcat 9.0.22 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Other

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

2019-06-07 Tomcat 9.0.21 (markt)

Catalina

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

Coyote

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

Cluster

  • 固定: 62841 :重构DeltaRequest序列化以减少DeltaSession锁定期间的窗口,并消除序列化过程中可能引起死锁的原因. (市场)
  • Fix: 63441: Further streamline the processing of session creation messages in the DeltaManager to reduce the possibility of a session update message being processed before the session has been created. (markt)

WebSocket

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

Web applications

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

Tribes

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

Other

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

2019-05-13 Tomcat 9.0.20 (markt)

Catalina

  • 固定: 修复一些未使用规范路径设置docBase的极端情况,这反过来又意味着未按预期构造资源URL. (市场)
  • 固定: 修复了从WAR文件执行CGI脚本时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了由Coverity扫描确定的StringCache中潜在的并发问题. (市场)
  • 固定: 修复了APR连接器的主Sendfile线程中的潜在并发问题. 由Coverity扫描识别. (市场)
  • 固定: 修复了从WAR文件运行Web应用程序时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了DataSourceRealm某些异常路径上的潜在资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了解析JSP文件时异常路径上潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了当JNDI查找返回兼容类的对象时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 码: 重构ManagerServlet以避免在为指定类型的资源过滤JNDI资源时加载类. (市场)
  • 固定: 63324 :重构CrawlerSessionManagerValve以使放置在会话中的对象与带有mem-cached的会话序列化兼容. Martin Lemanski提供的补丁. (市场)
  • 加: 63358 :在Connector扩展throwOnFailure支持,以包括向运行中的Service添加Connector . (市场)
  • 加: 63361 :添加新方法( Registry.disableRegistry() ),该方法可用于禁用Tomcat组件的JMX注册, 前提是在注册第一个组件之前调用该方法. (市场)
  • 固定: 当禁用资源缓存时,通过默认servlet访问大文件时,请避免使用OutOfMemoryErrorArrayIndexOutOfBoundsException . (市场)
  • 固定: 如果在server.xml使用docBase而不是可选path定义了Contextserver.xml避免NullPointerException . (市场)
  • 固定: 63333 :重写isAvailable()中所述方法JAASRealm所以造成无效凭证仅登录失败触发帐户锁定出当LockOutRealm正在使用中. jchobantonov提供的补丁. (市场)
  • 固定: 添加--no-jmx标志以允许在startup.Tomcat.main禁用JMX. (雷姆)

Coyote

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

Jasper

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

Other

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

2019-04-13 Tomcat 9.0.19 (markt)

Catalina

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

Coyote

  • 更新: 在基本和SSL通道中为NIO添加矢量. (雷姆)
  • 加: 将异步IO从NIO2添加到NIO连接器,并支持HTTP / 2和Websocket的异步IO实现. Connector元素上的useAsyncIO布尔值属性允许启用异步IO API的使用. (雷姆)

Other

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

not released Tomcat 9.0.18 (markt)

Catalina

  • 固定: 63196 :为RemoteIpFilterRemoteIpValveprotocolHeader属性提供默认值( X-Forwarded-Proto ). (市场)
  • Fix: 63235: Refactor Charset cache to reduce start time. (markt)
  • 固定: 63249 :在记录注册或注销JMX Bean的失败时,请使用一致的日志级别( WARN ). (市场)
  • 固定: 63249 :在记录与启动或停止组件失败相关的LifecycleException时,请使用一致的日志级别( ERROR ). (市场)
  • 固定: 当SSI指令fsize与无效目标一起使用时,返回文件大小-而不是1k . (市场)
  • 固定: 63251 :为已知的JRE错误( JDK-8194653 )实现一种变通方法,该错误可能在Tomcat启动时导致死锁. (市场)
  • 固定: 63275 :使用RequestDispatcher确保HttpServletRequest.getContextPath()返回已调度请求中的编码路径. (市场)
  • 更新: 添加服务器/侦听器的可选侦听器,作为标准侦听器的细微变化. 区别在于,加载失败时不会致命. 如果认为有用,则可以将示例配置添加到标准server.xml中. Storeconfig将不会尝试保留新的侦听器. (雷姆)
  • 固定: 63286 :记录%D%T httpd中LogFormat指令与AccessLogValvepattern属性之间的行为差​​异. (市场)
  • 固定: 63287 :对于具有类似严重性的类似问题,使日志记录级别更加一致. (市场)
  • 固定: 63311 :将Tomcat配置为验证XML配置文件(例如web.xml)时,将对https URL的支持添加到Tomcat中的本地解析器,该解析器用于解析标准XML DTD和模式. (市场)
  • Fix: Encode the output of the SSI printenv command. This is the fix for CVE-2019-0221. (markt)
  • 码: 将常量用于SSI编码值. (市场)
  • 加: 当CGI Servlet的enableCmdLineArguments设置为true时,将各个命令行参数的编码形式限制为RFC 3875允许的值.可以通过使用新的初始化参数cmdLineArgumentsEncoded来放宽此限制. (市场)
  • 加: 当将CGI Servlet配置为enableCmdLineArguments设置为true时,在Windows上运行时,将各个命令行参数的解码形式限制为已知的安全值. 通过使用新的初始化参数cmdLineArgumentsDecoded可以放宽此限制. 这是CVE-2019-0232的修复程序. (市场)

Coyote

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

Jasper

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

Web applications

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

jdbc-pool

  • 固定: 改进了maxAge处理. 添加对年龄检查空闲连接的支持. 过期的连接将重新连接而不是关闭它. toby1984提供的补丁. (kfujino)
  • 固定: 63320 :确保StatementCache缓存在参数中包含数组的语句. (kfujino)

Other

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

2019-03-18 Tomcat 9.0.17 (markt)

Catalina

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

Coyote

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

2019-02-08 Tomcat 9.0.16 (markt)

Web applications

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

Tribes

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

Other

  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.04版. (市场)
  • 加: 将捷克语翻译添加到Apache Tomcat. 包括ArnoštHavelka和Alice的贡献. (市场)
  • Add: Expand the coverage and quality of the Spanish translations provided with Apache Tomcat. Includes contributions from Ulises Gonzalez Horta. (markt)
  • 加: 扩展Apache Tomcat随附的法语翻译的覆盖范围和质量. (雷姆)
  • 加: 扩展Apache Tomcat随附的韩语翻译的覆盖范围和质量. (元山)
  • 加: 扩展Apache Tomcat随附的日语翻译的覆盖范围和质量. 包括Yujiorama的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的中文翻译的覆盖范围和质量. 包括郑的贡献. (市场)
  • 加: 扩展Apache Tomcat随附的俄语翻译的覆盖范围和质量. (kkolinko)

not released Tomcat 9.0.15 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

  • Fix: 63103: Remove the unused source.jsp file and associated tag from the examples web application as it is no longer used. (markt)

Tribes

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

Other

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

2018-12-12 Tomcat 9.0.14 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

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

Tribes

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

Other

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

2018-11-07 Tomcat 9.0.13 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

2018-09-10 Tomcat 9.0.12 (markt)

Catalina

  • 固定: 使用RequestDispatcher对象时,改进对路径参数的处理. (市场)
  • 固定: 62664 :将内容类型为multipart/form-data请求multipart/form-data为带有@MultipartConfig批注的servlet,而与HTTP方法无关. (市场)
  • 固定: 62667 :添加递归以重写替换解析. (雷姆)
  • Fix: 62669: When using the SSIFilter and a resource does not specify a content type, do not force the content type to application/x-octet-stream. (markt)
  • 固定: 62670 :调整DriverManager的内存泄漏保护,以便启用保护后,通过服务加载程序机制加载$CATALINA_HOME/lib$CATALINA_BASE/lib中的JDBC驱动程序. (市场)
  • 固定: 在默认Servlet中生成到目录的重定向时,请避免生成协议相对重定向. (市场)

Coyote

  • Fix: Fix potential deadlocks when using asynchronous Servlet processing with HTTP/2 connectors. (markt)
  • 固定: 62620 :修复了通过HTTP / 2使用异步处理编写大型正文时响应正文的损坏. (市场)
  • Fix: 62628: Additional fixes for output corruption of response bodies when writing large bodies using asynchronous processing over HTTP/2. (markt)
  • 码: org.apache.tomcat.jni软件包中对Netware的支持已被删除,因为多年以来一直没有受支持的Netware平台. (市场)

Jasper

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

Web applications

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

Other

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

2018-08-17 Tomcat 9.0.11 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

  • 固定: 确保将指定的rxBufSize正确设置为接收器缓冲区大小. (kfujino)
  • 固定: 更正通道组件的停止顺序. 它以与启动时相反的顺序停止. (kfujino)
  • 加: 添加了新的StaticMembership实现. 此实现不需要其他ChannelInterceptors任何其他配置. 它仅适用于会员服务. (kfujino)

Other

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

2018-06-25 Tomcat 9.0.10 (markt)

Catalina

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

not released Tomcat 9.0.9 (markt)

Catalina

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

Coyote

  • 固定: 更正错误页面处理中的回归,该回归阻止了错误页面发出重定向或采取其他需要更改响应状态代码的操作. (市场)
  • 固定: NIO2 SSL的一致异常传播关闭. (雷姆)
  • 固定: NIO2异步IO的后续同步修复程序阻止了读/写. (雷姆)
  • 固定: 如果AJP连接器检测到反向代理正在发送的AJP消息对于配置的packetSize太大,则记录一条错误消息. (市场)
  • 固定: 通过取消FQDN的最后部分必须为字母的要求来放宽主机验证. (市场)
  • 固定: 62371 :改进了对主机验证失败的记录. (市场)
  • 固定: 在关闭APR /本机连接器时,修复了一些不太可能的边缘情况. (市场)
  • Fix: Add missing handshake timeout for NIO2. (remm)
  • 固定: 用户名包含转义字符时,请正确处理摘要授权标头. (市场)
  • 固定: 当十六进制字段值之一以无效字符结尾标头时,正确处理摘要授权标头. (市场)
  • 固定: 正确处理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 /市场)
  • 固定: 从Tomcat 9中启用JspC,使其可以与为Tomcat 8.5.x编写的Maven JspC编译器插件一起使用. Pavel Cibulka提供的补丁. (市场)
  • 固定: 更新由JspC生成的web.xml,web-fragment.xml和web.xml提取,以使用相关模式的Servlet 4.0版本. (市场)

Cluster

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

WebSocket

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

Web applications

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

Tribes

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

jdbc-pool

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

Other

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

2018-05-03 Tomcat 9.0.8 (markt)

Catalina

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

Coyote

  • 固定: 纠正线程池中的"一对一"错误,该错误使线程池的大小增加到比配置的限制大一倍. usc提供的补丁. (市场)
  • 固定: 防止将NIO或NIO2连接器与OpenSSLImplementation一起使用时,由于前一次握手期间的错误而导致的意外TLS握手失败,而该错误没有正确清理. (市场)
  • Add: 62273: Implement configuration options to work-around specification non-compliant user agents (including all the major browsers) that do not correctly %nn encode URI paths and query strings as required by RFC 7230 and RFC 3986. (markt)
  • 固定: 修复NIO2异步IO阻止读取/写入的同步. (雷姆)

Jasper

  • 更新: 将Eclipse Java编译器更新为4.7.3a. (市场)
  • 更新: 允许使用9将Java 9指定为JSP编译的编译器源和/或编译器目标. 仍支持1.9的抢先体验值. (市场)
  • 加: 添加对将Java 10(值为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 9.0.7 (markt)

Catalina

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

Coyote

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

Web applications

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

Tribes

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

jdbc-pool

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

Other

  • 更新: 更新构建脚本,以便不再根据ASF分发策略中的更改为发行版生成MD5哈希. (市场)
  • 固定: 62164 :将构建脚本切换为使用TLS从SourceForge和Maven Central下载,以避免由于HTTP到HTTPS重定向而导致失败. (市场)
  • Add: Always report the OS's umask when launching the JVM. (schultz)
  • 加: 将托管连接软件包添加到重命名为DBCP 2的软件包中,以在Tomcat中提供完整的DBCP 2. (雷姆)

2018-03-08 Tomcat 9.0.6 (markt)

Catalina

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

Coyote

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

Web applications

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

2018-02-11 Tomcat 9.0.5 (markt)

Catalina

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

Coyote

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

Jasper

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

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

  • Update: Update the list with the public interfaces in the RELEASE-NOTES. (violetagg)
  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.03版. (kkolinko)

2018-01-22 Tomcat 9.0.4 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

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

not released Tomcat 9.0.3 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

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

jdbc-pool

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

Other

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

2017-11-30 Tomcat 9.0.2 (markt)

Catalina

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

Coyote

  • 固定: 61568 :使用NIO2连接器并将新线程添加到池时,避免潜在的SecurityException . (市场)
  • Fix: 61583: Correct a further regression in the fix to enable the use of Java key stores that contained multiple keys that did not all have the same password. This fixes PKCS11 key store handling with multiple keys selected with an alias. (markt)
  • 固定: 改进NIO2同步以实现异步IO操作. (雷姆)
  • 加: Sendfile支持HTTP / 2和NIO2. (雷姆)
  • 固定: 将连接内的默认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 :更正了Hpack标头索引验证中的一位错误,该错误导致使用HTTP / 2时间歇性的请求失败. (市场)

Jasper

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

WebSocket

  • Fix: 61604: Add support for authentication in the websocket client. Patch submitted by J Fernandez. (remm)

Web applications

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

Tribes

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

Other

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

2017-09-30 Tomcat 9.0.1 (markt)

Catalina

  • 固定: 加载Java 9的JVM logging.properties文件时,请使用正确的路径.(rjung)
  • 固定: 向在Windows上修复CVE-2017-12617所需的资源处理中添加其他验证. 这些检查是在其他地方执行的,但是将它们添加到资源处理中可确保始终执行检查. (市场)

Other

  • Fix: 61563: Correct typos in Spanish translation. Patch provided by Gonzalo Vásquez. (csutherl)

not released Tomcat 9.0.0 (markt)

Catalina

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

Coyote

  • 加: 60762 :添加了在运行时更改连接器TLS配置的功能,而无需重新启动连接器. (市场)
  • 加: 添加一个选项以拒绝包含HTTP头的请求,这些请求的HTTP头具有无效的(非令牌)头名称,并且响应为400,并且默认情况下拒绝此类请求. (市场)
  • 固定: 实施RFC 7230(和RFC 2616)的要求,即HTTP / 1.1请求必须包含Host标头,并且必须以400响应拒绝任何不被拒绝的请求. (市场)
  • 固定: 实施RFC 7230的要求,即在请求行中指定主机的任何HTTP / 1.1请求都必须在Host标头中指定相同的主机,并且必须以400响应拒绝任何未请求的此类请求. 此检查是可选的,但默认情况下启用. 可以使用连接器的allowHostHeaderMismatch属性禁用它. (市场)
  • 固定: 实施RFC 7230的要求,即通过400响应拒绝包含多个Host标头的任何HTTP / 1.1请求. (市场)
  • 更新: 添加一种在嵌入式模式下设置属性源的方法. (雷姆)
  • 固定: 61557 :更正了该修补程序中的进一步回归问题,以启用Java密钥库的使用,该Java密钥库包含多个并非都具有相同密码的密钥. 回归破坏了对某些FIPS兼容密钥存储的支持. (市场)

jdbc-pool

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

Other

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

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

Catalina

  • 固定:ErrorReportValve生成错误页面之前,请在生成错误页面之前检查关联的连接是否仍允许I / O,以便在永远不发送页面的情况下可以跳过页面生成. (市场)
  • 加: 61189 :添加了为单个CGI脚本设置环境变量的功能. 基于jm009的补丁. (市场)
  • 固定: 61210 :在SecurityManager下运行时,请勿在该配置文件不存在时打印关于无法读取日志配置文件的警告. (市场)
  • 加: 61280 :将RFC 7617支持添加到BasicAuthenticator . 请注意,默认配置不会更改现有行为. (市场)
  • 固定: 61424 :在SecurityManager下运行并使用Subject.doAs()时,避免可能的StackOverflowError . (市场)
  • 加: 在Java 9或更高版本下运行时,并且启用了JreMemoryLeakPreventionListenerurlCacheProtection选项,请使用Java 9中添加的API仅禁用JAR URL连接的缓存. (市场)
  • 加: 61489 :使用CGI servlet时,使从查询字符串生成的命令行参数(按照RFC 3875的4.4节)是可选的,并且默认情况下被禁用. 基于jm009的补丁. (市场)
  • Fix: 61503: This corrects a potential regression in the fix for 60940 with an alternative solution that adds the JarEntry objects normally skipped by a JarInputStream only if those entries exist. (markt)

Coyote

  • 更新: 最低要求的Tomcat Native版本已增加到1.2.14. 此版本包括一个新的API,在将Java连接器与OpenSSL TLS实现配合使用时,正确的客户端证书支持将需要该API,并支持SSL_CONF OpenSSL API. (荣)
  • 加: SSL_CONF使用TLS和OpenSSL实现时,添加对OpenSSL SSL_CONF API的支持. 可以通过在SSLHostConfig下添加OpenSSLConf元素来使用它. 新元素包含OpenSSLConfCmd元素的列表,每个元素具有属性namevalue . (荣)
  • 固定: 当将Java连接器与OpenSSL TLS实现结合使用时,请勿通过OpenSSLEngine配置每个SSL连接对象. 对于OpenSSL,SSL对象从我们已经配置的SSL_CTX继承其设置. (荣)
  • 固定: 将JSSE TLS配置与OpenSSL实现和客户端证书一起使用时:在TLS握手中包含客户端CA主题,以便客户端可以选择要显示的适当客户端证书. (荣)
  • 固定: 如果为SSLHostConfig元素的certificateVerification属性指定了无效的选项,则除了报告配置错误外, SSLHostConfig根据required将其视为最安全/限制性最大的选项. (市场)
  • 固定: 改进TLS重新协商握手期间客户端断开连接的处理. (市场)
  • 固定: 防止在正常关闭NIO连接期间引发异常. 这样可以使TLS连接完全关闭. (市场)
  • 固定: 修复在升级的连接上设置IO侦听器时可能出现的竞争状况. (雷姆)
  • 固定: 确保APR /本机连接器将阻止I / O用于TLS重新协商. (市场)
  • 固定: 48655 :使用sendfile,APR / native连接器和多部分下载时,允许Tomcat彻底关闭. (市场)
  • 固定: 58244 :处理OpenSSL使用票证恢复TLS会话而完整的客户端证书链不可用的情况. 在这种情况下,没有链的客户证书将显示给应用程序. (市场)
  • 固定: 当在同一SSLHostConfig上混合使用JSSE和OpenSSL配置样式时,请改进警告消息. (市场)
  • 固定: 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)
  • Fix: Correct the backup node selection logic that node 0 is returned twice consecutively. (kfujino)
  • 固定:RpcChannel修复responseMap竞争条件. (kfujino)

jdbc-pool

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

Other

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

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

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

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

Catalina

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

Web applications

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

Other

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

not released Tomcat 9.0.0.M24 (markt)

Catalina

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

Coyote

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

Jasper

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

Other

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

not released Tomcat 9.0.0.M23 (markt)

Catalina

  • 固定: 49464 :当文件编码与所需的响应编码不兼容时,改进默认Servlet对静态文件的处理. (市场)
  • 固定: 61214 :从上下文MBean描述中删除已删除的属性servlets . Alexis Hassler提供的补丁. (市场)
  • Fix: 61215: Correctly define addConnectorPort and invalidAuthenticationWhenDeny in the mbean-descriptors.xml file for the org.apache.catalina.valves package so that the attributes are accessible via JMX. (markt)
  • 固定: 61216 :当通过JMX代理Servlet进行查看时,改进了CompositeDataTabularData布局. Alexis Hassler提供的补丁. (市场)
  • 固定: 在安全管理器下运行时,FileHandler要求将附加的删除文件权限授予JULI. 清理日志文件的线程被标记为守护程序线程. (紫罗兰色)
  • 固定: 61229 :更正9.0.0.M21中的回归,该回归破坏了WebDAV对名称中包含&字符的资源的处理. (市场)

Coyote

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

Jasper

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

Web applications

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

Tribes

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

Other

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

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

Catalina

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

Coyote

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

Jasper

  • 固定: 44787 :改进了JSP编译器配置选项无效时的错误消息. (市场)
  • 加: 45931 :扩展Jasper的timeSpaces选项以添加对single支持,该支持使用一个空格字符替换完全由空格组成的模板文本. 基于Meetesh Karia的补丁. (市场)
  • 固定: 53011 :使用JspC进行预编译时,报告所有编译错误,而不是在出现第一个错误之后停止. 可以使用新选项-failFast来恢复先前的行为,即在出现第一个错误后停止. 基于Marc Pompl提供的补丁. (市场)
  • Fix: 61137: j.s.jsp.tagext.TagLibraryInfo#uri and j.s.jsp.tagext.TagLibraryInfo#prefix fields should not be final. Patch provided by Katya Todorova. (violetagg)

WebSocket

  • 固定: 当用于PongMessageMessageHandler未实现MessageHandler.Whole时,更正日志消息. (荣)
  • 固定: 提高用于报告WebSocket消息发送结果的Future的线程安全性. (市场)
  • 固定: 61183 :更正了先前修订中的58624回归,该回归可能会触发死锁,具体取决于客户端代码采用的锁定策略. (市场)

Web applications

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

Other

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

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

General

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

Catalina

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

Coyote

  • 固定: 如果配置了不支持certificateVerificationDepthTrustManager ,则仅在显式设置certificateVerificationDepth时记录有关缺少支持的警告. (市场)
  • 固定: 60970 :扩展了对大标头的推送请求的修复. (市场)
  • 固定: HTTP / 2响应中的状态代码小于200时,请勿包含Date标头.(标记)
  • 固定: 当使用NIO2连接器发送HTTP / 2推送承诺时,推送的流ID仅应包含在初始的推送承诺帧中,而不应包含任何后续的继续帧. (市场)

Jasper

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

WebSocket

  • 加: 引入新的API oatomcat.websocket.WsSession#suspend / oatomcat.websocket.WsSession#resume ,可用于挂起/恢复对传入消息的读取. (紫罗兰色)
  • Fix: 61003: Ensure the flags for reading/writing in o.a.t.websocket.AsyncChannelWrapperSecure are correctly reset even if some exceptions occurred during processing. (markt/violetagg)

Web Applications

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

Tribes

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

Other

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

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

Catalina

  • 更新: 更新Servlet 4.0 API实现,以反映方法名称从getPushBuilder()newPushBuilder()的更改. (市场)
  • 固定: 在新的HTTP Host标头验证解析器中更正各种边缘情况. 由Katya Todorova提供的补丁. (马丁)
  • Fix: Correct a regression in the X to comma refactoring that broke JMX operations that take parameters. (markt)
  • 固定: 在读取未启用TLS的正在运行的HTTP连接器的属性时,请避免NullPointerException . (市场)
  • 固定: 47214 :重构代码,以便为明确引用的内部类提供明确的名称,而不是匿名的. (市场)
  • 固定: 59825 :记录一条消息,该消息列出处理链中调用ServletRequest.startAsync()失败时不支持异步处理的组件. (市场)
  • 固定: 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

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

Tribes

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

jdbc-pool

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

Other

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

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

Catalina

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

Coyote

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

Jasper

  • 固定: 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 9.0.0.M18 (markt)

Catalina

  • 固定: 60469 :重构RealmBase以便在实现使用自定义Principal Realms时更好地重用代码. (市场)
  • 固定: 60490 :各种格式和布局的改进为ErrorReportValve . 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60573 :发送100响应状态时,请删除原因短语,以与其他响应状态行保持一致. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 更新: 60596 :在连接器上禁用sendfile功能时,提高DefaultServlet的性能. (kkolinko)
  • 码: 通过getDefaultWebXmlListener()使Tomcat子类更容易修改默认的web.xml设置. 亚伦·安德森(Aaron Anderson)提供的补丁. (市场)
  • 固定: 当多个线程正在管理对象并且需要引用注释缓存时,减少默认InstanceManager实现中的争用. (市场)
  • Fix: 60623: When startStopThreads is 1 (or a special value that is equivalent to 1) then rather than using an ExecutorService to start the children of the current component, the children will be started on the current thread. (markt)
  • 码: 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)提供的补丁. (紫罗兰色)
  • Fix: The default JASPIC AuthConfigFactory now correctly notifies registered RegistrationListeners when a new AuthConfigProvider is registered. (markt)
  • 码: 没有可用的JASPIC配置时,提高AuthenticatorBase的性能. (紫罗兰色)
  • 固定: 当在连接器上禁用HTTP TRACE请求时,请确保来自WebDAV servlet的HTTP OPTIONS响应在返回的Allow标头中不包括TRACE. (市场)
  • 固定: 60722 :在为由AsyncContext.dispatch()触发的调度生成路径时,请考虑当前Context上的dispatchersUseEncodedPaths设置. (市场)
  • 固定: 60728 :使Tomcat在Tomcat特定的war:file:...使用分隔符,可通过系统属性自定义URL协议. 分隔符等效于使用! jar:file:... URL中的字符. *的默认分隔符保持不变. (市场)
  • 更新: 更新Servlet 4.0 API实现,使其与Servlet 4.0专家组的最新建议保持一致. 这包括对新Servlet映射API的更新, ServletContext上的使可用API更等同于部署描述符的新方法,对HTTP push API的更新以及为每个Web应用程序设置默认请求和响应字符编码的能力. 请注意,Servlet 4.0 API仍在开发中,并且可能会进行进一步的更改. (市场)
  • 固定: 60798 :更正了未打包的 WAR中对JAR的处理中的一个错误,该错误意味着多次连续尝试从JAR读取同一条目的尝试将在第二次和后续尝试中失败. (市场)
  • 固定: 60808 :确保ServletRequest.getParameterMap()返回的Map完全不可变. 基于woosan提供的补丁. (市场)
  • 固定: 60824 :在SecurityManager下运行时,如果有会话,则在会话中正确缓存Subject . Jan Engehausen提供的补丁. (市场)
  • Fix: Ensure request and response facades are used when firing application listeners. (markt/remm)

Coyote

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

Jasper

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

Cluster

  • 加: 使accessTimeoutBackupManagerClusterSingleSignOn配置. accessTimeout用作复制映射中PING的超时时间. (kfujino)
  • Fix: 60806: To avoid ClassNotFoundException, make sure that the web application class loader is passed to ReplicatedContext. (kfujino)

WebSocket

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

Tribes

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

Web Applications

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

Other

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

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

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

jdbc-pool

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

Other

  • 更新: 将用于构建Windows安装程序的NSIS安装程序更新为3.01版. (市场)
  • 固定: Josh Soref提供的拼写更正. (紫罗兰色)

not released Tomcat 9.0.0.M16 (markt)

Catalina

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

Coyote

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

Jasper

  • 更新: 实现一个更简单的JSP文件编码检测器,该检测器将XML序言编码检测委托给JRE,而不是使用自定义XML解析器. (市场)
  • 固定: 60497 :使用try / finally后,恢复以前的标签重用行为. (雷姆)
  • Fix: Improve the error handling for simple tags to ensure that the tag is released and destroyed once used. (remm)

WebSocket

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

Web Applications

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

Other

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

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

Other

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

not released Tomcat 9.0.0.M14 (markt)

Catalina

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

Jasper

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

Web applications

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

Tribes

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

WebSocket

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

jdbc-pool

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

Other

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

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

Coyote

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

not released Tomcat 9.0.0.M12 (markt)

Catalina

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

Coyote

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

Jasper

  • Update: Update to the Eclipse JDT Compiler 4.6.1. (markt)

Web applications

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

Tribes

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

Other

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

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

Catalina

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

Coyote

  • 加: 重构实现以下要求的代码:必须先延迟从非容器线程对complete()dispatch()的调用,然后再调用容器启动的线程,该调用必须完成,而容器启动的线程必须调用startAsync()完成. 而不是通过阻塞非容器线程来实现此目的,而是扩展内部状态机来跟踪此情况. 这消除了阻塞非容器线程可能触发死锁的可能性. (市场)
  • 固定: 如果客户端在SNI处理期间关闭连接,则会更早失败. (市场)
  • 固定: 60123 :避免潜在的线程问题,该问题可能导致在当前请求的处理时间内返回过大的值. (市场)
  • 固定: 60174 :的Log实例HeadersTooLargeException请求处理过程中. (市场)
  • 固定: 60173 :最多允许64kB HTTP / 2标头表大小限制. (雷姆)
  • 固定: 直接ByteBuffer清理程序的Java 9兼容性. (雷姆)

Jasper

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

Web applications

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

jdbc-pool

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

Other

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

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

Catalina

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

Coyote

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

Jasper

  • Fix: When writing out a full web.xml file with JspC ensure that the encoding used in the XML prolog matches the encoding used to write the contents of the file. (markt)
  • 固定: 改进自定义标记的错误处理,以确保将标记返回到池中或在使用后释放并销毁. (市场)
  • 固定: 60032 :修复了在EL值表达式中使用varargs的方法调用的处理. (市场)
  • Fix: Ignore engineOptionsClass and scratchdir when running under a security manager. (markt)
  • 固定: 修复了StringIndexOutOfBoundsException. 基于wuwen通过Github提供的补丁. (紫罗兰色)

WebSocket

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

Web applications

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

jdbc-pool

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

Other

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

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

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web Applications

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

Tribes

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

jdbc-pool

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

Other

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

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

Coyote

  • Fix: Remove accidentally committed debug code. (markt)

not released Tomcat 9.0.0.M7 (markt)

Catalina

  • 固定: RMI Target相关的内存泄漏是可以避免的,这使它们成为需要修复的应用程序错误,而不是JRE错误. 因此,在Web应用程序停止时开始记录与RMI目标相关的内存泄漏. 添加一个选项来控制是否检查这些泄漏. 如果在Java 9上运行且启用了此检查,但没有要求的命令行选项,则记录警告. (市场)
  • Fix: Ensure NPE will not be thrown during deployment when scanning jar files without MANIFEST.MF file. (violetagg)
  • 码:StandardContext删除clearReferencesStatic选项. 已知它会导致某些库(例如log4j)出现问题,并且仅链接到可疑的内存泄漏,而不是已知的内存泄漏. 默认情况下已禁用它,并且一段时间以来内存泄漏报告没有增加. (市场)
  • Fix: 59604: Correct the assumption made in the URL decoding that the default platform encoding is always compatible with utf-8. This assumption is not always valid, e.g. on z/OS. (markt)
  • 固定: 59608 :跳过JAR清单中的任何无效的Class-Path属性. 由于存在许多错误的库,因此在调试级别记录错误. (雷姆)
  • 固定: 无法注册MBean时修复错误消息. (kfujino)
  • 固定: 59655 :配置cookie名称验证,默认情况下使用RFC6265规则使其与默认cookie解析器对齐. 记录系统属性对cookie名称验证的影响. (标记)

Coyote

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

Jasper

  • 固定: 59567 :当爆炸的JAR包含一个空的WEB-INF / classes / META-INF文件夹时,修复NPE扫描webapps的TLD. (雷姆)
  • 固定: 修复了表达式语言实现中的内存泄漏,该漏洞导致第一个Web应用程序的类加载器使用表达式固定在内存中. (市场)
  • Fix: 59654: Improve error message when attempting to use a TLD file from an invalid location. Patch provided by Huxing Zhang. (markt)

WebSocket

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

Web applications

  • 固定: 58891 :更新SSL方法. 根据AlexanderKjäll的建议. (市场)

Extras

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

jdbc-pool

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

Other

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

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

Catalina

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

not released Tomcat 9.0.0.M5 (markt)

Catalina

  • 固定: 48922 :对Tomcat内部请求对象中的日期格式进行很小的性能改进. 基于Ondrej Medek提供的补丁. (市场)
  • 固定: 59206 :确保当未指定catalina.base时, oatomcat.util.file.ConfigFileLoader不会引发NPE. (紫罗兰色)
  • 固定: 59217 :在oatomcat.util.http.ServerCookie中的路径回收中删除重复oatomcat.util.http.ServerCookie . 补丁由中村京平提供. (紫罗兰色)
  • 固定: 修复了oacatalina.loader.WebappClassLoaderBase.getResourceAsStream (violetagg)中可能存在的NPE
  • 固定: 59213 :异步分派应基于包装的请求. (雷姆)
  • 固定: 确保javax.servlet.ServletRequestjavax.servlet.ServletResponse期间提供javax.servlet.AsyncListener登记经由提供javax.servlet.AsyncEvent.getSuppliedRequestjavax.servlet.AsyncEvent.getSuppliedResponse (violetagg)
  • 固定: 59219 :如果在异步处理期间引发Exception确保调用AsyncListener.onError() . (市场)
  • 固定: 59220 :如果异步请求超时并且响应已经提交,请确保调用AsyncListener.onComplete() . (市场)
  • 固定: 59226 :从JAR清单处理Class-Path 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中集群接收器的处理. bindhost属性定义为TransientAttribute . (kfujino)
  • 固定: 59261 :如果请求在调用时不是处于异步模式,则ServletRequest.getAsyncContext()现在将根据Servlet规范的要求引发IllegalStateException . (市场)
  • 固定: 59269 :更正PersistentManagerBase的实现,以便minIdleSwap函数按设计设计,并且换出会话以将活动会话数保持在maxActiveSessions以下. (市场)
  • 更新: 更新建议的Servlet 4.0 API的实现,以提供当前请求的映射类型信息,以反映EG中的讨论. (市场)
  • 固定: 正确配置扩展JAR文件提供的资源目录的基本路径. hengyunabc提供的补丁. (市场)
  • 加: 当有多种压缩格式可用并且客户端未表达首选项时,请使用服务器顺序确定首选格式. 基于gmokki的补丁. (市场)
  • 固定: 59284 :允许Tomcat提供的JASPIC SimpleServerAuthConfig从传递给其构造函数的属性集中或从调用getAuthContext传递的属性中选取模块配置属性. 基于Thomas Maslen的补丁. (市场)
  • 固定: 59310 :请勿为未设置Content-Length值的HEAD请求的自定义响应添加Content-Length: 0标头. (市场)
  • 固定: 规范化路径时,请改善路径以/.结尾的处理/./..并确保输入和输出是否以/结束是一致的. (市场)
  • Fix: 59317: Ensure that HttpServletRequest.getRequestURI() returns an encoded URI rather than a decoded URI after a dispatch. (markt)
  • 固定: 当报告从解压缩的WAR中的JAR处理web-fragment.xml文件时出错时,请使用正确的片段URL. (市场)
  • 固定: 确保JarScanner仅使用显式回调来处理WEB-INF/classes并且仅在配置为将WEB-INF/classes的内容视为可能的分解JAR时使用. (市场)
  • 码: 取下java2DDisposerProtection从选项JreMemoryLeakPreventionListener . Java 7及更高版本中已修复了该漏洞,Tomcat 9需要Java 8,因此该选项是不必要的. (市场)
  • 码:JreMemoryLeakPreventionListener删除securityPolicyProtection选项. Java 8及更高版本中的泄漏已得到修复,Tomcat 9需要Java 8,因此该选项是不必要的. (市场)
  • Code: Remove the securityLoginConfigurationProtection option from the JreMemoryLeakPreventionListener. The leak is fixed in Java 8 onwards and Tomcat 9 requires Java 8 so the option is unnecessary. (markt)
  • 固定: 使用ALLOW-FROM选项时,请确保根据规范正确构造了标题X-Frame-Options的值. (紫罗兰色)
  • 固定: 如果首次使用内部Response对象需要JASPIC身份验证,请修复IllegalArgumentException . (市场)
  • 固定: 使用JASPIC并使用缓存的凭据对用户进行身份验证时,请勿触发不必要的会话ID更改. (市场)
  • 固定: 59437 :确保JASPIC CallbackHandler是线程安全的. (市场)
  • 固定: 59449 :在ContainerBase ,确保删除子容器的过程与添加一个子容器的过程相反. 张虎星提供的补丁. (市场)

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

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

Catalina

  • 固定: 确保从未将/WEB-INF/classes作为Web片段处理. (市场)
  • Update: Switch default connector when native is installed. Unless configured otherwise, the NIO endpoint will be used by default. If SSL is configured, OpenSSL will be used rather than JSSE. (remm)
  • 固定: 修正58867的修正中的回归. 当配置上下文以将外部目录用于docBase ,并且该目录恰好位于原始WAR的旁边,请将该目录用作docBase而不是将WAR扩展到appBase并使用新创建的扩展目录作为docBase . (市场)
  • 加: 58351 :使服务器构建日期和服务器版本号可通过JMX访问. 张虎星提供的补丁. (市场)
  • 加: 58988 :现在可以用反斜杠将RewriteValve的替换中的特殊字符引起来. (舒马赫)
  • 固定: 58999 :修复了WebappClassLoader中的类和资源名称过滤. 如果名称恰好是" org"或" javax",则抛出StringIndexOutOfBoundsException. (荣)
  • 补充: 加入JASPIC(JSR 196)的支持. (Markt的)
  • 加: 使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相关的内存泄漏的误报警告. (市场)
  • Add: 59017: Make the pre-compressed file support in the Default Servlet generic so any compression may be used rather than just gzip. Patch provided by Mikko Tiihonen. (markt)
  • 固定: 59145 :当用户注销与SSO关联的会话时,请不要记录无效的警告. (市场)
  • 固定: 59150 :在APR侦听器上添加一个附加标志,以允许自动使用OpenSSL. (雷姆)
  • 固定: 59151 :修复了针对56917的修订中的回归问题,该回归向所提供的重定向位置添加了其他(可能是不必要的)验证. (市场)
  • 固定: 59154 :修复了将CredentialHandler引入Realm导致的JAASMemoryLoginModuleNullPointerException . (舒尔茨/马克特)

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

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

General

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

Catalina

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

Coyote

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

not released Tomcat 9.0.0.M2 (markt)

Catalina

  • 码: 重构创造MapperListener以确保Mapper采用的是Mapper与相关Service为其创建监听器. (市场)
  • 加: 移动为上下文根和目录提供重定向的功能,其中将尾随/从映射器添加到DefaultServlet . 这样,在进行重定向之前,任何配置的Valves和Filters都可以处理此类请求. 可以通过Context的mapperContextRootRedirectEnabledmapperDirectoryRedirectEnabled属性来配置此行为, mapperDirectoryRedirectEnabled属性可用于还原以前的行为. (市场)
  • 码: 重构Service.getContainer()以返回Engine而不是Container . (市场)
  • 固定: 34319StoreBase.processExpire JDBCStore加载StoreBase.processExpire中足够旧的那些键以使其过期. 基于Tom Anderson的补丁. (fschumacher)
  • 加: 56917 :根据RFC7231(HTTP / 1.1),允许HTTP / 1.1和更高版本的重定向使用相对URI. 这由Context上的新属性useRelativeRedirects控制,默认为true . (市场)
  • 固定: 58629 :当未配置Service Engine时,允许嵌入式Tomcat实例启动. (市场)
  • 固定: 如果该服务的引擎已更改,请正确通知与该服务关联的MapperListener. (市场)
  • Add: Make a web application's CredentialHandler available through a context attribute. This allows a web application to use the same algorithm for validating or generating new stored credentials from cleartext ones. (schultz)
  • 固定: 58635 :使用Java代理运行Tomcat时,允许在代理代码中设置断点. 基于张虎星的补丁. (市场)
  • 固定: 修复了部署应用程序时HostConfig潜在的NPE. 覆盖率扫描报告的问题. (紫罗兰色)
  • 固定: 58655 :修正IllegalStateException时调用HttpServletResponse.sendRedirect()RemoteIpFilter . 这是由于尝试正确生成重定向的绝对URI引起的. 使用针对56917的修复程序,重定向现在可能是相对的,从而使RemoteIpFiltersendRedirect()实现更加简单. 这也解决了当从http重定向到https到从https重定向到http时重定向可能没有按预期表现的问题. (市场)
  • 固定: 58657 :Servlet 3.1 ReadListenerWriteListener异常不需要立即对连接造成致命影响. 允许写入错误响应. (市场)
  • 固定: 正确实现validateClientProvidedNewSessionId以便如果启用了验证,则可能拒绝客户端提供的会话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提供自述文件时,将使用正确的文件编码(如果指定). (紫罗兰色)
  • 固定: 修复连接器MBean的localPort属性的声明:它是只读的. (kkolinko)
  • 固定: 58766 :通过首先检查文件名,可以更快地在注释扫描期间跳过非类文件. 改善调试日志记录. (kkolinko)
  • 固定: 58836 :在处理转发的请求时正确合并查询字符串参数,其中目标包括查询字符串,该查询字符串包含无值的参数. (市场/ kkolinko)
  • 固定: 确保在HostConfig.deployWAR()中发生不太可能的错误情况下重置共享Digester. (kkolinko)
  • 加: 扩展群集会话管理器实现中可用的功能,该功能使会话属性复制可以基于属性名称过滤到所有会话管理器实现中. 请注意,配置属性名称已从sessionAttributeFilter更改为sessionAttributeNameFilter . 在加载和卸载时应用筛选器,以确保将Web应用程序停止时所做的配置更改应用于所有持久数据. (市场)
  • 加: 扩展会话属性过滤选项,使其包括基于值的实现类的过滤和可选的WARN级别日志记录(如果已过滤属性). 这些选项可用于Tomcat附带的所有Manager实现. 使用SecurityManager ,默认情况下将启用过滤. (市场)
  • 码: 由于从不使用属性, maxInactiveIntervalManager界面中删除distributablemaxInactiveInterval . Context的等效属性始终优先. (市场)
  • 固定: 58867 :改进了在Tomcat停止时已修改的WAR文件的主机启动检查,如果unpackWARstrue ,则重新展开它们. (市场)
  • 固定: 58900 :正确取消部署符号链接的资源,并防止部署/取消部署的无限周期. (市场)

Coyote

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

Jasper

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

Cluster

  • 固定: 在静态集群成员身份中启用本地成员的显式配置. (kfujino)
  • 固定: 修复DeltaSession潜在的整数溢出. 通过覆盖率扫描报告. (fschumacher)
  • Fix: In order to avoid that the heartbeat thread and the background thread to run Channel.heartbeat simultaneously, if heartbeatBackgroundEnabled of SimpleTcpCluster set to true, ensure that the heartbeat thread does not start. (kfujino)

WebSocket

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

Web Applications

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

Tribes

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

jdbc-pool

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

Other

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

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

General

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

Catalina

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

Coyote

  • 更新: 删除对HTTP BIO和AJP BIO连接器的支持. (市场)
  • 码: 重构HTTP升级和AJP实现以减少重复. (市场)
  • 加: 增加了对Stuart Douglas贡献的HPACK标头编码和解码的支持. (雷姆)
  • 加: 57108 :添加了对服务器名称指示(SNI)的支持. 为了支持此功能,server.xml中的SSL配置进行了重大更改. (市场)
  • Add: Add SSL engine for JSSE backed by OpenSSL. Includes ALPN support. Based on code contributed by Numa de Montmollin and derived from code developed by Twitter and Netty. (remm)
  • 固定: 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的支持,包括服务器推送. (市场)

Tribes

  • 固定: 明确处理"复制"消息和"复制"节点. (kfujino)

Other

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

by  ICOPY.SITE