Kivinjari hufikia mtoa utambulisho, kisha kuingia hushindwa wakati programu inabadilishana msimbo wa idhini uliorejeshwa. Ubadilishanaji huo ni ombi linalotoka kwenye seva ya programu, likiwa na mteja wake wa HTTP.

Kwa API inayotegemea RestClient inayopatikana katika Spring Security 6.5, ipe mteja wa jibu la tokeni ya msimbo wa idhini kiwanda cha maombi kinachojua proksi:

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

Madarasa ya kibadilishaji na kidhibiti cha makosa huhifadhi tabia iliyoandikwa ya ombi la tokeni la Spring Security. RestClient ya jumla iliyosanidiwa kwa API ya JSON isiyohusiana pekee si mbadala sawa.

Unganisha tokenClient huyo huyo kwenye usanidi wa usalama uliopo:

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

Hizi ni vipande vya usanidi kwa programu ambayo tayari ina usajili wa mteja na SecurityFilterChain. Huchagua proksi ya HTTP bila uthibitishaji; proksi inayohitaji vyeti huhitaji usanidi wa uthibitishaji unaolingana wa usafirishaji uliochaguliwa. Kwa kituo cha mwisho cha tokeni ya HTTPS kinachofikiwa na umma kwenye njia ya umma inayoruhusiwa, ingizo la HTTP kutoka orodha ya proksi za HTTP linaweza kujaza anwani hiyo ya proksi isiyo na akaunti.

Tenganisha mwenyeji wa proksi na bandari yake na mpango wa URL. Acha URI ya tokeni ya mtoa utambulisho kama marudio. Mfano hauondoi uthibitishaji wa cheti.

Maombi ya baadaye yanahitaji ukaguzi wao wa umiliki. Upataji wa UserInfo, ubadilishanaji wa tokeni ya kuonyesha upya, ruzuku za client-credentials na simu za API zilizolindwa zinaweza kutumia vitu vingine vya mteja. Sanidi mteja anayesupportiwa unaolingana wakati operesheni hiyo pia inahitaji njia. Kwa mtiririko tendaji wa client_credentials wa Spring Security 6.5, sanidi mteja tendaji wa tokeni na mtoa ruzuku wake kando.

Mifano ya zamani inayotumia OAuth2RestTemplate na AccessTokenProvider ni ya mradi wa zamani wa Spring Security OAuth. Chagua API inayotumiwa na programu iliyosakinishwa kabla ya kurekebisha msimbo; usichanganye vitu hivyo kwenye usanidi huu.

Makala zinazohusiana