此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Security 6.5.3spring-doc.cadn.net.cn

HTTP 接口集成

Spring Security 的 OAuth 支持可以与RestClientWebClient 基于 HTTP 接口的 REST 客户端spring-doc.cadn.net.cn

配置

RestClientWebClient 特定配置后,使用 HTTP 接口集成只需要添加一个@ClientRegistrationId到需要 OAuth 的方法。spring-doc.cadn.net.cn

@ClientRegistrationId确定是否以及如何解析 OAuth Tokens,可以安全地添加 Spring Security 的 OAuth 支持任何配置。spring-doc.cadn.net.cn

RestClient 配置

Spring Security 的 OAuth 支持可以与由 RestClient 支持的基于 HTTP 接口的 REST 客户端集成。 第一步是创建一个OAuthAuthorizedClientManager.spring-doc.cadn.net.cn

接下来,您必须配置HttpServiceProxyFactoryRestClient了解@ClientRegistrationId要简化此配置,请使用OAuth2RestClientHttpServiceGroupConfigurer.spring-doc.cadn.net.cn

@Bean
OAuth2RestClientHttpServiceGroupConfigurer securityConfigurer(
		OAuth2AuthorizedClientManager manager) {
	return OAuth2RestClientHttpServiceGroupConfigurer.from(manager);
}
@Bean
fun securityConfigurer(manager: OAuth2AuthorizedClientManager): OAuth2RestClientHttpServiceGroupConfigurer {
    return OAuth2RestClientHttpServiceGroupConfigurer.from(manager)
}

Web客户端配置

Spring Security 的 OAuth 支持可以与基于 HTTP 接口的 REST 客户端集成,该客户端由WebClient. 第一步是创建一个ReactiveOAuthAuthorizedClientManager.spring-doc.cadn.net.cn

接下来,您必须配置HttpServiceProxyFactoryWebRestClient了解@ClientRegistrationId要简化此配置,请使用OAuth2WebClientHttpServiceGroupConfigurer.spring-doc.cadn.net.cn

@Bean
OAuth2WebClientHttpServiceGroupConfigurer securityConfigurer(
		ReactiveOAuth2AuthorizedClientManager manager) {
	return OAuth2WebClientHttpServiceGroupConfigurer.from(manager);
}
@Bean
fun securityConfigurer(
    manager: ReactiveOAuth2AuthorizedClientManager?
): OAuth2WebClientHttpServiceGroupConfigurer {
    return OAuth2WebClientHttpServiceGroupConfigurer.from(manager)
}

@ClientRegistrationId

您可以添加ClientRegistrationId在 HTTP 接口上指定哪个ClientRegistration使用。spring-doc.cadn.net.cn

	@GetExchange("/user")
	@ClientRegistrationId("github")
	User getAuthenticatedUser();
    @GetExchange("/user")
    @ClientRegistrationId("github")
    fun getAuthenticatedUser() : User