私は春のセキュリティで保護されたアプリケーションに手動でログインする必要があります。 私のシナリオでは、私の春のアプリケーションへのリンクが利用可能になるアプリケーション1. 春のセキュリティ事前認証されたユーザーのログイン
- ユーザーがログインです。
- ユーザーがリンクをクリックすると、アプリケーション1は春のアプリケーションのセキュリティで保護されていないURLに暗号化されたデータを投稿します。
- 私のコントローラは、暗号化されたデータを受信し、アプリケーション1のWebサービス を呼び出します。暗号化されたデータがWebサービスで渡され、ユーザー名の応答が返されます。
- 一度私はユーザー名を取得します。私は再認証したくありません。私はちょうどユーザープリンシパル/認証オブジェクトを設定し、ダッシュボードをロードしたい。
手順1〜4が動作しています。
暗号化されたデータを取得した私のセキュリティで保護されていないコントローラ 私は次の行を持っていますが、これも私の認証マネージャーを呼び出すため、このシナリオではもう一度認証しません。セッションを作成し、ユーザープリンシパルを設定したいだけです。
String username = application1.webservice(encoded data);
Authentication authentication = new UsernamePasswordAuthenticationToken(username,password);
SecurityContextHolder.getContext().setAuthentication(authentication);
return "redirect:/app";
注:私は、フォームベースのLDAP認証が働いて、私は春のセキュリティ3.2/Javaのコンフィグを使用しています を(ユーザが直接私のアプリにログインしている場合、これが使用されます)持っているSecurityContextPersistenceFilter
が担当する
こんにちは、ありがとうございました。私は提供されたカスタム認証を追加して解決しました。 – Mukun