此版本仍在开发中,尚不被认为是稳定的。对于最新的稳定版本,请使用 Spring Security 6.5.3! |
HTTP 接口集成
Spring Security 的 OAuth 支持可以与RestClient
和WebClient
基于 HTTP 接口的 REST 客户端。
配置
在 RestClient 或 WebClient 特定配置后,使用 HTTP 接口集成只需要添加一个@ClientRegistrationId
到需要 OAuth 的方法。
自@ClientRegistrationId
确定是否以及如何解析 OAuth Tokens,可以安全地添加 Spring Security 的 OAuth 支持任何配置。
RestClient 配置
Spring Security 的 OAuth 支持可以与由 RestClient 支持的基于 HTTP 接口的 REST 客户端集成。
第一步是创建一个OAuthAuthorizedClientManager
豆.
接下来,您必须配置HttpServiceProxyFactory
和RestClient
了解@ClientRegistrationId要简化此配置,请使用OAuth2RestClientHttpServiceGroupConfigurer
.
-
Java
-
Kotlin
@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
豆.
接下来,您必须配置HttpServiceProxyFactory
和WebRestClient
了解@ClientRegistrationId要简化此配置,请使用OAuth2WebClientHttpServiceGroupConfigurer
.
-
Java
-
Kotlin
@Bean
OAuth2WebClientHttpServiceGroupConfigurer securityConfigurer(
ReactiveOAuth2AuthorizedClientManager manager) {
return OAuth2WebClientHttpServiceGroupConfigurer.from(manager);
}
@Bean
fun securityConfigurer(
manager: ReactiveOAuth2AuthorizedClientManager?
): OAuth2WebClientHttpServiceGroupConfigurer {
return OAuth2WebClientHttpServiceGroupConfigurer.from(manager)
}
配置:
@ClientRegistrationId
您可以添加ClientRegistrationId
在 HTTP 接口上指定哪个ClientRegistration
使用。
-
Java
-
Kotlin
@GetExchange("/user")
@ClientRegistrationId("github")
User getAuthenticatedUser();
@GetExchange("/user")
@ClientRegistrationId("github")
fun getAuthenticatedUser() : User
ClientRegistrationIdProcessor
这id
然后由以下人员处理:
-
OAuth2ClientHttpRequestInterceptor
用于 RestClient 集成 -
ServletOAuth2AuthorizedClientExchangeFilterFunction
(servlets) 或ServerOAuth2AuthorizedClientExchangeFilterFunction
(反应性环境)WebClient
.