0

次のシナリオがあります。

  1. 私はWebアプリケーションにアクセスします.Spring Securityを利用し、セッションでオブジェクトを作成します.いくつかのエントリを持つカートとしましょう.
  2. Restful クライアントを使用してアプリケーションにアクセスします。私は持っています:ユーザー、パスワード、対応する値を持つJSESSIONID Cookie。どちらも基本認証を使用しています。

結果?オブジェクト (この場合はカート) を取得しますが、中身は空です。追加されたエントリはありません。まるで、認証に成功したとしても、既存のオブジェクトを提供する代わりに、オブジェクトの新しいインスタンスを作成するメカニズムが存在するということです。

春のセキュリティが何らかの形でこれを許可していないという考えはありますか。

また、... Cookie JSESSIONID=Number を送信すると、応答すると、JSESSIONID の別の番号が返されます。私の仮定は、ライト資格情報があり、ログインできるにもかかわらず、許可されないということです。同じセッションを使用するには、新しいセッションが作成されるだけで、カートは空です。

どんな助けでも大歓迎です!

4

2 に答える 2

0

SpringSecurity は、認証後に JSESSIONID Cookie を置き換えます (また、セッション固定攻撃を防ぐために機能を無効にしないことを強くお勧めします)。次の構成により、機能が有効になります

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

既存のセッション属性をコピーするには、migrateSession.

ドキュメントhttp://static.springsource.org/spring-security/site/docs/3.2.x/reference/springsecurity-single.html#session-mgmtによる属性値:

  • migrateSession - 新しいセッションを作成し、既存のセッション属性を新しいセッションにコピーします。これがデフォルトです。
  • none - 何もしません。元のセッションは保持されます。
  • newSession - 既存のセッション データをコピーせずに、新しい「クリーンな」セッションを作成します。
于 2013-05-02T13:16:58.103 に答える