当前位置: 首页 > 知识库问答 >
问题:

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

陆翰学
2023-03-14

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

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

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

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

共有1个答案

耿学义
2023-03-14

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

getUserAuthentication(OAuth2Authentication auth,Model model)
 类似资料:
  • 我正在研究使用JWT身份验证的Spring Security实现。我不确定如何检查用户角色并在方法级别获得经过身份验证的用户。我在网上看到这个例子: 我需要从JWT令牌中提取用户类型吗?还有其他方法可以实现吗?在我看来,仅使用是不完整的。 看起来这段代码是用来获得用户如果使用会话类型,我得到NPE。你知道对于JWT我如何才能成为用户吗? Github完整来源:https://Github.com/

  • 问题内容: 我有一个Spring Rest服务,我想将其用于经过身份验证和未经身份验证的用户。我想从用户身份验证中获取用户信息。 如果我 在如下所示的ouath2配置中使用,则可以获取经过身份验证的用户的用户信息,但可以获取未经身份验证的用户的401错误。 如果我 像下面 那样通过 in 忽略WebSecurity中的URL ,那么所有用户都可以调用该服务,但是我无法从SecurityContex

  • 我有一个Grails 2.5.3应用程序,目前使用Spring Security插件进行身份验证。用户使用用户名/pwd登录。 我现在更新了应用程序,以支持OAuth身份验证(使用ScribeJava)。用户可以单击将他们重定向到OAuth providers页面的链接,在成功输入凭据后,他们将被重定向回我的应用程序。但是,我无法将此功能与spring security plugin绑定在一起,这

  • 我有一个Spring rest服务,我想将它用于经过身份验证和未经身份验证的用户。如果用户经过身份验证,我想从获取用户信息。 如果我在如下所示的ouath2配置中使用,那么我可以获得经过身份验证的用户的用户信息,但未经过身份验证的用户会出现401错误。 如果我并通过在中,如下所示,则所有用户都可以调用该服务,但我无法从SecurityContext获取用户信息。 如何配置我的Spring Secu

  • 我正在使用一个带有开发人员身份验证身份的Authflow设置的认知身份池--选择这个auth流是因为出于一些业务原因,我们不能使用认知用户池。因此,我自己使用带有authendpoint的API网关实现了一个用户标识提供者服务,该endpoint激发一个Lambda函数。 因此,我通过运行和随后运行生成了一个临时的和,并获得了临时的AWS凭据(临时的和)。 现在,我希望生成一个,以便在我使用IAM