De Browser erreecht den Identitéitsprovider, duerno schléit d'Anmeldung fehl, wann d'Applikatioun den zréckginnene Autorisatiounscode austauscht. Dësen Austausch ass eng erausgoend Ufro vum Applikatiounsserver, mat sengem eegene HTTP-Client.

Fir d'RestClient-baséiert API, déi an Spring Security 6.5 verfügbar ass, gitt dem Token-Antwert-Client fir den Autorisatiounscode eng proxybewosst Ufro-Fabrik:

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);

D'Konverter- an de Fehlerbehandlerklassen erhalen dat dokumentéiert Token-Ufro-Verhalen vu Spring Security. E generesche RestClient, deen nëmmen fir eng onverbonnen JSON-API konfiguréiert ass, ass kee gläichwäertegen Ersatz.

Verbannt deeselwechten tokenClient mat der bestehender Sécherheetskonfiguratioun:

http.oauth2Login(login -> login
    .tokenEndpoint(token -> token
        .accessTokenResponseClient(tokenClient)));

Dëst si Konfiguratiounsfragementer fir eng Applikatioun, déi schonn hir Clientregistréierung an de SecurityFilterChain huet. Si wielen en HTTP-Proxy ouni Authentifikatioun; en Proxy, dee Umeldungsinformatioune verlaangt, brauch déi passend Authentifikatiounskonfiguratioun vum gewielten Transport. Fir en ëffentlech erreechbaren HTTPS-Token-Endpunkt op enger erlaabter ëffentlecher Streck kann en HTTP-Andrag aus der HTTP-Proxy-Lëscht déi Proxyadress ouni Kont ausfëllen.

Halt den Proxyhost getrennt vu sengem Port an URL-Schema. Loosst d'Token-URI vum Identitéitsprovider als Destinatioun. D'Beispill ersetzt net d'Zertifikatsvalidéierung.

Spéider Ufroe brauchen hir eege Besëtzpréifung. D'Ofruffe vun UserInfo, d'Austausche vu Refresh-Token, client-credentials-Granten an déi geschützt API-Aufruffer kënnen aner Clientobjete benotzen. Konfiguréiert de entspriechende ënnerstëtzte Client, wann déi Operatioun och d'Streck brauch. Fir de reaktive client_credentials-Floss vu Spring Security 6.5 konfiguréiert de reaktiven Token-Client a säin Grant-Provider getrennt.

Méi al Beispiller mat OAuth2RestTemplate an AccessTokenProvider gehéieren zum méi ale Spring Security OAuth-Projet. Wielt d'API, déi déi installéiert Applikatioun benotzt, ier Dir de Code upasst; vermëscht dës Objeten net an dëser Konfiguratioun.

Ähnlech Artikelen