2

春のセキュリティ、セッションの同時実行は非常に奇妙です。

<sec:session-management>
        <sec:concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</sec:session-management>

このコードは、時間内にログインできるユーザーは 1 人だけであることを意味します。

  1. ログアウトボタンを押すよりも、ログインに成功しました。ログアウトに成功しました(ユーザー名がわかりません)。しかし、再ログインしようとすると、最大セッションを超えたという例外が発生します。春のセキュリティのセッションは明らかに削除されていませんか?
  2. ログインを終了します。ログアウトせずに、もう一度ログインしようとします。まだログインできます。しかし、2回目に再ログインすると、最大セッションを超えたという例外が発生します。初めて再ログインしようとすると、ログインを拒否する必要があると思います。

返信ありがとうございます よろしくお願いします

4

3 に答える 3

9

web.xmlセッション管理に必要なように、 でリスナーを構成することを忘れていないことを確認してください。

<listener>
    <listener-class>
        org.springframework.security.web.session.HttpSessionEventPublisher
    </listener-class>
</listener>
于 2011-01-03T13:43:07.827 に答える
1

スプリングセキュリティは、ログアウト時に現在のセッションを無効にするように指示されていないと思います。これは、ここ<logout>に記載されているように要素ごとに行うことができます

于 2011-01-03T07:03:59.207 に答える
0

ラグラムが正しいと思います。

次のことを試してください:

<logout invalidate-session="true" logout-url="/logout.htm"
logout-success-url="/login.jsp?loggedout=true" />

ここでは、ログアウト時にセッションを無効にし、ユーザーをログイン ページにリダイレクトしています。これが役に立てば幸いです。そうでない場合は、お知らせください。

于 2011-01-03T12:14:02.980 に答える