Changelog

Tomcat 8.5.47 (markt)

Coyote

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

Jasper

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

Web Socket

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

Web Applications

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

jdbc-pool

  • Fix: When connections are validated without an explicit validation query, ensure that any transactions opened by the validation process are committed. Patch provided by Pascal Davoust. (markt)

Other

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

2019-09-19 Tomcat 8.5.46 (markt)

Catalina

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

Coyote

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

Web applications

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

Other

  • 固定: 向后移植对i18n消息的英文版的各种更正和改进. (市场)
  • 加: 在标准Tomcat发行版中包括可用的德语翻译. 向后添加和更新德语i18n消息. (市场)
  • 固定: 向后移植对西班牙i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植法语i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植对日语i18n消息的各种更正和改进. (市场)
  • 固定: 向后移植对俄罗斯i18n消息的各种更正和改进. (市场)
  • 加: 将韩语翻译添加到标准Tomcat发行版中. (市场)
  • 加: 将简体中文翻译添加到标准Tomcat发行版中. (市场)
  • Fix: 62140: Additional usage documentation in comments for catalina.[bat|sh]. (markt)
  • 固定: 修复catalina.bat JSSE_OPTS引用. 由Peter Uhnak提供. (fschumacher)
  • 更新: 63625 :更新到Commons守护程序1.2.1. 这将更正Commons Daemon 1.2.1中的多个回归,最显着的是Windows Service在使用32位JVM时启动时崩溃. (市场)
  • 固定: 63689 :更正了63285的修复程序中的回归问题,这意味着安装服务时未设置服务显示名称. (市场)
  • 固定: 使用Windows Installer执行静默安装时,请确保在使用64位JVM时将注册表整体添加到64位注册表中. (市场)
  • 固定: 删除未使用的i18n消息和相关的翻译. 康志东提供的补丁. (市场)

2019-08-21 Tomcat 8.5.45 (markt)

Coyote

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

not released Tomcat 8.5.44 (markt)

Catalina

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

Coyote

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

Web applications

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

Other

  • 固定: 55969 :加强Windows安装程序创建的Apache Tomcat安装的安全性. 将Windows安装程序使用的默认关机端口从8005更改为-1 (禁用). 将对所选安装目录的访问限制为本地管理员,本地系统和本地服务. (市场)
  • 更新: 62696 :Windows安装程序的数字签名现在使用SHA-256进行哈希处理. (市场)
  • 固定: 63285 :修改service.bat以便在安装Windows服务时默认情况下会更改Windows服务使用的可执行文件的名称,以使其与服务名称匹配. 这使安装行为与Windows安装程序一致. 删除Windows服务后,将还原原始的可执行文件名称. 可以通过在服务名称之后使用新的--no-rename选项来禁用--no-rename . (市场)
  • 更新: 从Checkstyle切换到JRE6反向端口,并更新到版本8.22. 这允许Tomcat 8.5在仍使用Java 7进行构建的同时使用较新的Checkstyle版本.
  • 加: 63285 :在service.bat添加一个选项,以便在安装Windows服务时,可以更改Windows服务使用的可执行文件的名称以匹配该服务名称. 这使安装行为与Windows安装程序一致. 删除Windows服务后,将还原原始的可执行文件名称. 可以通过在服务名称之后使用新的--rename选项来启用重命名. (市场)
  • 更新: 63310 :更新到Commons Daemon 1.2.0. 这提供了对Java 11的改进支持.这还将Windows安装程序为Windows服务配置的用户从Local System更改为特权较低的Local Service . (市场)
  • 固定: 63567 :恢复的传球$LOGGING_MANAGER到JVM中catalina.sh致电时stop . (市场)
  • 更新: 将Commons Codec的内部fork更新为3ebef4a(2018-08-01),以获取针对CODEC-134的修复程序. (市场)
  • 更新: 将Commons Pool2的内部fork更新为796e32d(2018-08-01),以获取对Commons Pool2 2.7.0的更改. (市场)
  • 更新: 将Commons DBCP2的内部fork更新为87d9e3a(2018-08-01)以获取对Commons DBCP2 2.7.0和DBCP-555的更改. (市场)
  • 更新: 63648 :更新测试套件中使用的测试TLS密钥和证书,以替换即将到期的密钥和证书. (市场)

2019-07-09 Tomcat 8.5.43 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Other

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

2019-06-07 Tomcat 8.5.42 (markt)

Catalina

  • 加: 57287 :将文件排序添加到DefaultServlet(schultz)
  • Fix: Ensure that the default servlet reads the entire global XSLT file if one is defined. Identified by Coverity Scan. (markt)
  • Fix: Avoid potential NullPointerException when generating an HTTP Allow header. Identified by Coverity Scan. (markt)
  • 加: 删除目标路径中包含的用于获取RequestDispatcher所有片段. 由于这是应用程序错误,因此将请求的目标路径记录为警告. (市场)

Coyote

  • 更新: 添加更接近核心NIO2的其他NIO2样式读取和写入方法,以便与CompletableFuture等异步工作流一起使用. (雷姆)
  • 固定: 避免在异步IO中使用无用的异常包装. (雷姆)
  • 固定: 63412 :从Web应用程序使用异步IO API时,安全管理器失败. (雷姆)
  • 固定: 修复导致不正确的HTTP / 2连接超时的并发问题. (毫米/马克)
  • 更新:maxConcurrentStreams上的Http2Protocol的默认值从200减少到100,以与HTTP / 2实现的典型默认值保持一致. (市场)
  • 更新: 将默认的HTTP / 2标头列表大小从4GB减小到32kB,以符合典型的HTTP / 2实现. (市场)
  • 加: 添加对同一站点cookie属性的支持. 约翰·凯利(John Kelly)提供的补丁. (市场)
  • Fix: Correct a bug in the stream flushing code that could lead to multiple threads processing the stream concurrently which in turn could cause errors processing the stream. (markt)

Cluster

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

Tribes

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

Other

  • 更新: 从FindBugs切换到SpotBugs. (fschumacher)
  • 固定: 63403 :修复使用非英语语言环境运行时TestHttp2InitialConnection测试失败的问题. (kkolinko)
  • 固定: 使用test命令而不是tty命令来检查终端可用性,因为基于tty的测试在非英语语言环境中失败. (市场)

2019-05-13 Tomcat 8.5.41 (markt)

Catalina

  • 固定: 修复了从WAR文件执行CGI脚本时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了由Coverity扫描确定的StringCache中潜在的并发问题. (市场)
  • 固定: 修复了APR连接器的主Sendfile线程中的潜在并发问题. 由Coverity扫描识别. (市场)
  • 固定: 修复了从WAR文件运行Web应用程序时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了DataSourceRealm某些异常路径上的潜在资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了解析JSP文件时异常路径上潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 固定: 修复了当JNDI查找返回兼容类的对象时潜在的资源泄漏. 由Coverity扫描识别. (市场)
  • 码: 重构ManagerServlet以避免在为指定类型的资源过滤JNDI资源时加载类. (市场)
  • Fix: Avoid OutOfMemoryErrors and ArrayIndexOutOfBoundsExceptions when accessing large files via the default servlet when resource caching has been disabled. (markt)
  • 固定: 如果在server.xml使用docBase而不是可选path定义了Contextserver.xml避免NullPointerException . (市场)
  • 固定: 63324 :重构CrawlerSessionManagerValve以使放置在会话中的对象与带有mem-cached的会话序列化兼容. Martin Lemanski提供的补丁. (市场)
  • 固定: 63333 :重写isAvailable()中所述方法JAASRealm所以造成无效凭证仅登录失败触发帐户锁定出当LockOutRealm正在使用中. jchobantonov提供的补丁. (市场)

Coyote

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

Other

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

2019-04-12 Tomcat 8.5.40 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

jdbc-pool

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

2019-03-19 Tomcat 8.5.39 (markt)

Catalina

  • 固定: 次要HTTP / 2推送修复. (雷姆)
  • 固定: 重构如何将Cookie从基本请求传输到PushBuilder以便通过用于HTTP标头的标准PushBuilder方法可以访问它们,并可以对其进行编辑. (市场)
  • 加: 重构错误处理,以使在将处理传递给应用程序之前发生的错误将由应用程序提供的错误处理和/或容器提供的错误处理( ErrorReportValve )进行适当处理. (市场)
  • 加: 将由缺少的ROOT Web应用程序触发的404错误传递到容器错误处理,以生成响应主体. (市场)
  • 加: 将无效请求目标触发的400个错误传递到容器错误处理,以生成响应主体. (市场)
  • Add: Pass errors triggered by invalid requests or unavailable services to the application provided error handling and/or the container provided error handling (ErrorReportValve) as appropriate. (markt)
  • 码: 重构内部Tomcat组件的MBean实现,以减少代码重复. (市场)
  • 更新: 为tomcat-i18n jar文件简化catalina.properties文件中的jarsToSkip属性的值. 使用前缀模式而不是列出每种语言. (kkolinko)
  • Fix: Restore the getter and setter for the access log valve attribute maxLogMessageBufferSize that were accidentally removed. (markt)
  • 加: 63206 :向Context添加一个新属性createUploadTargets ,如果该属性为true ,则使它能够创建Servlet使用的临时上载位置(如果Servlet指定的位置尚不存在). 默认值为false . (市场)
  • 固定: 63210 :当不再需要基于Apache Commons DBCP 2的默认连接池时,请正确关闭它. 这确保了非守护进程线程不会保持运行状态,这将阻止Tomcat彻底关闭. (市场)
  • 固定: 63213 :当JNDIRealm配置为roleNested设置为true时,请在搜索嵌套组时确保对组名进行正确的转义. (市场)
  • 固定: 63236 :使用Phillip Webb建议的String.intern()来减少由于字符串重复而造成的内存浪费. 开始全新安装时,此更改可节省〜245k. 另外还要感谢YourKit Java profiler来帮助跟踪浪费的内存和根本原因. (市场)
  • 固定: 63246 :修复了在调用AsyncContext.dispatch()时潜在的NullPointerException . (市场)

Coyote

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

2019-02-08 Tomcat 8.5.38 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

  • 固定: 63103 :从示例Web应用程序中删除未使用的source.jsp文件和关联的标记,因为它不再被使用. (市场)
  • 固定: 63143 :当默认系统区域设置的语言不是英语时,请确保Manager Web应用程序遵守浏览器中配置的用户的语言首选项. (市场)

Tribes

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

Other

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

2018-12-18 Tomcat 8.5.37 (markt)

Catalina

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

Other

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

not released Tomcat 8.5.36 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

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

Other

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

2018-11-07 Tomcat 8.5.35 (markt)

Catalina

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

Coyote

  • Add: Add TLSv1.3 to the default protocols and to the all alias for JSSE based TLS connectors when running on a JVM that supports TLS version 1.3. One such JVM is OpenJDK version 11. (rjung)
  • 固定: 62685 :更正主机名验证解析中的错误,该错误不允许完全限定的域名以句点终止. AG提供的补丁. (市场)
  • 固定: 62739 :请勿拒绝具有空HTTP Host标头的请求. 这样的请求是异常的,但不是无效的. 迈克尔·奥尔(Michael Orr)提供的补丁. (市场)
  • 加: 62748 :使用OpenSSL支持的JSSE实现时,为APR / Native连接器和NIO / NIO2连接器添加了TLS 1.3支持. (舒尔茨/马克特)
  • 固定: 62791 :删除了NIO TLS实施中不必要的检查,该检查阻止建立安全的WebSocket连接. (市场)
  • 固定: 当使用NIO / NIO2和OpenSSL支持的JSSE TLS实现时,修订服务器启动TLS重新协商以获得客户端证书. (市场)
  • 固定: 62871 :通过使用属性和操作的显式声明而不是依靠自省,改进了Endpoint实例的MBean(在JMX中为ThreadPool类型). 添加一个新的MBean以公开Socketproperties值. (市场)

Jasper

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

WebSocket

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

Web applications

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

Other

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

2018-09-10 Tomcat 8.5.34 (markt)

Catalina

  • 加: 使isLocked()的方法LockOutRealm公众和暴露通过JMX的方法. (市场)
  • 固定: 使用RequestDispatcher对象时,改进对路径参数的处理. (市场)
  • 固定: 62664 :将内容类型为multipart/form-data请求multipart/form-data为带有@MultipartConfig批注的servlet,而与HTTP方法无关. (市场)
  • 固定: 62667 :添加递归以重写替换解析. (雷姆)
  • 固定: 62669 :当使用SSIFilter且资源未指定内容类型时,请勿将内容类型强制设置为application/x-octet-stream . (市场)
  • 固定: 62670 :调整DriverManager的内存泄漏保护,以便启用保护后,通过服务加载程序机制加载$CATALINA_HOME/lib$CATALINA_BASE/lib中的JDBC驱动程序. (市场)
  • 固定: 在默认Servlet中生成到目录的重定向时,请避免生成协议相对重定向. (市场)

Coyote

  • 固定: 使用HTTP / 2连接器进行异步Servlet处理时,修复潜在的死锁. (市场)
  • 固定: 62620 :修复了通过HTTP / 2使用异步处理编写大型正文时响应正文的损坏. (市场)
  • 固定: 62628 :针对使用HTTP / 2上的异步处理编写大型主体时响应主体的输出损坏的其他修复程序. (市场)

Jasper

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

Web applications

  • 加: 扩展文档Web应用程序中有关CATALINA_HOMECATALINA_BASE的使用的信息. Marek Czernek提供的补丁. (市场)
  • 固定: 62652 :更清楚地说明,Tomcat 8.5.x中打包的DBCP版本是DBCP2 .更正在1.x和2.x之间更改的某些DBCP 2配置属性的名称. (市场)
  • Add: 62666: Expand internationalisation support in the Manager application to include the server status page and provide Russian translations in addition to English. Patch provided by Artem Chebykin. (markt)

Other

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

2018-08-17 Tomcat 8.5.33 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

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

Other

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

2018-06-25 Tomcat 8.5.32 (markt)

Catalina

  • 固定: 以与等效@Resource批注的mappedName元素相同的方式对待web.xml中的<env-entry><mapped-name>元素. 两者现在都尝试设置资源的mappedName属性. (市场)
  • 固定: 使用web.xml中定义的<injection-target>纠正资源处理. 首先,使用JavaBean属性名称查找匹配项,然后,仅当找不到匹配项时,才使用字段查找匹配项. (市场)
  • 固定: 在FORM身份验证之后使用请求正文还原保存的请求时,请确保对HttpServletRequest方法getRequestURI()getQueryString()getProtocol()调用不会因保存的请求正文的处理而损坏. (市场)
  • 固定: 现在将使用注入目标定义但没有值的JNDI资源视为未定义资源. (市场)
  • 固定: 确保用于web.xml中的<lookup-name>条目和@Resource批注的lookup元素的JNDI名称指定具有显式java:命名空间的名称. (市场)
  • Code: Refactor the org.apache.naming package to reduce duplicate code. Duplicate code identified by the Simian tool. (markt)
  • 固定: 50019 :添加对<lookup-name> . 基于Gurkan Erdogdu的补丁. (市场)
  • 加: 51953 :添加RemoteCIDRFilterRemoteCIDRValve ,可用于允许/拒绝基于IPv4和/或IPv6客户端地址的请求,其中IP范围是使用CIDR表示法定义的. 基于Francis Galiegue的补丁. (市场)
  • 固定: 62343 :使CORS过滤器默认设置更安全. 这是CVE-2018-8014的修复程序. (市场)
  • 固定: 确保Web应用程序资源实现不会错误地缓存仅作为类加载器资源可见的资源的结果. (市场)
  • 固定: 使与Tomcat关联的所有记录器提供的"过滤器"均为非静态,以确保重新加载Web应用程序时不会丢失日志消息. (市场)
  • 固定: 更正批注-api.jar的清单. JAR实现了Common Annotations API 1.2,清单应该反映出这一点. (市场)
  • 固定: 切换到非静态记录器,其中记录器可能与Web应用程序类加载器相关联,如果Web应用程序停止,则会导致日志消息丢失. (市场)
  • 加: 62389 :将IPv6回送地址添加到默认的internalProxies正则表达式. 克雷格·安德鲁斯的补丁. (市场)
  • 固定:RemoteIpValveRemoteIpFilter ,正确处理请求通过一个或多个trustedProxies但不传递internalProxies . 基于zhanhb的补丁. (市场)
  • 固定: 更正MBeanFactory.removeConnector()的逻辑,以确保当有多个使用不同地址但使用同一端口的连接器时,删除了正确的连接器. (市场)
  • Fix: Make JAASRealm mis-configuration more obvious by requiring the authenticated Subject to include at least one Principal of a type specified by userClassNames. (markt)
  • 固定: 62476 :按照HTTP规范(RFC 7231,7234)的要求,将GMT时区用作Expires标头的值. (kkolinko)

Coyote

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

Jasper

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

Cluster

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

WebSocket

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

Web applications

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

Tribes

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

jdbc-pool

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

Other

  • 固定: 62391 :删除对javaw.exe引用,因为Tomcat不需要此文件,并且这些引用会阻止使用Server JRE. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.17,以获取使用APR 1.6.3和OpenSSL 1.0.2o构建的最新Windows二进制文件. (市场)
  • 更新: 62458 :将Commons Pool 2的内部fork更新为dfef97b(2018-06-18),以获取一些错误修复和增强功能. (市场)
  • 更新: 将Commons DBCP 2的内部fork更新为2.4.0. (市场)

2018-05-03 Tomcat 8.5.31 (markt)

Catalina

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

Coyote

  • 固定: 纠正线程池中的"一对一"错误,该错误使线程池的大小增加到比配置的限制大一倍. usc提供的补丁. (市场)
  • Fix: Prevent unexpected TLS handshake failures caused by errors during a previous handshake that were not correctly cleaned-up when using the NIO or NIO2 connector with the OpenSSLImplementation. (markt)
  • 加: 对所有连接器启用提供的主机名和端口的严格验证. 主机名和/或端口无效的请求将被拒绝,并带有400响应. (市场)
  • 加: 62273 :实施配置选项以解决规范不兼容的用户代理(包括所有主要浏览器)的问题,这些代理不能正确地对RFC 7230和RFC 3986要求的URI路径和查询字符串进行%nn编码.(标记)

Jasper

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

WebSocket

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

Other

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

2018-04-07 Tomcat 8.5.30 (markt)

Catalina

  • 固定: 51195 :通过在Web应用程序停止时清除由Web应用程序加载的类的ObjectStreamClass$Caches ,避免对Web应用程序内存泄漏的误报. (市场)
  • 固定: 52688 :将对maxDays属性的支持添加到AccessLogValveExtendedAccessLogValve . 这允许在定义删除之前保留轮换访问日志的最大天数. (市场)
  • 固定:Connector绑定到特定的IP地址时,请确保SSLHostConfigSSLHostConfigCertificate的MBean名称正确形成. (市场)
  • Fix: 62168: When using the PersistentManager honor a value of -1 for minIdleSwap and do not swap out sessions to keep the number of active sessions under maxActive. Patch provided by Holger Sunke. (markt)
  • 固定: 62172 :改进org.apache.catalina.startup.Constants Javadoc并确保正确使用了常量. (市场)
  • 固定: 62175 :在使用PersistentManager加载会话时尝试验证会话时,请避免无限递归. (fschumacher)
  • 固定: 确保仅在关联的命名资源上的属性更改后才通知NamingContextListener实例. (市场)
  • 加: 添加LoadBalancerDrainingValve,这是一个Valve,旨在减少节点耗尽其经过身份验证的用户所需的时间. (舒尔茨)
  • 加: 62224 :在Java 9及更高版本上运行时,禁用forkJoinCommonPoolProtectionJreMemoryLeakPreventionListener ,因为已修复了底层JRE错误. (市场)

Coyote

  • 固定: 避免APR /本机轮询器中的潜在循环. (市场)
  • 固定: 确保已接收但未处理的流从跟踪已处理流的最大ID中排除. (市场)
  • Fix: Refactor the check for a paused connector to consistently prevent new streams from being created after the connector has been paused. (markt)
  • 固定: 改进HTTP / 2推送流的调试日志记录. (市场)
  • 固定: 现在,OpenSSL引擎SSL会话将忽略无效访问. (雷姆)
  • 固定: 62177 :使用HTTP / 2 PUSH_PROMISE帧更正两个协议错误. 首先,HTTP / 2协议仅允许在对等发起的请求上发送推送. 其次,必须按增加的流ID的顺序发送推送. 这些限制没有得到强制执行,从而导致客户端出现协议错误. (市场)

Web applications

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

Tribes

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

jdbc-pool

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

Other

  • 固定: 62164 :将构建脚本切换为使用TLS从SourceForge和Maven Central下载,以避免由于HTTP到HTTPS重定向而导致失败. (市场)
  • 加: 启动JVM时,始终报告操作系统的umask. (舒尔茨)

2018-03-08 Tomcat 8.5.29 (markt)

Catalina

  • 固定: 调用类转换器时的次要优化. (荣)
  • 固定: 防止Tomcat将gzip压缩应用于已经使用brotli压缩进行压缩的内容. 基于burka提供的补丁. (市场)
  • 固定: 62090 :不允许使用空容器名称. (雷姆)
  • 固定: 62104 :修复了编程登录回归,因为必须设置NonLoginAuthenticator才能使其正常工作(如果未指定登录方法). (雷姆)
  • 固定: 62117 :当调用kill -0 <pid>失败时,改进了catalina.sh错误消息. 根据Mark Morschhaeuser的建议. (市场)
  • 固定: 62118 :使用指定的接口而不是具体类型正确创建JNDI ServiceRef . 根据ÁngelÁlvarezPáscua的建议. (市场)
  • 固定: 修复RequestDumperFilter日志属性. Kirill Romanov通过Github提供的补丁. (紫罗兰色)
  • 固定: 62123 :在尝试清除Web应用程序停止时触发的RMI内存泄漏时,请避免ConcurrentModificationException . (市场)
  • 固定: 更正60276修复程序中的回归,这意味着将压缩应用于所有MIME类型. Stefan Knoblich提供的补丁. (市场)

Coyote

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

Web applications

  • 加: 48672 :添加有关主机管理器Web应用程序的文档. Marek Czernek提供的补丁. (市场)
  • Add: Work-around a known, non-specification compliant behaviour in some versions of IE that can allow XSS when the Manager application generates a plain text response. Based on a suggestion from Muthukumar Marikani. (markt)

Other

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

2018-02-11 Tomcat 8.5.28 (markt)

Catalina

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

Coyote

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

WebSocket

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

Webapps

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

jdbc-pool

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

Other

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

2018-01-22 Tomcat 8.5.27 (markt)

Catalina

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

Coyote

  • 固定: 61993年 :改进了ByteChunkCharChunk实例的处理, CharChunk实例的增长接近JRE允许的最大大小. (市场)

Jasper

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

Web applications

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

not released Tomcat 8.5.26 (markt)

Catalina

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

not released Tomcat 8.5.25 (markt)

Catalina

  • 固定: 47214 :在SecurityManager下运行时,请使用循环预加载匿名内部类,以确保以后代码中的更改或使用其他编译器时都可以安全. (kkolinko)
  • 加: 57619 :对JAR URL的处理方式进行小的优化,以减少重复的String对象在内存中的存储. Dmitri Blinov提供的补丁. (市场)
  • Fix: Add some missing NPEs to ServletContext. (remm)
  • 固定: 61916 :当通过setHeader()addHeader()设置内容类型以及通过setContentType()设置内容类型时,扩展AddDefaultCharsetFilter以添加字符集. (市场)
  • Fix: 61999: maxSavePostSize set to 0 should disable saving POST data during authentication. (remm)

Coyote

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

Jasper

  • 固定: 61854 :在EL表达式中使用集合和/或映射时,请确保Jasper正确解析了表达式. Ricardo Martin Camarero提供的补丁. (市场)
  • Fix: Improve the handling of methods with varargs in EL expressions. In particular, the calling of a varargs method with no parameters now works correctly. Based on a patch by Nitkalya (Ing) Wiriyanuparb. (markt)

Web applications

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

jdbc-pool

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

Other

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

2017-11-30 Tomcat 8.5.24 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

Tribes

  • Fix: Fix incorrect behavior that attempts to resend channel messages more than the actual setting value of maxRetryAttempts. (kfujino)
  • Fix: Ensure that the remaining Sender can send channel messages by avoiding unintended ChannelException caused by comparing the number of failed members and the number of remaining Senders. (kfujino)
  • 固定: 确保处理了在SelectionKey处理期间未ChannelException其他剩余SelectionKey. (kfujino)

Other

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

2017-10-01 Tomcat 8.5.23 (markt)

Catalina

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

Other

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

not released Tomcat 8.5.22 (markt)

Catalina

  • 固定: 60963 :添加了ExtractingRoot ,这是一个新的WebResourceRoot实现,可以将JAR提取到工作目录中,以提高部署打包的WAR文件时的性能. (市场)
  • 加: 添加一个选项以拒绝包含HTTP头的请求,这些请求的HTTP头具有无效的(非令牌)头名称,并带有400响应. (市场)
  • 固定: 61542 :修复了CVE-2017-12617并阻止了启用HTTP PUT时通过特制请求上传JSP. (市场)
  • 固定: 实施RFC 7230(和RFC 2616)的要求,即HTTP / 1.1请求必须包含Host标头,并且必须以400响应拒绝任何不被拒绝的请求. (市场)
  • 固定: 实施RFC 7230的要求,即在请求行中指定主机的任何HTTP / 1.1请求都必须在Host标头中指定相同的主机,并且必须以400响应拒绝任何未请求的此类请求. 此检查是可选的,但默认情况下处于禁用状态. 可以使用连接器的allowHostHeaderMismatch属性启用它. (市场)
  • 固定: 实施RFC 7230的要求,即通过400响应拒绝包含多个Host标头的任何HTTP / 1.1请求. (市场)

Coyote

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

jdbc-pool

  • Fix: 61545: Correctly handle invocations of methods defined in the PooledConnection interface when using pooled XA connections. Patch provided by Nils Winkler. (markt)

Other

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

2017-09-19 Tomcat 8.5.21 (markt)

Catalina

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

Coyote

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

WebSocket

  • 固定: 60523 :通过将报头和有效负载写入在一起时不刷新,可以减少用于发送WebSocket消息的数据包数量. (市场)
  • Fix: 61491: When using the permessage-deflate extension, correctly handle the sending of empty messages after non-empty messages to avoid the IllegalArgumentException. (markt)

Web applications

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

Tribes

  • 固定: 为了避免来自备份会话的意外会话超时通知,请在接收映射成员通知消息时更新访问时间. (kfujino)
  • 固定: 当在TcpFailureDetector失败检测检查失败时,将成员信息添加到日志消息中. (kfujino)
  • 固定: 避免Ping超时,直到通过接收MSG_START消息完全启动添加的地图成员. (kfujino)
  • 固定: 发送频道消息时,请确保发送方已连接. (kfujino)
  • 固定: 更正备用节点选择逻辑,使节点0连续两次返回. (kfujino)
  • Fix: Fix race condition of responseMap in RpcChannel. (kfujino)

jdbc-pool

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

Other

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

2017-08-08 Tomcat 8.5.20 (markt)

Catalina

  • 固定: 还原为49464的修复程序,因为它继续触发回归. (市场)
  • 固定: 纠正PushBuilder实现中的一个错误,该错误意味着包含%nn序列的推URL未被正确解码. 由FindBugs标识. (市场)
  • Add: 61164: Add support for the %X pattern in the AccessLogValve that reports the connection status at the end of the request. Patch provided by Zemian Deng. (markt)
  • 固定: 61351 :正确处理web.xml和类似位置中可能合法包含RFC 3986不允许的字符的URL模式的%nn解码.(标记)
  • 加: 61366 :向JDBCStore添加新属性localDataSource ,该属性允许将Store配置为使用Web应用程序定义的DataSource,而不是使用全局定义的DataSource的默认属性. Jonathan Horowitz提供的补丁. (市场)

Coyote

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

Jasper

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

WebSocket

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

2017-07-28 Tomcat 8.5.19 (markt)

Catalina

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

Web applications

  • Fix: Correct the documentation for how StandardRoot is configured. (markt)

Other

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

not released Tomcat 8.5.18 (markt)

Catalina

  • 固定: 61232 :禁用日志循环时,在生成日志文件名时将仅使用一个分隔符. 例如,如果前缀是catalina. 后缀为.log则日志文件名将为catalina.log而不是catalina..log . 由Katya Stoycheva提供的补丁. (紫罗兰色)
  • 固定: 61264 :更正重构中的回归,以使用Charset而不是String来存储请求字符编码,如果用户代理指定了不受支持的字符编码,则该字符编码会阻止getReader()抛出UnsupportedEncodingException . (市场)
  • 固定: 更正49464修复程序中的回归,如果静态编码与响应编码不一致,则该回归可能导致DefaultServlet发送不正确的Content-Length标头. (市场)

Coyote

  • 固定: 启用TLS连接器以使用包含多个密钥的Java密钥存储,其中每个密钥具有单独的密码. 基于Frank Taffelt的补丁. (市场)
  • Fix: Improve the handling of HTTP/2 stream resets due to excessive headers when a continuation frame is used. (markt)

Jasper

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

Other

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

not released Tomcat 8.5.17 (markt)

Catalina

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

Coyote

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

Web applications

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

2017-06-26 Tomcat 8.5.16 (markt)

Catalina

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

Coyote

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

Jasper

  • 固定: 44787 :改进了JSP编译器配置选项无效时的错误消息. (市场)
  • 固定: 61137jsjsp.tagext.TagLibraryInfo#urijsjsp.tagext.TagLibraryInfo#prefix字段不应为最终字段. 由Katya Todorova提供的补丁. (紫罗兰色)

WebSocket

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

Web applications

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

Tribes

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

Other

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

2017-05-10 Tomcat 8.5.15 (markt)

General

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

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web Applications

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

Other

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

2017-04-18 Tomcat 8.5.14 (markt)

Catalina

  • 固定: 59825 :记录一条消息,该消息列出处理链中调用ServletRequest.startAsync()失败时不支持异步处理的组件. (市场)
  • Fix: 60926: Ensure o.a.c.core.ApplicationContextFacade#setSessionTimeout will invoke the correct method when running Tomcat with security manager. (markt)
  • 更新: 更新早期访问Servlet 4.0 API实现,以反映方法名从getPushBuilder()newPushBuilder()的更改. (市场)
  • 固定: 更正X中的回归以逗号重构会破坏采用参数的JMX操作. (市场)
  • Fix: Avoid a NullPointerException when reading attributes for a running HTTP connector where TLS is not enabled. (markt)
  • Fix: 60940: Improve the handling of the META-INF/ and META-INF/MANIFEST.MF entries for Jar files located in /WEB-INF/lib when running a web application from a packed WAR file. (markt)
  • 固定: 预加载ExceptionUtils类. 由于该类在错误处理中被广泛使用,因此,请谨慎地预先加载它,以避免在加载此类时出现任何错误,从而掩盖了错误处理过程中的真实问题. (市场)
  • 固定: 避免在关机期间与访问日志有关的潜在NullPointerException ,其中一些在运行单元测试时已被观察到. (市场)
  • 固定: 如果没有注册javax.servlet.WriteListener则对javax.servlet.ServletOutputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)
  • 固定: 如果没有注册javax.servlet.ReadListener那么对javax.servlet.ServletInputStream#isReady的调用将返回false而不是抛出IllegalStateException . (紫罗兰色)

Coyote

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

Jasper

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

jdbc-pool

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

Other

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

2017-03-30 Tomcat 8.5.13 (markt)

Catalina

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

Coyote

  • 加: 60362 :添加新的连接器配置sendReasonPhrase . 当此属性设置为true ,原因短语将与响应一起发送. 默认情况下,将不发送原因短语. 此选项已弃用,在Tomcat 9中不可用.(violetagg)
  • 固定: 修复EOF上的HTTP / 2错误输入解除阻止. (雷姆)
  • 固定: 如果当前连接发生与该连接的当前状态不一致的事件,请尽快关闭该连接. (市场)
  • 固定: 通过确保解锁接收器线程的代码正确处理存在多个线程的情况,可以加快使用多个接收器线程时的关机速度. (市场)
  • 固定: 60852 :在配置属性和内部代码中使用时,拼写可正确压缩. 基于Michael Osipov的补丁. (市场)
  • 固定: 60900 :如果在新数据到达该连接的同时关闭连接,则避免APR Poller中NullPointerException . (市场)
  • 固定: 通过修复Moto Ishizawa编写的h2spec工具报告的一些测试失败,提高HPACK规范的兼容性. (市场)
  • 固定: 通过修复Moto Ishizawa编写的h2spec工具报告的一些测试失败,提高HTTP / 2规范的合规性. (市场)
  • Fix: 60918: Fix sendfile processing error that could lead to subsequent requests experiencing an IllegalStateException. (markt)
  • 固定: 改进请求传递时的sendfile处理. (市场)

Jasper

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

jdbc-pool

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

Other

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

2017-03-13 Tomcat 8.5.12 (markt)

Catalina

  • 固定: 60469 :重构RealmBase以便在实现使用自定义Principal Realms时更好地重用代码. (市场)
  • 固定: 60490 :各种格式和布局的改进为ErrorReportValve . 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 更新: 60596 :在连接器上禁用sendfile功能时,提高DefaultServlet的性能. (kkolinko)
  • 码: 通过getDefaultWebXmlListener()使Tomcat子类更容易修改默认的web.xml设置. 亚伦·安德森(Aaron Anderson)提供的补丁. (市场)
  • 固定: 当多个线程正在管理对象并且需要引用注释缓存时,减少默认InstanceManager实现中的争用. (市场)
  • Code: 60674: Remove final marker from CorsFilter to enable sub-classing. (markt)
  • 固定: 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()事件,并且未在访问日志中进行输入. (市场)
  • Fix: 60720: Replace "WWW-Authenticate" literal with static final AUTH_HEADER_NAME in SpnegoAuthenticator. Patch provided by Michael Osipov. (violetagg)
  • 固定: 现在,当RegistrationListener新的AuthConfigProvider时,默认的JASPIC AuthConfigFactory可以正确通知注册的RegistrationListener . (市场)
  • 码: 没有可用的JASPIC配置时,提高AuthenticatorBase的性能. (紫罗兰色)
  • 固定: 当在连接器上禁用HTTP TRACE请求时,请确保来自WebDAV servlet的HTTP OPTIONS响应在返回的Allow标头中不包括TRACE. (市场)
  • 固定: 60722 :在为由AsyncContext.dispatch()触发的调度生成路径时,请考虑当前Context上的dispatchersUseEncodedPaths设置. (市场)
  • 固定: 60728 :使Tomcat在Tomcat特定的war:file:...使用分隔符,可通过系统属性自定义URL协议. 分隔符等效于使用! jar:file:... URL中的字符. *的默认分隔符保持不变. (市场)
  • 更新: 更新org.apache.catalina.servlet4preview包,该包可用于抢先访问Servlet 4.0功能,以与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提供的补丁. (市场)
  • 固定: 确保在触发应用程序侦听器时使用请求和响应外观. (标记/毫米)

Coyote

  • 固定: 当HTTP / 2客户端发送的数据多于当前窗口大小所允许的流控制时,改进对这种情况的处理. (市场)
  • 固定: 使用大型客户端问候消息,为SNI改进TLS客户端问候的NIO2超前解析. (市场)
  • 固定: 59807 :当没有使用与关联的连接器defaultSSLHostConfigName匹配的hostName定义SSLHostConfig时,提供更好的错误消息. (市场)
  • 固定: 当警告算法不支持certificateVerificationDepth配置选项时,请包含SslHostConfig.truststoreAlgorithm的值. (市场)
  • 固定: 确保与连接器一起使用的执行程序线程池会预先启动配置的最小空闲线程数. (市场)
  • 加: 60594 :允许使用系统属性tomcat.util.http.parser.HttpParser.requestTargetAllow在请求中最近处理的一些无效字符. (csutherl)
  • 固定: 60627 :修改Rfc6265CookieProcessor以便除了以显式RFC 2109 $Version=1开头的cookie头之外,以$Version=0开头的cookie也被解析为RFC 2109 cookie. (市场)
  • 固定: 60716 :将新的JSSE特定属性revocationEnabled添加到SSLHostConfig以在未配置certificateRevocationListFile时允许启用JSSE提供者吊销检查. 期望配置将通过JSSE提供程序特定的机制执行. (市场)
  • 固定: 修改由Rfc6265CookieProcessor生成的cookie标头,以便它始终发送Expires属性以及Max-Age属性,以避免不支持Max-Age属性的Microsoft浏览器出现问题. (市场)
  • 固定: 60761 :为NioEndpoint.stopLatch公开受保护的吸气剂和吸气剂,以使该类更易于扩展. (市场)
  • Fix: Prevent blocking reads after a stream exception occurs with HTTP/2. (remm)

Jasper

  • 固定: 继续进行58178的修复. 为标记文件创建ELContext ,请确保已触发所有已注册的ELContextListener . (市场)
  • 固定: 重构为JSP生成的代码,以减少标签所需代码的大小. (市场)
  • 固定: 60769 :更正了针对8.5.10进行的XML编码检测重构中的回归,该回归总是错误地始终使用检测到的BOM编码,而不是在序言中指定的任何编码. (市场)
  • 更新: 更新到Eclipse JDT Compiler 4.6.1. (市场)

Cluster

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

WebSocket

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

Tribes

  • 加: 添加超过超时时间已收到PING消息的日志消息. (kfujino)
  • Fix: When a PING message that beyond the time-out period has been received, make sure that valid member is added to the map membership. (kfujino)
  • 固定: 确保NoRpcChannelReply消息没有接收到RpcCallback . (kfujino)

Web Applications

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

Other

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

2017-01-16 Tomcat 8.5.11 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

jdbc-pool

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

Other

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

not released Tomcat 8.5.10 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web Applications

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

Other

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

2016-12-08 Tomcat 8.5.9 (markt)

Catalina

  • 更新: 60202 :向领域添加可用标志,以指示状态或领域后端. 如果锁定域可用,则将锁定域更新为仅注册身份验证失败. (雷姆)
  • 固定: 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的补丁. (市场)
  • 固定: 60387 :将Javadoc oacatalina.AccessLog.setRequestAttributesEnabledoacatalina.AccessLog.setRequestAttributesEnabled . 对于不同的实现,默认值是不同的. (紫罗兰色)
  • 码: 60393 :在Realm#authenticate(GSSContext, boolean)实现中使用一致的参数命名. (市场)
  • Fix: 60395: Log when an Authenticator passes an incomplete GSSContext to a Realm since it indicates a bug in the Authenticator. Patch provided by Michael Osipov. (markt)
  • Fix: 60400: When expanding the buffer used for reading the request body, ensure the read position will be restored to the original one. (violetagg)
  • 固定: 60410 :确保多次调用JarInputStreamWrapper#close()不会错误地触发底层JAR或WAR文件的关闭. (市场)
  • 固定: 60411 :实现在支持RewriteValve的符号名返回重定向响应用户代理时指定重定向代码使用. 迈克尔·奥西波夫(Michael Osipov)提供的补丁. (市场)
  • 固定: 60413 :在RewriteValve在生成重写的URL时,将空的捕获组写为空字符串,而不是"null" . 基于Michael Osipov的补丁. (市场)

Coyote

  • 固定: 60372 :确保在将标头写入套接字时发生IOException时,将响应标头的缓冲区限制重置为该缓冲区的容量. (紫罗兰色)
  • Fix: Ensure that the availability of configured upgrade protocols that require ALPN is correctly reported during Tomcat start. (markt)
  • Fix: 60386: Implement a more sophisticated pruning algorithm for removing closed streams from the priority tree to ensure that the tree does not grow too large. (markt)
  • 固定: 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

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

Tribes

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

WebSocket

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

jdbc-pool

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

Other

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

2016-11-08 Tomcat 8.5.8 (markt)

Coyote

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

not released Tomcat 8.5.7 (markt)

Catalina

  • 固定: 通过JMX创建新的连接器时,请确保可以同时创建HTTP / 1.1和AJP / 1.3连接器. (市场)
  • 固定: 无法将项目添加到缓存时,请在日志消息中包含上下文名称. (市场)
  • 固定: 从静态资源缓存中排除/WEB-INF/lib JAR文件. (市场)
  • 固定: 在目录上调用getResourceAsStream()时,请确保返回null . (市场)
  • 固定: 60161 :允许创建容器记录器的子类别,并将其用于重写阀. (雷姆)
  • 固定: 阅读提供的关机密码时,请正确测试控制字符. (市场)
  • 固定: 60297 :简化嵌入式模式下的连接器创建. (雷姆)
  • 固定: 以嵌入式模式重构容器的创建,以提高一致性和灵活性. (雷姆)
  • 加:oacatalina.connector.CoyoteInputStream / oacatalina.connector.CoyoteOutputStream引入新的方法read(ByteBuffer) / write(ByteBuffer) . (紫罗兰色)
  • 固定: 配置JMX远程侦听器时,请指定凭据的允许类型. (市场)

Coyote

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

Web applications

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

Tribes

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

Other

  • 加: 将JASPIC API jar添加到Maven Central发布脚本中. (市场)
  • 固定: 从tomcat-util-scan.jar中删除与tomcat-util.jar中的类重复的类. (市场)

2016-10-10 Tomcat 8.5.6 (markt)

Catalina

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

Coyote

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

Jasper

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

Web applications

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

jdbc-pool

  • 固定: 返回已标记为可疑的连接时通知jmx. (kfujino)
  • Fix: Ensure that the POOL_EMPTY notification has been added to the jmx notification types. (kfujino)
  • 固定: 60099 :使用StatementCache时,请确保将所有方法参数都用作缓存键. (kfujino)
  • 固定: 60139 :对于正确的Javadoc PoolConfiguration.getValidationIntervalsetValidationInterval . Phillip Webb报道. (kfujino)

Other

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

2016-09-05 Tomcat 8.5.5 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

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

Web applications

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

jdbc-pool

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

Other

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

2016-07-12 Tomcat 8.5.4 (markt)

Catalina

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

Coyote

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

Jasper

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

WebSocket

  • 码: 现在,WebSocket实现不是直接建立在Servlet API之上,而是可以使用Tomcat内部组件,因此不需要专用的WebSocket执行器. 已使用连接器/端点提供的执行程序代替了它. (市场)
  • 固定: 在调用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提供的补丁. (市场)

Extras

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

Tribes

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

jdbc-pool

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

Other

  • 更新: 59276 :将可选的Checkstyle库更新为6.17. (kkolinko)
  • Add: Use the mirror network rather than the ASF master site to download the current ASF dependencies. (markt)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.8,以获取最新的修补程序,并使1.2.8成为最低推荐版本. (市场)
  • 码: 对所有XML文件使用UTF-8和标准序言. (市场)

2016-06-13 Tomcat 8.5.3 (markt)

Catalina

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

Coyote

  • 固定: 确保使用非令牌的HTTP方法名称的请求(RFC 7231要求)以400响应被拒绝. (市场)
  • 固定: 当AJP连接器处理异步请求时,请确保在开始下一个请求之前完全完成了请求处理. (市场)
  • 固定: 改进对HTTP / 2流重置的处理. (市场)
  • 加: 58750 :默认情况下不再设置HTTP Server标头. 可以通过在Connector上设置server属性来配置服务器头. 新的Connector属性serverRemoveAppProvidedValues可用于删除Web应用程序设置的任何服务器标头. (市场)
  • 固定: 59564 :更正了当读入HTTP / 2输入缓冲区时的偏移量,该偏移量可能会导致读取请求正文时出现问题. (紫罗兰/市场)
  • 固定: 修改读/写超时的处理,以便WriteListener.onError()适当的错误处理( ReadListener.onError()WriteListener.onError()AsyncListener.onError() ). (市场)
  • Fix: If an async dispatch results in the completion of request processing, ensure that any remaining request body is swallowed before starting the processing of the next request else the remaining body may be read as the start of the next request leading to a 400 response. (markt)
  • 固定: 解决多次尝试关闭同一套接字的原因. (市场)

Jasper

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

WebSocket

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

Web applications

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

jdbc-pool

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

Other

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

2016-05-16 Tomcat 8.5.2 (markt)

Catalina

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

not released Tomcat 8.5.1 (markt)

Catalina

  • 固定: 59206 :确保当未指定catalina.base时, oatomcat.util.file.ConfigFileLoader不会引发NPE. (紫罗兰色)
  • 固定: 59217 :在oatomcat.util.http.ServerCookie中的路径回收中删除重复oatomcat.util.http.ServerCookie . 补丁由中村京平提供. (紫罗兰色)
  • 固定: 修复了oacatalina.loader.WebappClassLoaderBase.getResourceAsStream (violetagg)中可能存在的NPE
  • 固定: 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以下. (市场)
  • 加: 添加org.apache.catalina.servlet4preview软件包,该软件包可用于获得对Servlet 4.0功能的早期访问. 请注意,此软件包在Tomcat 9中将存在.
  • 固定: 正确配置扩展JAR文件提供的资源目录的基本路径. hengyunabc提供的补丁. (市场)
  • 加: 当有多种压缩格式可用并且客户端未表达首选项时,请使用服务器顺序确定首选格式. 基于gmokki的补丁. (市场)
  • 固定: 59284 :允许Tomcat提供的JASPIC SimpleServerAuthConfig从传递给其构造函数的属性集中或从调用getAuthContext传递的属性中选取模块配置属性. 基于Thomas Maslen的补丁. (市场)
  • 固定: 59310 :请勿为未设置Content-Length值的HEAD请求的自定义响应添加Content-Length: 0标头. (市场)
  • 固定: 规范化路径时,请改善路径以/.结尾的处理/./..并确保输入和输出是否以/结束是一致的. (市场)
  • 固定: 59317 :确保调度后HttpServletRequest.getRequestURI()返回编码的URI,而不是解码的URI. (市场)
  • 固定: 当报告从解压缩的WAR中的JAR处理web-fragment.xml文件时出错时,请使用正确的片段URL. (市场)
  • 固定: 确保JarScanner仅使用显式回调来处理WEB-INF/classes并且仅在配置为将WEB-INF/classes的内容视为可能的分解JAR时使用. (市场)
  • 码: 取下java2DDisposerProtection从选项JreMemoryLeakPreventionListener . Java 7及更高版本中已修复了该漏洞,Tomcat 8需要Java 7,因此该选项是不必要的. (市场)
  • 固定: 使用ALLOW-FROM选项时,请确保根据规范正确构造了标题X-Frame-Options的值. (紫罗兰色)
  • 固定: 如果首次使用内部Response对象需要JASPIC身份验证,请修复IllegalArgumentException . (市场)
  • 固定: 使用JASPIC并使用缓存的凭据对用户进行身份验证时,请勿触发不必要的会话ID更改. (市场)
  • 固定: 59437 :确保JASPIC CallbackHandler是线程安全的. (市场)
  • 固定: 59449 :在ContainerBase ,确保删除子容器的过程与添加一个子容器的过程相反. 张虎星提供的补丁. (市场)

Coyote

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

Jasper

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

WebSocket

  • 固定: 59189 :显式释放被持有的本机内存InflaterDeflater使用PerMessageDeflate时和WebSocket的会话结束. 基于Henrik Olsson的补丁. (市场)
  • 固定: 将容器特定的扩展返回给WsServerContainer,以允许框架更轻松地将请求分发到WebSocket端点. (紫罗兰色)
  • 固定: 修复由连接器重构引起的回归,并确保在服务器上处理WebSocket消息时将线程上下文类加载器设置为Web应用程序类加载器. (市场)
  • 固定: 确保客户端断开连接触发关联的WebSocket端点的错误处理. (市场)
  • 加: 在关闭WebSocket会话期间处理错误时,使WebSocket客户端更强大. (市场)

Web applications

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

Tribes

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

Other

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

2016-03-24 Tomcat 8.5.0 (markt)

General

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

Catalina

  • 更新: 默认的HTTP cookie解析器已更改为org.apache.tomcat.util.http.Rfc6265CookieProcessor . (市场)
  • 码: 重构创造MapperListener以确保Mapper采用的是Mapper与相关Service为其创建监听器. (市场)
  • 加: 移动为上下文根和目录提供重定向的功能,其中将尾随/从映射器添加到DefaultServlet . 这样,在进行重定向之前,任何配置的Valves和Filters都可以处理此类请求. 可以通过Context的mapperContextRootRedirectEnabledmapperDirectoryRedirectEnabled属性来配置此行为, mapperDirectoryRedirectEnabled属性可用于还原以前的行为. (市场)
  • 码: 重构Service.getContainer()以返回Engine而不是Container . (市场)
  • 固定: 34319StoreBase.processExpire JDBCStore加载StoreBase.processExpire中足够旧的键以使其过期. 基于Tom Anderson的补丁. (fschumacher)
  • 加: 58351 :使服务器构建日期和服务器版本号可通过JMX访问. 张虎星提供的补丁. (市场)
  • 加: 56917 :根据RFC7231(HTTP / 1.1),允许HTTP / 1.1和更高版本的重定向使用相对URI. 这由Context上的新属性useRelativeRedirects控制,默认为true . (市场)
  • 固定: 58629 :当未配置Service Engine时,允许嵌入式Tomcat实例启动. (市场)
  • 固定: 如果该服务的引擎已更改,请正确通知与该服务关联的MapperListener. (市场)
  • 加: 通过上下文属性使Web应用程序的CredentialHandler可用. 这允许Web应用程序使用相同的算法从明文验证或生成新存储的凭据. (舒尔茨)
  • 固定: 58635 :使用Java代理运行Tomcat时,允许在代理代码中设置断点. 基于张虎星的补丁. (市场)
  • 固定: 修复了部署应用程序时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)
  • Fix: 58751: Correctly handle the case where an AsyncListener dispatches to a Servlet on an asynchronous timeout and the Servlet uses sendError() to trigger an error page. Includes a test case based on code provided by Andy Wilkinson.(markt)
  • 固定: 确保DefaultServlet为自述文件提供服务时,如果指定了正确的文件编码. (紫罗兰色)
  • 固定: 修复连接器MBean的localPort属性的声明:它是只读的. (kkolinko)
  • 固定: 58766 :通过首先检查文件名,可以更快地在注释扫描期间跳过非类文件. 改善调试日志记录. (kkolinko)
  • 固定: 58768 :如果由于无效位置导致重定向失败,则记录警告. (市场)
  • 码: 58827 :删除JSR-77实施的其余部分. (市场)
  • 固定: 58836 :在处理转发的请求时正确合并查询字符串参数,其中目标包括查询字符串,该查询字符串包含无值的参数. (市场/ kkolinko)
  • 固定: 确保在HostConfig.deployWAR()中发生不太可能的错误情况下重置共享Digester. (kkolinko)
  • 加: 扩展群集会话管理器实现中可用的功能,该功能使会话属性复制可以基于属性名称过滤到所有会话管理器实现中. 请注意,配置属性名称已从sessionAttributeFilter更改为sessionAttributeNameFilter . 在加载和卸载时应用筛选器,以确保将Web应用程序停止时所做的配置更改应用于所有持久数据. (市场)
  • 加: 扩展会话属性过滤选项,使其包括基于值的实现类的过滤和可选的WARN级别日志记录(如果已过滤属性). 这些选项可用于Tomcat附带的所有Manager实现. 使用SecurityManager ,默认情况下将启用过滤. (市场)
  • 码: 由于从不使用属性, maxInactiveIntervalManager界面中删除distributablemaxInactiveInterval . Context的等效属性始终优先. (市场)
  • 固定: 58867 :改进了在Tomcat停止时已修改的WAR文件的主机启动检查,如果unpackWARstrue ,则重新展开它们. (市场)
  • 固定: 58900 :正确取消部署符号链接的资源,并防止部署/取消部署的无限周期. (市场)
  • 固定: 与SecurityManager一起运行时,保护ResourceLinkFactory初始化. (kkolinko)
  • 固定: 根据值对象的实现类名称,纠正会话属性过滤中的线程安全问题. (市场)
  • 固定: 将类加载器决策固定在类加载和资源查找的委托上,并使其更快. (荣)
  • 固定: 58905 :确保Tomcat.silence()使正确的记录器Tomcat.silence()并遵守当前设置. (市场)
  • 固定: 58946 :确保通过RequestDispatcher处理时,请求参数映射保持不变. (市场)
  • 固定: 确保从未将/WEB-INF/classes作为Web片段处理. (市场)
  • 更新: 安装本机时切换默认连接器. 除非另行配置,否则默认情况下将使用NIO端点. 如果配置了SSL,将使用OpenSSL而不是JSSE. (雷姆)
  • 固定: 修正58867的修正中的回归. 当配置上下文以将外部目录用于docBase ,并且该目录恰好位于原始WAR的旁边,请将该目录用作docBase而不是将WAR扩展到appBase并使用新创建的扩展目录作为docBase . (市场)
  • 加: 58988 :现在可以用反斜杠将RewriteValve的替换中的特殊字符引起来. (fschumacher)
  • Fix: 58999: Fix class and resource name filtering in WebappClassLoader. It throws a StringIndexOutOfBoundsException if the name is exactly "org" or "javax". (rjung)
  • 补充: 加入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()则在与单点登录关联的会话到期时避免警告. (市场)
  • Fix: 59054: Ensure that using the CrawlerSessionManagerValve in a distributed environment does not trigger an error when the Valve registers itself in the session. (markt)
  • 固定: 将套接字属性支持添加到storeconfig. (雷姆)
  • 固定: 修复了重写规则中对NE和NC标志的错误解析. (雷姆)
  • 固定: 59065 :更正在catalina.sh实现的非Windows系统上的路径中冒号检查的时间,以便它与Cygwin一起正常工作. Ed Randall提供的补丁. (市场)
  • 固定: 如果主机配置了不存在的appBase,请在尝试将外部WAR文件扩展到其中之前创建appBase. (市场)
  • Fix: 59115: When using the Servlet 3.0 file upload, the submitted file name may be provided as a token or a quoted-string. If a quoted-string, unquote the string before returning it to the user. (markt)
  • 固定: 59123 :一旦不再需要JNDIRealm使用的NamingEnumeration对象,请关闭它们. (舒马赫/市场)
  • 加: 实现建议的Servlet 4.0 API,以提供当前请求的映射类型信息. (市场)
  • 固定: 59138 :当Web应用程序类加载器已加载键类而非值类时,更正了针对ThreadLocal相关的内存泄漏的误报警告. (市场)
  • 加: 59017 :在Default Servlet泛型中提供预压缩文件支持,因此可以使用任何压缩方式,而不仅仅是gzip. Mikko Tiihonen提供的补丁. (市场)
  • 固定: 59145 :当用户注销与SSO关联的会话时,请不要记录无效的警告. (市场)
  • 固定: 59150 :在APR侦听器上添加一个附加标志,以允许自动使用OpenSSL. (雷姆)
  • 固定: 59151 :修复了针对56917的修订中的回归问题,该回归向所提供的重定向位置添加了其他(可能是不必要的)验证. (市场)
  • 固定: 59154 :修复了将CredentialHandler引入Realm导致的JAASMemoryLoginModuleNullPointerException . (舒尔茨/马克特)

Coyote

  • 更新: 删除对HTTP BIO和AJP BIO连接器的支持. (市场)
  • 码: 重构HTTP升级和AJP实现以减少重复. (市场)
  • 加: 增加了对Stuart Douglas贡献的HPACK标头编码和解码的支持. (雷姆)
  • 加: 57108 :添加了对服务器名称指示(SNI)的支持. 为了支持此功能,server.xml中的SSL配置进行了重大更改. (市场)
  • 加: 添加由OpenSSL支持的JSSE的SSL引擎. 包括ALPN支持. 基于Numa de Montmollin贡献的代码,并源自Twitter和Netty开发的代码. (雷姆)
  • 固定: RFC 7230规定客户端应忽略HTTP / 1.1响应消息中的原因短语. 由于原因短语是可选的,因此Tomcat不再发送它. 结果,系统属性org.apache.coyote.USE_CUSTOM_STATUS_MSG_IN_HEADER不再使用,并且已被删除. (市场)
  • 更新: 最低要求的Tomcat本机版本已增加至1.2.2. 1.2.x分支包括HTTP / 2所需的ALPN和SNI支持. (市场)
  • 加: 添加对HTTP / 2的支持,包括服务器推送. (市场)
  • 固定: 58621 :不能使用主证书属性设置证书链,因此请还原证书链属性. (雷姆)
  • 固定: 允许连接器可以使用JSSE或OpenSSL的新SSL配置类型. 两者都可以允许,但可能会造成支持问题. NIOx的OpenSSL实现使用此类型. (雷姆)
  • 固定: 通过使用Context.bind和unbind改进升级上下文类加载器的处理. (雷姆)
  • 加: 通过使用JSSE实现中的代码来改进OpenSSL密钥库/信任库配置. (雷姆,jfclere)
  • 固定: 修复客户端意外断开连接时的潜在循环. (市场)
  • 加: 客户端证书身份验证的OpenSSL重新协商支持. (雷姆)
  • 固定: 修复NIO连接器重新协商. (雷姆)
  • Fix: 58659: Fix a potential deadlock during HTTP/2 processing when the connection window size is limited. (markt)
  • 固定: 列出启用TLS的APR /本机连接器的启用密码(例如,通过Manager Web应用程序)时,请更正NPE. (市场)
  • 加: AJP连接器的新配置选项ajpFlush禁用了AJP刷新数据包的发送. (荣)
  • 固定: 在NIO连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (市场)
  • 固定: 在NIO2连接器中处理启动连接后所需的TLS缓冲区大小增加的情况. (标记/毫米)
  • 固定: NIO2中握手错误的处理不正确. (雷姆)
  • 固定: 将JSSE会话配置选项与OpenSSL一起使用. (雷姆)
  • 固定: 59015 :如果在关闭过程中Poller遇到错误,请修复关闭期间APR Poller循环不断的潜在原因. (市场)
  • 固定:kECDHEECDHE密码别名与当前的OpenSSL实现对齐. (市场)
  • 固定: 59081 :定义密码时,请保留用户定义的密码顺序. (市场)
  • 固定: 59089 :正确忽略标题名称中包含非令牌字符的HTTP标题. (市场)

Jasper

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

Cluster

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

WebSocket

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

Web applications

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

Tribes

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

jdbc-pool

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

Other

  • 加: 允许使用构建属性test.name配置多个JUnit测试类模式,并在BUILDING.txt中记录该属性. (荣)
  • 加: 支持在Ant的junit任务上使用threads属性. 请注意,使用大于1的值将禁用Cobertura代码覆盖率. (市场)
  • 更新: 将可选的Checkstyle库更新为6.14.1. (kkolinko)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.4,以获取基于OpenSSL 1.0.2e和APR 1.5.1的Windows二进制文件. (市场)
  • 更新: 将用于生成Windows Installers的NSIS Installer更新到2.50版. (市场/ kkolinko)
  • 更新: 将Commons BCEL的内部fork更新为r1725718,以与BCEL 6(下一个主要的BCEL版本)的重构保持一致. (市场)
  • Update: Update the internal fork of Commons DBCP 2 to r1725730 (2.1.1 plus additional fixes). (markt)
  • 更新: 将Commons Pool 2的内部fork更新为r1725738(2.4.2以及其他修复程序). (市场)
  • 更新: 将Commons Codec的内部fork更新为r1725746(1.9和其他修复程序). (市场)
  • 固定: 58283 :在构建过程中,将库的默认下载位置从/usr/share/java更改${user.home}/temp . 艾哈迈德·霍斯尼(Ahmed Hosni)提供的补丁. (市场)
  • 固定: 59031 :使用Windows卸载程序时,请勿删除已符号链接到Tomcat目录结构中的任何目录的内容. (市场)
  • 更新: 将Tomcat本机库的打包版本更新为1.2.5,以获取基于OpenSSL 1.0.2g和APR 1.5.1的Windows二进制文件. (市场)
  • 更新: 修改默认的tomcat-users.xml文件,使用户难以配置打算与Manager应用程序的示例Web应用程序一起使用的条目. (市场)

by  ICOPY.SITE