我们有一个在Tomcat 8.5上使用Websockets和Spring的应用程序
我们发现使用这种东西组合会遇到问题
<security-constraint>
在tomcat中强制SSL连接我们遇到的问题是这个。
WebSocket - Safari 9 - Invalid UTF-8 sequence in header value
基本上,Safari会向其发送一个空的Expires标头。之所以为空是由于SPR-14053,它引入了在配置缓存时重置Expires Header的功能。
https://github.com/spring-projects/spring-framework/issues/18625
正在发生的是在Tomcat中使用并且未禁用ProxyCaching,Tomcat设置和Expires Header的情况
我相信,因为Header之前是由Tomcat设置的,因此没有从响应中删除Expire标头,而是将其简单地设置为空白,这会导致Safari出现问题。
我知道我可以解决此问题,我的问题是,此问题的解决方法应该在哪里?是否应将此文件提交到Safari,Spring或Tomcat的错误列表中?
答案 0 :(得分:0)
哦,我刚刚意识到,在Safari之外,他们将其行为修复为空标题。最好将以下内容添加到context.xml
<Valve className="org.apache.catalina.authenticator.SSLAuthenticator" disableProxyCaching="false"/>
并允许Spring正常设置缓存属性。而不是让Tomcat和Spring都在为使用哪种缓存标头而战。