Aṣàwákiri dé ọ̀dọ̀ olùpèsè ìdánimọ̀, lẹ́yìn náà ìwọlé kùnà nígbà tí ohun èlò náà bá pàṣípàrọ̀ kóòdù ìyọ̀ǹda tí a dá padà. Ìpàṣípàrọ̀ yẹn jẹ́ ìbéèrè tí ó jáde láti ọ̀dọ̀ olùpèsè ohun èlò, pẹ̀lú HTTP client tirẹ̀.

Fún API tí ó dá lórí RestClient tí ó wà ní Spring Security 6.5, fún olùfẹ́sí ìdáhùn tọ́kẹ̀nì kóòdù ìyọ̀ǹda ní ilé-iṣẹ́ ìbéèrè tí ó mọ aṣojú:

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

Àwọn kíláàsì converter àti olùṣàkóso àṣìṣe máa ń dáàbò bo ìhùwàsí ìbéèrè tọ́kẹ̀nì tí a kọ sílẹ̀ ti Spring Security. RestClient gbogbogbò tí a ṣètò fún API JSON tí kò ní ìsopọ̀ nìkan kì í ṣe àrọ́wọ́tó dọ́gba.

So tokenClient kan náà mọ́ ìṣètò ààbò tí ó wà:

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

Ìwọ̀nyí jẹ́ àwọn ege ìṣètò fún ohun èlò tí ó ti ní ìforúkọsílẹ̀ olùfẹ́sí àti SecurityFilterChain. Wọ́n yan aṣojú HTTP láìsí ìjẹ́rìí; aṣojú tí ó nílò àwọn ẹ̀rí nílò ìṣètò ìjẹ́rìí tí ó bá ọkọ̀ tí a yàn mu. Fún ibi ìparí tọ́kẹ̀nì HTTPS tí a lè dé sí ní gbangba lórí ọ̀nà gbangba tí a gbà, àkọsílẹ̀ HTTP láti àkójọ aṣojú HTTP lè kún àdírẹ́sì aṣojú tí kò ní àkọsílẹ̀ yẹn.

Pa host aṣojú mọ́ kúrò ní ibi tí port àti ètò URL rẹ̀ wà. Fi URI tọ́kẹ̀nì olùpèsè ìdánimọ̀ sílẹ̀ gẹ́gẹ́ bí ibi tí a ń lọ. Àpẹẹrẹ náà kò rọ́pò ìjẹ́rìí ìwé-ẹ̀rí.

Àwọn ìbéèrè tí ó tẹ̀le nílò àyẹ̀wò ohun-ìní tiwọn. Gbígba UserInfo, ìpàṣípàrọ̀ tọ́kẹ̀nì ìmúdọ̀tun, àwọn ẹ̀bùn client-credentials àti àwọn ìpè API tí a dáàbò bo lè lo àwọn ohun èlò olùfẹ́sí mìíràn. Ṣètò olùfẹ́sí tí a ṣe àtìlẹ́yìn tí ó bá mu nígbà tí iṣẹ́ yẹn pẹ̀lú nílò ọ̀nà náà. Fún ṣíṣàn client_credentials alátagbà ti Spring Security 6.5, ṣètò olùfẹ́sí tọ́kẹ̀nì alátagbà àti olùpèsè ẹ̀bùn rẹ̀ lọ́tọ̀.

Àwọn àpẹẹrẹ àtijọ́ tí ó ń lo OAuth2RestTemplate àti AccessTokenProvider jẹ́ ti iṣẹ́ àkànṣe Spring Security OAuth àtijọ́. Yan API tí ohun èlò tí a fi sórí ń lò kí o tó mú kóòdù bá a mu; má ṣe dà wọ́n pọ̀ mọ́ ìṣètò yìí.

Àwọn àpilẹ̀kọ tó jọra