它是一个使用 Spring security、spring MVC 的优惠券系统应用程序, 现在。 当应用程序启动时,我需要以某种方式将当前登录的用户初始化到 Controller 中。
问题是:
- 如果我尝试通过 SecurityContextHolder 获取当前用户,这是不可能的,因为 spring 似乎在安全性之前初始化了 Controller ,所以我无法在 Controller 中获取它。
我有什么遗漏的吗?登录后获取当前登录用户的不同方法?
最佳答案
您需要的是@AuthenticationPrincipal
。
您可以将其注入(inject)到 Controller 方法中,如下所示:
@GetMapping("/")
public void get(@AuthinticationPrincipal User user){ ... }
或者,您可以创建自己的注释和自定义参数解析器,并注入(inject)您想要的任何内容。
关于java - 使用 Spring Security 时获取当前登录的用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57775467/