Spring Security + JWT:成功登录后如何丰富身份验证/主体?

时间:2018-09-24 07:51:16

标签: spring spring-security

我有一个似乎很受欢迎的问题,但找不到答案。好吧,关于它的信息很多,但是我不确定最好的方法是什么。所以这是场景。

我们有一个单页应用程序(SPA)和一个RESTful Web服务(API)。我们通过OAuth2 / JWT使用外部身份验证/授权服务提供商。但是,成功登录后,我需要在服务器端的数据库上保留用户ID(由外部身份验证提供程序提供)。成功登录后(例如通过添加电子邮件),我还需要在安全上下文中丰富Authentication / Principal对象。

网络上有很多有关这种情况的信息。但是我们已经有了用于身份验证/授权的SDK,并且可以完美运行(无需自定义代码等)。我只需要向身份验证对象添加一些内容。正确的方法是什么?谢谢。

1 个答案:

答案 0 :(得分:1)

记录下来,这就是我们所做的:
正如我所说的,已经有一个SDK承担了所有繁重的身份验证工作。成功认证后,我们只需要丰富认证对象。因此,我们将AuthenticaitonProvider(在SDK中实现)包装在我们的实现中(受PreAuthenticatedAuthenticationProvider启发),在成功进行身份验证之后,我们使用UserDetails实现(受PreAuthenticatedGrantedAuthoritiesUserDetailsService启发)丰富了结果。其余的都直截了当。谢谢。

PS:如果您不喜欢这个主意,请告诉我。

相关问题