【发布时间】:2019-09-14 14:07:44
【问题描述】:
我正在尝试加载一些应该可用于每个 HTTP 请求的基本用户信息。我读到我可以使用带有@ModelAttribute 方法的@ControllerAdvice 类来做到这一点。例如:
@ControllerAdvice
public class DefaultController{
@ModelAttribute
public void load(ModelMap model){
}
}
但是,我无法访问由 Spring Security 管理的 Principal 对象。我尝试了以下方法:
@ModelAttribute
public void load(ModelMap model, @AuthenticationPrincipal CustomUser user){
}
和
@ModelAttribute
public void load(ModelMap model, Principal user){
//Cast to CustomUser object
}
但这两种方法都不起作用。我得到用户对象的空值。我想知道是否有人知道如何在 @ModelAttribute 方法中获取 Principal 对象
【问题讨论】:
标签: java spring spring-mvc spring-security