在使用安全通道时,如何让jetty使用secure-flag发送jsessionid-cookies

时间:2010-06-14 14:53:11

标签: security tomcat cookies encryption jetty

我在我的生产环境中使用Tomcat,在我的测试环境中使用jetty(通过jetty-maven-plugin)。

Tomcat在jsessionid-cookie上设置安全标志,当它通过安全通道(https)发送时,这对我来说是个好主意,因为当用户点击时它会阻止会话被暴露在http://-link上。但Jetty不是这样!

我想强制Jetty表现得像Tomcat一样,并且总是通过安全通道设置jsessionid-cookies上的安全标志,否则,我的测试环境与我的生产环境相比有很大的不同。但我找不到任何配置选项来实现这个目标。

我也想知道,如果这是Jetty中的安全漏洞。因为没有标记jsessionid-cookie通过安全通道发送,因为如果用户切换回不安全的通道,安全会显示安全会话。

2 个答案:

答案 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>