首页 文章

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

提问于
浏览
6

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

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

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

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

2 回答

  • 1

    我添加以下内容只是为了展示对我有用的完整示例 .

    将以下内容放在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>
    
  • 3

    设置secureCookies属性所需的配置更改可以添加到jetty-web.xml文件中:

    <Get name="sessionHandler">
      <Get name="sessionManager">
        <Set name="secureCookies">true</Set>
      </Get>
    </Get>
    

相关问题