我在项目中用了 Spring Security 和 Spring MVC ,我想知道当前登录用户的用户名。
我用了下面的这种实现,这有啥问题没?
@RequestMapping(method = RequestMethod.GET)
public ModelAndView showResults(final HttpServletRequest request...) {
final String currentUser = SecurityContextHolder.getContext().getAuthentication().getName();
...
}
我不喜欢在 Controller 中调用静态方法,这有悖于 Spring 的初衷。有没有一种方法可以配置应用,能将当前的 SecurityContext
或当前的 Authentication
注入到 Bean 方法中呢?