0

LDAP ベースの認証から SSO (Oracle の WebGate) に移行しています。

現在、LDAP ベースでは、位置に ( UsernamePasswordAuthenticationFilter) を使用したフォーム ベースの認証を使用していますFORM_LOGIN_FILTER

SSO の場合、ユーザーは事前認証され、ユーザー名を含むリクエスト ヘッダーが送信されます。位置で使用RequestHeaderAuthenticationFilterする予定です。PRE_AUTH_FILTER

問題は、これらのフィルターの両方を同時に存在させ、プロパティ ファイルの値に基づいてフィルターを切り替える機能が必要なことです。これは、実稼働環境で SSO が期待どおりに機能しないため、LDAP に簡単にフォールバックできるシナリオ用です。

私の質問は、これを適切に実装する方法です。これらの位置に 2 つのフィルターが同時に存在する場合、副作用はありますか? これらのフィルターの両方を拡張し、継承されたクラスにプロパティ チェックを追加する方が良いですか、それともそれらの間の切り替えを処理する複合フィルターを作成する方が良いですか?

4

1 に答える 1

1

フォームログインフィルターは特定の場所(例:/ j_spring_security_check)でのみリクエストを処理するため、フォームログインフィルターを配置しても他のフィルターの機能に影響を与えることはありません。したがって、述べた元の質問はかなり簡単です。質問する必要があるより重要な質問は、認証されていない要求を処理する方法です。新しいSSOソリューションでそれがどのように機能するかを決定し、アプリにログインフォームを表示するために切り替えるために使用できるものを構築できるかどうかを確認する必要があります(そして、その決定がどのように行われるかを設計する必要があります-たとえば、プロパティファイルのフラグまたは実行時の決定)。フォールバックの観点から、すぐに実行できると考えているが、アプリの再起動を気にしない場合は、Springプロファイルをお勧めします。

于 2013-01-10T10:08:56.990 に答える