在Jetty 6上设置安全cookie - > 8升级

时间:2014-02-13 19:32:44

标签: cookies jetty session-cookies jetty-8

我一直盯着这几个小时,这显然是错的,但我不知所措......

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

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

在jetty 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>

但是码头未能提出这个错误:

  

2014-02-13 14:20:38.113:警告:oejx.XmlConfiguration:真正的java.lang.NoSuchMethodException上的配置错误:class org.eclipse.jetty.server.session.AbstractSessionManager $ 2.setSecure(boolean)   2014-02-13 14:20:38.113:警告:oejx.XmlConfiguration:真正的java.lang.NoSuchMethodException上的配置错误:class org.eclipse.jetty.server.session.AbstractSessionManager $ 2.setSecure(boolean)   2014-02-13 14:20:38.114:警告:oejx.XmlConfiguration:真正的java.lang.NoSuchMethodException上的配置错误:class org.eclipse.jetty.server.session.AbstractSessionManager $ 2.setSecure(boolean)   2014-02-13 14:20:38.114:警告:oejx.XmlConfiguration:真正的java.lang.NoSuchMethodException上的配置错误:class org.eclipse.jetty.server.session.AbstractSessionManager $ 2.setSecure(boolean)   2014-02-13 14:20:38.115:警告:oejd.DeploymentManager:无法达到节点目标:已启动   java.lang.NoSuchMethodException:class org.eclipse.jetty.server.session.AbstractSessionManager $ 2.setSecure(boolean)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.set(XmlConfiguration.java:586)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:391)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.get(XmlConfiguration.java:669)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:397)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.get(XmlConfiguration.java:669)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:397)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.get(XmlConfiguration.java:669)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:397)           at org.eclipse.jetty.xml.XmlConfiguration $ JettyXmlConfiguration.configure(XmlConfiguration.java:350)           在org.eclipse.jetty.xml.XmlConfiguration.configure(XmlConfiguration.java:303)

有人看到任何明显错误的东西吗?

1 个答案:

答案 0 :(得分:1)

事实证明Jetty中存在一个错误,它的XML配置(类似于Spring,但是在它之前的日期)不能调用匿名内部类的公共setter(这就是SessionCookieConfig的实现方式)

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

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

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

感谢Joakim Erdfelt和Jan Bartel在码头邮件列表上对此进行诊断。