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

hnrainll 阅读:16 2024-11-01 17:39:52 评论:0

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

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

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

编辑: 我发现我的安全“拦截 URL 模式”存在问题。所以现在我可以使用 SecurityContextHolder,我可以从中获取经过身份验证的用户。

请您参考如下方法:

在controller方法中你可以添加这个参数然后它会被注入(inject)你并且你可以访问用户信息

getUserAuthentication(OAuth2Authentication auth,Model model) 


标签:Spring
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号