Vafrinn nær í auðkennisveituna, og síðan mistekst innskráning þegar forritið skiptir á skilaða heimildarkóðanum. Þessi skipti eru útleiðarbeiðni frá forritsþjóninum, með sínum eigin HTTP-viðskiptavini.

Fyrir RestClient-undirstaða API-ið sem er í boði í Spring Security 6.5, útvegaðu beiðnaverksmiðju sem þekkir milliþjón fyrir viðskiptavin táknsvörunar heimildarkóðans:

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

Breytunar- og villumeðhöndlunarflokkarnir varðveita skjalfesta hegðun tákna beiðna í Spring Security. Almennur RestClient sem er aðeins stilltur fyrir ótengt JSON-API er ekki jafngild staðgengill.

Tengdu sama tokenClient við fyrirliggjandi öryggisstillingu:

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

Þetta eru stillingarbrot fyrir forrit sem hefur þegar skráningu viðskiptavinar og SecurityFilterChain. Þau velja HTTP-milliþjón án auðkenningar; milliþjónn sem krefst skilríkja þarf samsvarandi auðkenningarstillingu valda flutningsins. Fyrir opinberlega aðgengilegan HTTPS-táknendapunkt á leyfðri opinberri leið getur HTTP-færsla úr HTTP-milliþjónalistanum fyllt þetta milliþjónsfang án reiknings.

Haltu milliþjónshýsilnum aðskildum frá gáttinni og URL-skemanu. Láttu tákn-URI auðkennisveitunnar vera áfangastaðinn. Dæmið kemur ekki í stað vottorðasannprófunar.

Síðari beiðnir þurfa eigin eignarréttarathugun. Sókn UserInfo, endurnýjunartákna skipti, client-credentials styrkir og verndaðar API-kall geta notað aðra viðskiptavina hluti. Stilltu samsvarandi studdan viðskiptavin þegar sú aðgerð þarf líka leiðina. Fyrir raunvirka client_credentials flæðið í Spring Security 6.5, stilltu raunvirka táknviðskiptavininn og styrkveitanda hans sérstaklega.

Eldri dæmi sem nota OAuth2RestTemplate og AccessTokenProvider tilheyra eldra Spring Security OAuth verkefninu. Veldu API-ið sem uppsetta forritið notar áður en þú aðlagar kóða; ekki blanda þeim hlutum í þessa stillingu.

Tengdir greinar