具有客户端身份验证和用户身份验证的Spring Security Oauth2配置

时间:2018-08-17 08:53:06

标签: spring-security-oauth2

我正在一个项目中设置oauth2授权。我已经对spring安全的身份验证过程有了简短的了解,但是在这里,当我设置oauth时,我想知道如何执行身份验证部分?因为这里我既需要验证客户端凭据,也需要验证用户凭据(用户验证将由LDAP完成),因为授予类型将为“密码”。身份验证之后,最终身份验证的身份验证对象将是具有其权限的用户,而不是客户端。

1 个答案:

答案 0 :(得分:0)

如果您使用资源所有者凭证或发出访问令牌时可能会采用客户端(程序)凭证和用户凭证的其他任何授予类型,那么您将从AuthenticationManager#authenticate()获取的Authentication实例将为OAuth2Authentication 。在OAuth2Authentication内部,您将能够看到另一个Authentication,其中包括用户的身份验证信息。

使用该OAuth2Authentication,您可以通过从SecurityContextHolder.getContext()获取OAuth2Authentication本身,然后将其类型转换为OAuth2Authenticaiton来访问OAuth2Authentication本身,从而手动添加逻辑以检查您想要的其他内容,或者仅将现有的PreAuthorized注解与SpringEL一起使用。