我在我的生产环境中使用Tomcat,在我的测试环境中使用jetty(通过jetty-maven-plugin)。
Tomcat在jsessionid-cookie上设置安全标志,当它通过安全通道(https)发送时,这对我来说是个好主意,因为当用户点击时它会阻止会话被暴露在http://-link上。但Jetty不是这样!
我想强制Jetty表现得像Tomcat一样,并且总是通过安全通道设置jsessionid-cookies上的安全标志,否则,我的测试环境与我的生产环境相比有很大的不同。但我找不到任何配置选项来实现这个目标。
我也想知道,如果这是Jetty中的安全漏洞。因为没有标记jsessionid-cookie通过安全通道发送,因为如果用户切换回不安全的通道,安全会显示安全会话。
答案 0 :(得分:4)
我正在添加以下内容,以显示适用于我的完整示例。
将以下内容放入WEB-INF / jetty-web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">
<Configure class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="sessionHandler">
<Get name="sessionManager">
<Set name="secureCookies" type="boolean">true</Set>
</Get>
</Get>
</Configure>
答案 1 :(得分:1)
设置secureCookies属性所需的配置更改可以添加到jetty-web.xml文件中:
<Get name="sessionHandler">
<Get name="sessionManager">
<Set name="secureCookies">true</Set>
</Get>
</Get>