Spring Reactive OAuth2: proxy-umbøn um client_credentials-token
Við client_credentials í Spring Security 6.5 skalt tú knýta token-WebClient gjøgnum veitaran til tann authorized-client-stjórnandann, sum veruliga verður brúktur.
Ein tilfeingi WebClient, sum fer gjøgnum proxy, kann framvegis miseydnast áðrenn API-kallið, um token-innheinting brúkar ein annan connector. Til reaktiva client_credentials-flæðið í Spring Security 6.5 skalt tú knýta allar tríggjar partarnar:
HttpClient route = HttpClient.create()
.proxy(p -> p.type(ProxyProvider.Proxy.HTTP)
.host("proxy.example").port(8080));
WebClient tokenHttp = WebClient.builder()
.clientConnector(new ReactorClientHttpConnector(route))
.build();
var tokens = new WebClientReactiveClientCredentialsTokenResponseClient();
tokens.setWebClient(tokenHttp);
var provider = new ClientCredentialsReactiveOAuth2AuthorizedClientProvider();
provider.setAccessTokenResponseClient(tokens);
var manager = new AuthorizedClientServiceReactiveOAuth2AuthorizedClientManager(
registrations, authorizedClients);
manager.setAuthorizedClientProvider(provider);tokens.setWebClient setur token-HTTP-klientin; provider.setAccessTokenResponseClient setur hann á grant-veitaran; manager.setAuthorizedClientProvider setur tann veitaran inn. Brúka henda stjórnandan í veruliga OAuth-filturinum ella í authorized-client-arbeiðsflæðinum.
HttpClient og ProxyProvider eru Reactor Netty-slag. WebClient og connectorur hansara eru Spring WebFlux-slag. Lat tann verandi ReactiveClientRegistrationRepository sum registrations og ReactiveOAuth2AuthorizedClientService sum authorizedClients.
Hesin veitarin handfer client_credentials; varðveit eina hóskandi veitarakeðju, um onnur grant treytast. Dømið hevur ongan proxy-konto; hann hevði hoyrt til transportin og ikki til OAuth client ID/secret. Til ein almennan token-endpoint, sum er loyvdur gjøgnum ein almenna millumgongu, vel host og port úr HTTP-proxy-listanum.
Set eisini connectorin fyri vardu tilfeingið, tá ið hesi API-køllini tørva leiðina. Token- og API-hending eru ymisk úrslit.