Spring Securityで、残りのapiのすべてのエンドポイントをロックし、ユーザー名とパスワードをまったく使用せずにカスタム検証を実行してログインできるかどうか疑問に思っていました。ユーザーのパスワードを使用しないSpring Securityのカスタム検証
これは、ユーザー/パスではなくトークンを受け取るカスタム検証メソッドを作成するようなものです。メソッドは、呼び出し元をすでに検証している第三者とトークンを検証します。
これは、バックエンドのAPIは、スプリングにより、セキュアであることが必要であり、同時にそれはのOAuth2クライアントではないだけというのOAuth2に聞き覚え:
- 私たちは、ログイン機能を構築しています。
- 私たちは、クライアント(モバイルアプリケーション)、バックエンド(エンドポイントのようなエンドポイントのSpring MVC)、OAuth2/OpenIdConnectフローのAuthProviderを持っています。
- OAuth/OpenIDConnectフローは、モバイルとOpenIDProvider間でのみ発生します。 (最初の呼び出しは、モバイルからバックエンドへと発生し、oauthフローの詳細を提供します)
- モバイルアプリケーションはauth_codeを受信し、その後、バックエンドがアプリから「ログイン」に呼び出されます。 auth_code、access_tokenの交換、およびユーザーセッションの作成。 (セッションが必要です)。
- セッションを作成する前にauth_codeだけを受け取る必要があるという点で、バックエンドの種類の「ログイン」を参照し、AuthProviderでそれを検証します。
ありがとうございました!
ご意見、ご感想などありがとうございます。
ありがとうRob Winch!あなたのアドバイスに続いて、私はカスタムのバリデーションを処理するカスタムフィルターとプロバイダーを使用することができました。 – munilvc