一种知道如何获取特定资源的访问令牌的策略。
1. 定义
public interface AccessTokenProvider {
OAuth2AccessToken obtainAccessToken(OAuth2ProtectedResourceDetails details, AccessTokenRequest parameters)
throws UserRedirectRequiredException, UserApprovalRequiredException, AccessDeniedException;
boolean supportsResource(OAuth2ProtectedResourceDetails resource);
OAuth2AccessToken refreshAccessToken(OAuth2ProtectedResourceDetails resource, OAuth2RefreshToken refreshToken,
AccessTokenRequest request) throws UserRedirectRequiredException;
boolean supportsRefresh(OAuth2ProtectedResourceDetails resource);
}
1.1 obtainAccessToken方法
获取指定受保护资源的新访问令牌。
1.2 supportsResource方法
此提供程序是否支持指定的资源。
1.3 refreshAccessToken方法
刷新访问令牌
1.4 supportsRefresh方法
此提供程序是否可以刷新访问令牌
2. 实现类
2.1 ClientCredentialsAccessTokenProvider
提供程序,用于使用客户端凭据获取oauth2访问令牌。
2.2 ImplicitAccessTokenProvider
2.3 AuthorizationCodeAccessTokenProvider
提供程序,用于通过使用授权代码获取oauth2访问令牌。
2.4 ResourceOwnerPasswordAccessTokenProvider
2.5 AccessTokenProviderChain
参考:https://blog.csdn.net/qq_32731075/article/details/117635803
参考:https://docs.spring.io/spring-security/reference/5.6.0-RC1/servlet/oauth2/oauth2-login.html
网友评论