对于我的REST应用程序,我使用了基本身份验证(在每个请求时发送用户密码和登录名)。对于某些需求,我使用
获取登录用户:User loggedUser = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
但后来我实现了Spring-Security-Oauth2,我使用访问令牌代替密码和登录。现在。getprincipal()方法返回"anonymousUser"。所以我的问题是:是否有任何方法以某种方式在spring-security-oauth中获得登录用户?
编辑:我发现我的安全"拦截-url模式"有问题。所以现在我可以使用SecurityContextHolder,从中我可以获得身份验证的用户。
在控制器方法中你可以添加这个参数然后它会为你注入你可以访问用户信息
getUserAuthentication(OAuth2Authentication auth,Model model)