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.

Artikli relatati