短い回答:あなたのアプリケーションが完全に春のセキュリティを使用するようにリファクタリングしない限りできません。
少し長い答え:Java EEコンテナのログイン(事前認証済み)を「偽造」できます。これは、あなたの春のセキュリティHTTP設定でAbstractPreAuthenticatedProcessingFilter
から派生したログインフィルタを指定することを必要とします。たとえば、フィルタにリクエストをラップし、ヘッダ値を追加してRequestHeaderAuthenticationFilter
を使用するか、独自のログインフィルタでリクエストに設定したリクエスト属性からプリンシパルをプルすることができます。 PreAuthenticatedAuthenticationProvider
と組み合わせてください。
少し長めの答え#2:セッションの並行処理でスプリングセキュリティを設定し、すべてのURLに対してpermitAll(<intercept-url pattern="/*" access="permitAll" />
)のアクセス権を設定する、すべての種類の設定を使用できます。しかし、あなたは自分のログインロジックにConcurrentSessionControlStrategy
が何をしているのかを本質的に実装して、セッションをスプリングセキュリティSessionRegistry
に登録する必要があります。あなたは、道に沿って他のいくつかの絡み目に遭遇する可能性が最も高いでしょう。春-セキュリティがサーブレットフィルタ(Spring MVCのようではない、サーブレット)に基づいて動作しますので、
注ただし、フィルタとして独自のログインをリファクタリングし、春のセキュリティフィルタの前にそれを配置する必要があることあなた自身の認証論理と春のセキュリティのいくつかの組み合わせを使用する場合、チェーン。
私は、スプリングセキュリティを利用してセッションを同時に制御したい場合は、カスタムサーブレットではなく、スプリングセキュリティの上に認証を構築する必要があります。フレームワークと戦わないで、それを意図どおりに使用してください。または、まったく使用しないでください。
出典
2012-04-20 12:30:17
pap
これは同時セッション制御ではありません。 CSCは、認証されたユーザーが2つのブラウザまたはコンピュータを使用しているため、アプリケーションに現在のセッションが2つある場合です。いつ現在のユーザーセッションを無効にしたいのですか? – sinuhepop
私たちのアプリでは認証が行われているので、私はCSCのためだけにSpring Securityを使用しようとしました。以下の答えに従って、私はCSCを取得するためにSpring認証を使用する必要があることを理解しています。 – user1346346