De browser berikt de identiteitsjouwer, en dan mislearret de oanmelding as de applikaasje de weromjûne autorisaasjekoade útwikselet. Dy útwikseling is in útgeande oanfraach fan de applikaasjeserver, mei syn eigen HTTP-klant.

Foar de RestClient-basearre API dy't beskikber is yn Spring Security 6.5, jou de klant foar token-antwurd fan 'e autorisaasjekoade in proxy-bewuste oanfraachfabryk:

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

De konverter- en flerkmelderklassen bewarje it dokumintearre token-oanfraachgedrach fan Spring Security. In generike RestClient dy't allinnich foar in net-relatearre JSON-API konfigurearre is, is gjin lykweardige ferfanging.

Keppel deselde tokenClient oan 'e besteande befeiligingskonfiguraasje:

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

Dit binne konfiguraasjefragminten foar in applikaasje dy't al syn klantregistraasje en SecurityFilterChain hat. Se kieze in HTTP-proxy sûnder autentikaasje; in proxy dy't bewiisstikken freget, hat de byhearrende autentikaasjekonfiguraasje fan it keazen transport nedich. Foar in publyk berikber HTTPS-token-einpunt op in tastiene publike rûte kin in HTTP-ynstjoering út 'e HTTP-proxylist dat proxy-adres sûnder akkount folje.

Hâld de proxy-host skieden fan syn poarte en URL-skema. Lit de token-URI fan de identiteitsjouwer it bestimming wêze. It foarbyld ferfangt gjin sertifikaatfalidaasje.

Lettere oanfragen hawwe har eigen eigendomskontrôle nedich. UserInfo-ophalen, ferfarskingstoken-útwikselings, client-credentials-tawizings en befeilige API-oproppen kinne oare klantobjekten brûke. Konfigurearje de byhearrende stipe klant as dy operaasje ek de rûte nedich hat. Foar de reaktive client_credentials-stream fan Spring Security 6.5 konfigurearje de reaktive tokenklant en syn tawizingsjouwer apart.

Legere foarbylden mei OAuth2RestTemplate en AccessTokenProvider hearre by it âldere Spring Security OAuth-projekt. Kies de API dy't de ynstallearre applikaasje brûkt foardat jo koade oanpasse; mingje dy objekten net yn dizze konfiguraasje.

Relatearre artikelen