我正在做一个设置oauth2授权的项目。我已经对spring安全的身份验证过程有了简要的了解,但在这里设置oauth时,我想知道如何做身份验证部分?在这里,我既需要对客户端凭据进行身份验证,也需要对用户凭据进行身份验证(用户身份验证将由LDAP完成),因为授权类型将是“password”。在认证之后,最终认证的认证对象将是具有其权限的用户,而不是客户端。
发布于 2018-09-13 10:25:36
如果您在发布访问令牌时使用资源所有者凭据或任何其他可能采用客户端(程序)凭据和用户凭据的授权类型,那么您将从AuthenticationManager#authenticate()获得的身份验证实例将为OAuth2Authentication。在OAuth2Authentication内部,您将能够看到另一个身份验证,其中包括用户的身份验证信息。
有了这个OAuth2Authentication,您可以通过从SecurityContextHolder.getContext()获取OAuth2Authentication本身并将其类型转换为OAuth2Authenticaiton来手动添加逻辑来检查不同的内容,也可以简单地将现有的SpringEL批注用于SpringEL。
https://stackoverflow.com/questions/51891714
复制相似问题