0

私は何時間もこれを見つめてきましたが、明らかに何かが間違っているに違いありませんが、途方に暮れています...

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>

しかし、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:真の 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.114:WARN:oejx。 XmlConfiguration: true 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) at org.eclipse.jetty.xml.XmlConfiguration$JettyXmlConfiguration.set(XmlConfiguration.java:586) at org.eclipse.jetty.xml. 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)

明らかに間違っていることを見た人はいますか?

4

1 に答える 1

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>

これを診断してくれた jetty メーリングリストの Joakim Erdfelt と Jan Bartel に感謝します。

于 2014-02-14T14:39:38.137 に答える