我一直盯着这几个小时,这显然是错的,但我不知所措......
在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)
有人看到任何明显错误的东西吗?
答案 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在码头邮件列表上对此进行诊断。