9

春のセキュリティモジュールでOAuth2パスワード付与を実装しました。UserDetails と UserDetailsS​​ervice (jdbc) の独自の実装を追加します。次のように User をコントローラーに挿入します。

@AuthenticationPrincipal User user

User は UserDetails の私の実装です。ここで、トークンを更新せずにユーザー データを変更できるようにしたいと考えています。

私はプリンシパルを次のように更新しようとします:

User updatedUser = ...
Authentication newAuth = new UsernamePasswordAuthenticationToken(updatedUser, updatedUser.getPassword(), updatedUser.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(newAuth);

別のコントローラーメソッドを呼び出すと、古いユーザーオブジェクトが返されます。

トークンを更新せずにユーザー データを変更する方法はありますか? キャッシュからではなくデータベースから常にユーザーデータをロードするように春のセキュリティを作成するソリューションはありますか?

4

2 に答える 2