SpringBootで sernamePasswordAuthenticationToken を使用してユーザーを認証しています。
そのユーザーに対して [〜#〜] jjwt [〜#〜] を使用してトークンを生成し、それを返します。
これで、ユーザーはそのトークンを使用して、それ以上のリクエストを私に送信します。トークンを復号化した後、 PreAuthenticatedAuthenticationToken を使用して、それをSecurityContextHolder.getContext().setAuthentication()
に設定する必要がありますか?
PreAuthenticatedAuthenticationToken
の目的は何ですか?
PreAuthenticatedAuthenticationToken
の目的は、サードパーティのID管理システムをSpringSecurityを使用してSpringアプリケーションに統合することです。
PreAuthenticatedAuthenticationToken
は、HTTPヘッダー、HTTPパラメーターなどの形式で提供されます。この場合、アプリケーションにユーザー登録全体が存在する必要はありません。このトークンと関連データを保存するだけで十分です。
これについて詳しくは、 Spring Security Documentation を参照してください。
ただし、JWTケースの場合、復号化後にUsernamePasswordAuthenticationToken
を使用することもできます。これは、復号化プロセスによってユーザー名、パスワード、権限が明らかになるためです。