1

私は Apache Ignite を使用して Web セッションをクラスター化し、Spring セキュリティを使用してフォームベースの認証を行っています。私が使用するソフトウェアは次のとおりです。

  • JDK1.8.0_60
  • アパッチ トムキャット 7.0.68
  • Apache Ignite 1.5.0.final
  • 春のセキュリティ 3.1.3.RELEASE

(Apache Ignite を使用しない場合、フォーム ベースの認証は正常に機能し、認証の成功時に JSESSIONID Cookie が変更され、予想どおり、セッション固定攻撃から保護されます。)

Apache Ignite ではログインできず、次の警告が表示されます。

2016-04-18 16:49:07,283 WARN  org.springframework.security.web.authentication.session.SessionFixationProtectionStrategy/onAuthentication 102 - Your servlet container did not change the session ID when a new session was created. You will not be adequately protected against session-fixation attacks

以下のように、Spring 構成でセッション固定保護をオフにすると:

<http>
    ...
    <session-management session-fixation-protection="none" />
    ...
</http>

できます。(ただし、結果として、JSESSIONID Cookie は認証の成功時に変更されません。)

4

2 に答える 2

1

Valentin (ありがとう) のアドバイスに従って、バージョン 1.6.0-SNAPSHOT#20160419-sha1:186c8604 の Apache Ignite からナイトリー ビルドを試しました。確かに、それは機能します。

次の Spring セキュリティ構成で動作します。

<http>
    ...
    <session-management session-fixation-protection="none" />
    ...
</http>

もちろん、JSESSIONID Cookie は、Spring セキュリティ認証が成功しても変更されません。

次に、次の構成をコメントアウトします。

<session-management session-fixation-protection="none" />

それも機能します。そして、認証が成功すると、JSESSIONID Cookie が想定どおりに変更されます。

OK、今のところ Ignite バージョン 1.5.0.final を使用し (セッション固定保護なし)、バージョン 1.6.x のリリースを待ちます。

于 2016-04-19T11:56:34.853 に答える