Spring Security 6.5: ipproċessa l-iskambju tal-kodi tal-awtorizzazzjoni OAuth permezz ta' prokura
Agħti lill-klijent tar-risposta tat-token tal-kodi tal-awtorizzazzjoni ta' Spring Security RestClient li jaf bil-prokura, filwaqt li żżomm il-konvertituri OAuth u l-handler tal-iżbalji tiegħu.
Il-browser jilħaq il-fornitur tal-identità, imbagħad id-dħul ifalli meta l-applikazzjoni tiskambja l-kodi tal-awtorizzazzjoni rritornat. Dak l-iskambju huwa talba ħierġa mis-server tal-applikazzjoni, bil-klijent HTTP tiegħu stess.
Għall-API bbażata fuq RestClient disponibbli fi Spring Security 6.5, ipprovdi fabbrika tat-talbiet li taf bil-prokura lill-klijent tar-risposta tat-token tal-kodi tal-awtorizzazzjoni:
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);
Il-klassijiet tal-konvertitur u tal-handler tal-iżbalji jżommu l-imġiba dokumentata tat-talba tat-token ta' Spring Security. RestClient ġeneriku konfigurat biss għal API JSON mhux relatat mhuwiex sostitut ekwivalenti.
Qabbad l-istess tokenClient mal-konfigurazzjoni tas-sigurtà eżistenti:
http.oauth2Login(login -> login
.tokenEndpoint(token -> token
.accessTokenResponseClient(tokenClient)));
Dawn huma frammenti ta' konfigurazzjoni għal applikazzjoni li diġà għandha r-reġistrazzjoni tal-klijent u SecurityFilterChain. Huma jagħżlu prokura HTTP mingħajr awtentikazzjoni; prokura li teħtieġ kredenzjali teħtieġ il-konfigurazzjoni tal-awtentikazzjoni korrispondenti tat-trasport magħżul. Għal punt tat-tmiem tat-token HTTPS aċċessibbli pubblikament fuq rotta pubblika permessa, entrata HTTP mill-lista tal-prokuri HTTP tista' timla dak l-indirizz tal-prokura mingħajr kont.
Żomm il-host tal-prokura separat mill-port u mill-iskema tal-URL tiegħu. Ħalli l-URI tat-token tal-fornitur tal-identità bħala d-destinazzjoni. L-eżempju ma jissostitwix il-validazzjoni taċ-ċertifikati.
Talbiet aktar tard jeħtieġu l-verifika tal-proprjetà tagħhom stess. Il-ġbir ta' UserInfo, l-iskambji tat-token tar-rinfreskar, l-għotjiet client-credentials u s-sejħiet tal-API protetti jistgħu jużaw oġġetti klijent oħra. Ikkonfigura l-klijent appoġġat korrispondenti meta dik l-operazzjoni wkoll teħtieġ ir-rotta. Għall-fluss reattiv client_credentials ta' Spring Security 6.5, ikkonfigura l-klijent tat-token reattiv u l-fornitur tal-għotja tiegħu separatament.
Eżempji legacy li jużaw OAuth2RestTemplate u AccessTokenProvider jappartjenu għall-proġett Spring Security OAuth eqdem. Agħżel l-API li tuża l-applikazzjoni installata qabel tadatta l-kodiċi; tħallatx dawk l-oġġetti f'din il-konfigurazzjoni.