Spring Reactive OAuth2: ப்ராக்ஸி client_credentials டோக்கன் கோரிக்கைகள்
Spring Security 6.5 இன் client_credentials இல், டோக்கன் WebClient ஐ வழங்குநர் வழியாக உண்மையில் பயன்படுத்தப்படும் authorized-client மேலாளருடன் இணைக்கவும்.
ப்ராக்ஸி வழியாகச் செல்லும் ஒரு வளம் WebClient அதன் API அழைப்புக்கு முன்பே தோல்வியடையலாம், டோக்கன் பெறுதல் வேறு இணைப்பியைப் பயன்படுத்தினால். Spring Security 6.5 இன் எதிர்வினை client_credentials ஓட்டத்திற்கு மூன்று பகுதிகளையும் இணைக்கவும்:
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 டோக்கன் HTTP கிளையண்டை ஒதுக்குகிறது; provider.setAccessTokenResponseClient அதை grant வழங்குநருக்கு ஒதுக்குகிறது; manager.setAuthorizedClientProvider அந்த வழங்குநரை நிறுவுகிறது. இந்த மேலாளரை உண்மையான OAuth வடிகட்டி அல்லது authorized-client பணிப்பாய்வில் பயன்படுத்தவும்.
HttpClient மற்றும் ProxyProvider Reactor Netty வகைகள். WebClient மற்றும் அதன் இணைப்பி Spring WebFlux வகைகள். ஏற்கனவே உள்ள ReactiveClientRegistrationRepository ஐ registrations ஆகவும் ReactiveOAuth2AuthorizedClientService ஐ authorizedClients ஆகவும் வழங்கவும்.
இந்த வழங்குநர் client_credentials ஐ கையாள்கிறது; பிற grant தேவைப்பட்டால் பொருத்தமான வழங்குநர் சங்கிலியை வைத்திருங்கள். எடுத்துக்காட்டில் ப்ராக்ஸி கணக்கு இல்லை; அது OAuth client ID/secret அல்ல, போக்குவரத்து அடுக்குக்கு உரியது. பொது இடைத்தரகர் வழியாக அனுமதிக்கப்படும் பொது token endpoint க்கு HTTP ப்ராக்ஸி பட்டியல்லிருந்து host மற்றும் port தேர்ந்தெடுக்கவும்.
அந்த API அழைப்புகளுக்கு பாதை தேவைப்படும்போது பாதுகாக்கப்பட்ட வளத்தின் இணைப்பியையும் அமைக்கவும். டோக்கன் வெற்றியும் API வெற்றியும் தனித்தனி முடிவுகள்.