Spring Reactive OAuth2: proxy-tokenbeiðnir fyrir client_credentials
Fyrir client_credentials í Spring Security 6.5 skaltu tengja WebClient táknsins í gegnum veitandann við authorized-client-stjórnandann sem raunverulega er notaður.
Auðlind WebClient sem fer í gegnum proxy getur samt mistekist fyrir API-kallið ef öflun táknsins notar annan connector. Fyrir hvarfvirka client_credentials flæðið í Spring Security 6.5 skaltu tengja öll þrjú hlutverkin:
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 úthlutar HTTP-biðlarans fyrir táknið; provider.setAccessTokenResponseClient úthlutar honum til grant-veitandans; manager.setAuthorizedClientProvider setur upp þann veitanda. Notaðu þennan stjórnanda í raunverulegu OAuth-síunni eða authorized-client vinnuflæðinu.
HttpClient og ProxyProvider eru Reactor Netty-gerðir. WebClient og connector þess eru Spring WebFlux-gerðir. Gefðu núverandi ReactiveClientRegistrationRepository sem registrations og ReactiveOAuth2AuthorizedClientService sem authorizedClients.
Þessi veitandi annast client_credentials; haltu viðeigandi veitandakeðju ef aðrir grantar eru nauðsynlegir. Dæmið hefur engan proxy-reikning; hann tilheyrði flutningnum en ekki OAuth client ID/secret. Fyrir opinbert token-endpoint sem er leyft í gegnum opinberan millilið skaltu velja host og port úr HTTP-proxy listanum.
Stilltu einnig connector verndaðrar auðlindar þegar þessi API-köll þurfa leiðina. Árangur tákns og árangur API eru aðskildar niðurstöður.