0

外部と内部の 2 つの異なるログインがあります。外部は外部のホームページにあるため、ログインすると「メイン」ページにリダイレクトされ、内部はメイン ページにあります。問題は、外部フォームにログインしてリダイレクトされた後、外部ページに戻ると、 isAuthenticated() が true であるため、再度リダイレクトされることです。外部ページにいるときに isAuthenticated ステータスを false に設定するにはどうすればよいですか。

「remember_me」を無効にするか、別のセッション認証戦略または別の authenticationManager に設定する必要がありますか。

アイデア/ヒントはありますか?任意の助けのためのthx。

4

1 に答える 1

1

私はあなたが別のユーザーのセットを持っていると仮定しています。したがって、はい、別の認証マネージャーが必要になります。内部と外部のいずれかを構成し、構成でそれらを参照しhttpます。また、別のセキュリティ コンテキストが必要になることもあります。一部の内部ユーザーを外部ユーザーと区別する戦略を使用しています。セクションの 1 つを<http...通常どおりに構成します。しかし、もう一方は次のようになります。

<bean id="internalSecurityContextRepository" 
    class="org.springframework.security.web.context.HttpSessionSecurityContextRepository">
    <property name="springSecurityContextKey" value="SPRING_SECURITY_CONTEXT.internal"/>
</bean>

次に、内部構成で、新しいコンテキスト リポジトリを参照していることを確認します。

<sec:http pattern="/internal/**"
    security-context-repository-ref="internalSecurityContextRepository"
    authentication-manager-ref="internalAuthenticationManager"
    ... other stuff ... />

この構成により、Spring は内部と外部で異なる認証マネージャーと異なるユーザー セットを使用できるようになります。

于 2013-09-13T23:54:15.267 に答える