春のセキュリティモジュールでOAuth2パスワード付与を実装しました。UserDetails と UserDetailsService (jdbc) の独自の実装を追加します。次のように User をコントローラーに挿入します。
@AuthenticationPrincipal User user
User は UserDetails の私の実装です。ここで、トークンを更新せずにユーザー データを変更できるようにしたいと考えています。
私はプリンシパルを次のように更新しようとします:
User updatedUser = ...
Authentication newAuth = new UsernamePasswordAuthenticationToken(updatedUser, updatedUser.getPassword(), updatedUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(newAuth);
別のコントローラーメソッドを呼び出すと、古いユーザーオブジェクトが返されます。
トークンを更新せずにユーザー データを変更する方法はありますか? キャッシュからではなくデータベースから常にユーザーデータをロードするように春のセキュリティを作成するソリューションはありますか?