0

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

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

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

2014-02-13 14:20:38.113:WARN:oejx.XmlConfiguration:Config 错误在真 java.lang.NoSuchMethodException: 类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 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.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:真正的 java.lang.NoSuchMethodException 处的配置错误:类 org.eclipse.jetty.server.session.AbstractSessionManager$2.setSecure(boolean) 2014-02-13 14:20:38.115:WARN:oejd.DeploymentManager:Unable to reach节点目标:启动 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) 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) 在 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:350) 在 org.eclipse.jetty 的 org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.configure(XmlConfiguration.java:397) .xml.XmlConfiguration.configure(XmlConfiguration.java:303)

任何人都看到任何明显的错误?

4

1 回答 1

1

事实证明,Jetty 中有一个错误,它的 XML 配置(有点像 Spring,但比它早)不能调用匿名内部类的公共设置器(这就是 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 在码头邮件列表中诊断此问题。

于 2014-02-14T14:39:38.137 回答