关于OAuth的介绍查看我的另一篇文章OAuth的4种授权方式,spring-security-oauth2是实现OAuth2.0的框架,配置稍微有些繁琐,因此本文记录下大概的思路,加深印象。
OAuth 2.0中主要有Authorization Service授权服务和Resource Service资源服务,他们可以在同一个应用程序中,也可以在两个应用程序中,甚至多个资源服务共享一个授权服务。
spring-security提供了相应的endpoints来管理token的请求,/oauth/authorize端点负责授权服务,/oauth/token端点负责token的请求服务;资源服务中的过滤器OAuth2AuthenticationProcessingFilter 负责校验Token。
下面从总体上介绍授权服务和资源服务的主要配置,详细的配置在githubspring-security-oauth demo上。
授权服务配置
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {
private static final String DEMO_RESOURCE_ID = "openapi";
@Autowired
private OrderAuthProperties orderAuthProperties;
/**
* 注意这里AuthenticationManager和UserAccountService
* 是在SecurityConfiguration配置的,把俩个配置类关联了起来
*/
@Autowired
AuthenticationManager authenticationManager;
@Autowired
private UserAccountService userAccountService;
@Autowired
private AuthorizationCodeServices authorizationCodeServices;
@Autowired
RedisConnectionFactory redisConnectionFactory;
@Autowired
private OAuthClientDetailsService oAuthClientDetailsService;
@Autowired
private DataSource dataSource

本文介绍了如何使用spring-security-oauth2框架实现OAuth2.0授权服务,讨论了授权服务和资源服务的概念,以及它们在不同应用场景下的部署方式。重点阐述了spring-security的endpoints在授权服务中的角色,以及资源服务中的OAuth2AuthenticationProcessingFilter在Token校验中的作用。详细配置示例可参考github上的spring-security-oauth demo。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



