Spring Security を使用する Spring MVC Web アプリがあります。現在ログインしているユーザーのユーザー名を知りたいです。以下に示すコード スニペットを使用しています。これは受け入れられる方法でしょうか?
このコントローラー内で静的メソッドを呼び出すのは好きではありません。これは、Spring の目的に反すると思います。代わりに、現在の SecurityContext または現在の Authentication を注入するようにアプリを構成する方法はありますか?
@RequestMapping(method = RequestMethod.GET)
public ModelAndView showResults(final HttpServletRequest request...) {
final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
...
}
ベストアンサー1
使用している場合春3最も簡単な方法は次のとおりです。
@RequestMapping(method = RequestMethod.GET)
public ModelAndView showResults(final HttpServletRequest request, Principal principal) {
final String currentUser = principal.getName();
}