我不知道这个问题的措辞是否正确,Spring Security是我不太熟悉的东西。
在我的spring引导应用程序中,登录是使用OAuth 2.0和gluu完成的。到目前为止,它运行良好,没有问题。但是,在用户登录后,我检查数据库中是否存在一个具有gluu服务器提供的ID的用户,因为我需要关于该用户的其他信息。这是在登录后检查权限和获取设置等用户特定属性时完成的。如果用户在我们端不存在,我将得到NullPointerException。这种情况(在理想情况下)不应该发生,但我仍然希望妥善处理。
我想使检查作为授权过程的一部分发生,因此,如果我们没有任何关于用户的信息,而不是在登录完成后进行检查,则登录失败。
明白了吗?我很难恰当地措辞,所以我在谷歌上找不到任何有用的结果。一个链接到一些教程或文档将非常感激!
你可以处理这一个拦截脚本. 您还需要在oxAuth配置中添加customAuthParamz
(JSON配置>OxAuth)。
如果你想在spring-security中这样做,你可以提供一个Converter<Jwt, AbstractAuthenticationToken>
@Bean(代替默认的JwtAuthenticationConverter
)。
这个bean将调用您的用户repo(可能在@ cable方法上),甚至可以返回您自己的Authentication
,其中包含您的安全规则所需的所有用户数据(可能在数据库中创建丢失的用户记录,或者在系统中不知道用户时返回AnonymousAuthenticationToken
)。
我在本教程中有一些类似的东西(额外的用户数据是从令牌私有声明中检索的,而不是从数据库中检索的,但是您明白了)。