Java Spring安全访问主体

Java Spring安全访问主体,java,spring-security,principal,Java,Spring Security,Principal,使用spring security时,特别是使用@notation;在控制器中访问主体的正确方式是什么?假设下面是我的控制器,但我想在某个地方访问secure()方法中的主体 @控制器 公共类登录控制器{ @RequestMapping(value=“/login”,method=RequestMethod.GET) 公共字符串登录(ModelMap映射,@RequestParam(value=“fail”,required=false)字符串失败){ addAttribute(“标题”,“登录

使用spring security时,特别是使用@notation;在控制器中访问主体的正确方式是什么?假设下面是我的控制器,但我想在某个地方访问secure()方法中的主体

@控制器
公共类登录控制器{
@RequestMapping(value=“/login”,method=RequestMethod.GET)
公共字符串登录(ModelMap映射,@RequestParam(value=“fail”,required=false)字符串失败){
addAttribute(“标题”,“登录:广告凭证”);
如果(失败!=null){
addAttribute(“错误”,“无效凭据”);
}
返回(“登录”);
}
@请求映射(“/secure”)
@预授权(“isAuthenticated()”)
公共字符串安全(ModelMap映射,字符串主体){
系统输出打印项次(委托人);
返回(“安全”);
}
}

最简单的方法是
SecurityContextHolder.getContext().getAuthentication().getPrincipal()
。通过线程本地模式工作