如何在spring-security-oauth中获得经过身份验证的用户

时间:2013-04-29 14:36:24

标签: spring authentication oauth spring-security

对于我的REST应用程序,我使用了基本身份验证(发送用户密码并在每次请求时登录)。对于某些需求,我使用以下方式获取登录用户:

User loggedUser = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();

但后来我实现了Spring-Security-Oauth2,我使用访问令牌代替密码和登录。现在.getPrincipal()方法返回“anonymousUser”。 所以我的问题是:有没有办法在spring-security-oauth中以某种方式获取登录用户?

修改 我发现我的安全“intercept-url模式”中存在问题。所以现在我可以使用SecurityContextHolder从中获取经过身份验证的用户。

1 个答案:

答案 0 :(得分:1)

在控制器内部方法中,您可以添加此参数,然后为您注入,您可以访问用户信息

getUserAuthentication(OAuth2Authentication auth,Model model)