Spring Security 6.5: OAuth-heimildarkota-útbýtið gjøgnum proxy
Gevað Spring Security-klientinum fyri token-svar á heimildarkota einum proxy-vitandi RestClient, meðan OAuth-umsetararnir og villumeðferðin verða varðveitt.
Kagarin kemur at samleikavaldaranum, og síðani miseydnast innskrásetingin, tá ið stovnurin býttir um afturgivna heimildarkota. Hetta útbýtið er útgangandi fyrispurningur frá stovnsservaranum, við sínum egna HTTP-klienti.
Fyri RestClient-grundaða API-ið, ið er tøkt í Spring Security 6.5, gevað tú klientinum fyri token-svar á heimildarkota einum proxy-vitandi fyrispurnarfabrikki:
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setProxy(new java.net.Proxy(
java.net.Proxy.Type.HTTP,
new java.net.InetSocketAddress("proxy.example", 8080)));
factory.setConnectTimeout(5000);
factory.setReadTimeout(15000);
RestClient tokenHttp = RestClient.builder()
.requestFactory(factory)
.messageConverters(converters -> {
converters.clear();
converters.add(new FormHttpMessageConverter());
converters.add(new OAuth2AccessTokenResponseHttpMessageConverter());
})
.defaultStatusHandler(new OAuth2ErrorResponseErrorHandler())
.build();
RestClientAuthorizationCodeTokenResponseClient tokenClient =
new RestClientAuthorizationCodeTokenResponseClient();
tokenClient.setRestClient(tokenHttp);
Umsetara- og villumeðferðarflokkarnir varðveita skjalfesta atferð Spring Security fyri token-fyrispurningum. Ein almennur RestClient, ið bert er stilltur fyri eitt óviðkomandi JSON-API, er ikki ein javngóður avloysari.
Set sama tokenClient í verandi trygdarpstillingina:
http.oauth2Login(login -> login
.tokenEndpoint(token -> token
.accessTokenResponseClient(tokenClient)));
Hesir eru stillingarbitar fyri eitt stovn, ið longu hevur klient-skráseting sína og SecurityFilterChain. Teir velja ein HTTP-proxy uttan samvátting; ein proxy, ið krevur samleikadømi, tørvar samsvarandi samváttingarstilling hjá valda flutningsmiðlinum. Fyri eitt alment atkomandi HTTPS-token-endapunkt á eini loyvdari almennari leið kann ein HTTP-førsla úr HTTP-proxy-listanum fylla hesa proxy-adressuna uttan konto.
Halt proxy-vertin skilt frá portinum og URL-skipanini. Latið token-URI hjá samleikavaldaranum vera málið. Dømið avloysir ikki váttanarpróving.
Seinni fyrispurningar tørva sína egnu ognarkontroll. UserInfo-heinta, endurnýggjanartoken-útbýti, client-credentials-veitingar og verndað API-kall kunnu brúka onnur klient-objekt. Still tann samsvarandi stuðlaða klientin, tá ið tann handlingin eisini tørvar leiðina. Fyri reaktiva client_credentials-flæðið í Spring Security 6.5, still tann reaktiva token-klientin og veitingargevaran hansara særskilt.
Eldri dømi, ið brúka OAuth2RestTemplate og AccessTokenProvider, hoyra til eldra Spring Security OAuth-verkætlanina. Vel API-ið, sum tann installeraði stovnurin brúkar, áðrenn tú tillagar kotu; blandad ikki hesum lutum í hesa stillingina.