我使用springsecurity5在springboot2中实现OAuth2客户机。我不知道该怎么用
OAuth2AuthorizedClientManager
与
OAuth2AuthorizedClientService
. OAuth2AuthorizedClientManger是在5.2中引入的,因此它是一个较新的API,但是OAuth2AuthorizedClientService看起来更像是一个更精致的客户端接口。我预料到了
OAuthe2AuthorizedClientService
可以配置
OAuth2AuthorizedClientManager
但事实似乎并非如此。
重要的是,我需要定制
OAuth2AccessTokenResponseHttpMessageConverter
发送到自定义服务器的授权请求。可以在
OAuth2AuthorizedClient Manager
但我不知道该怎么做
OAuthe2授权客户端服务
.
@Bean
public OAuth2AuthorizedClientManager authorizedClientManager(ClientRegistrationRepository clientRegistrationRepository,
OAuth2AuthorizedClientService oAuth2AuthorizedClientService) {
DefaultClientCredentialsTokenResponseClient defaultClientCredentialsTokenResponseClient = new DefaultClientCredentialsTokenResponseClient();
defaultClientCredentialsTokenResponseClient.setRequestEntityConverter(new OAuth2ClientCredentialsGrantJWTAssertionRequestEntityConverter());
OAuth2AuthorizedClientProvider authorizedClientProvider =
OAuth2AuthorizedClientProviderBuilder.builder()
.clientCredentials(clientCredentialsGrantBuilder -> {
clientCredentialsGrantBuilder.accessTokenResponseClient(defaultClientCredentialsTokenResponseClient);
})
.build();
OAuth2AuthorizedClientManager authorizedClientManager
= new AuthorizedClientServiceOAuth2AuthorizedClientManager(clientRegistrationRepository, oAuth2AuthorizedClientService);
((AuthorizedClientServiceOAuth2AuthorizedClientManager)authorizedClientManager).setAuthorizedClientProvider(authorizedClientProvider);
return authorizedClientManager;
}