【问题标题】:Setting secure cookies on Jetty 6 -> 8 upgrade在 Jetty 6 -> 8 升级上设置安全 cookie
【发布时间】:2014-03-12 21:31:50
【问题描述】:

我已经盯着这个看了好几个小时,肯定有什么明显的问题,但我不知所措......

在 jetty6 中,您曾经能够像这样在 Web 应用程序中设置安全 cookie(在 WAR 对应的 $jetty_home/contexts/foo.xml 上下文文件中):

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

在码头 8.1.8.v20121106 中,执行此操作的路径似乎是(在代码中):

WebAppContext
.getSessionHandler()
.getSessionManager()
.getSessionCookieConfig()
.setSecure(true);

所以,好吧...我在我的 WebApp 的上下文 XML 配置中这样做:

  <Configure class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="sessionHandler">
      <Get name="sessionManager">
        <Get name="sessionCookieConfig">
          <Set name="secure" type="boolean">true</Set>
        </Get>
      </Get>
    </Get>

但是jetty没有出现这个错误:

2014-02-13 14:20:38.113:WARN:oejx.XmlConfiguration:在真 java.lang.NoSuchMethodException 处配置错误:类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 2014-02-13 14:20:38.113:WARN:oejx.XmlConfiguration:Config 错误在 true java.lang.NoSuchMethodException: 类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 2014-02-13 14:20:38.114:WARN:oejx.XmlConfiguration:Config 错误在真 java.lang.NoSuchMethodException: 类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 2014-02-13 14:20:38.114:WARN:oejx.XmlConfiguration:Config 错误在真 java.lang.NoSuchMethodException: 类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 2014-02-13 14:20:38.115:WARN:oejd.DeploymentManager:无法达到节点目标:开始 java.lang.NoSuchMethodException: 类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.set(XmlConfiguration.java:586) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:391) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.get(XmlConfiguration.java:669) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:397) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.get(XmlConfiguration.java:669) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:397) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.get(XmlConfiguration.java:669) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:397) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:350) 在 org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:303)

有人看到明显的错误吗?

【问题讨论】:

    标签: cookies jetty session-cookies jetty-8


    【解决方案1】:

    事实证明 Jetty 中存在一个错误,它的 XML 配置(有点像 Spring,但比它早)不能调用匿名内部类的公共设置器(这就是 SessionCookieConfig 的实现方式)

    https://bugs.eclipse.org/bugs/show_bug.cgi?id=428157

    我将尝试将安全 cookie 配置添加到我们应用的 web.xml 中,如下所示:

    <session-config>
     <cookie-config>
      <secure>true</secure>
     </cookie-config>
    </session-config>
    

    感谢 Joakim Erdfelt 和 Jan Bartel 在码头邮件列表中诊断此问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-11
      • 1970-01-01
      • 2011-06-02
      • 1970-01-01
      • 2017-11-24
      • 2023-03-10
      • 2014-03-12
      • 2011-10-12
      相关资源
      最近更新 更多