需要用Java代码在SpringSecurity中取到用户名称,在Action或其他地方(filer中)用方法SecurityContextHolder.getContext().getAuthentication()取值为null,但是在页面使用<security:authentication property="principal" var="loggedUser"/>还是可以取到的很少疑惑啊,只好使用别的方法,有request的时候可以使用
SecurityContextImpl securityContextImpl = (SecurityContextImpl) request.getSession().getAttribute("SPRING_SECURITY_CONTEXT");
System.out.println("Username:" + securityContextImpl.getAuthentication().getName());
但是无request的时候还不知道怎么处理,在寻找中。。。。
无request的可以先
@Autowiredprivate HttpServletRequest request