Spring Security 6.5: iomlaid còd ùghdarrachaidh OAuth a chuir tro phrogsaidh
Thoir RestClient a tha mothachail air progsaidh do chliant freagairt tòcan còd ùghdarrachaidh Spring Security, agus na tionndairean OAuth agus an làimhsichear mhearachdan air an gleidheadh.
Ruigidh am brabhsair an solaraiche dearbh-aithne, agus an uairsin fàilicheas an clàradh a-steach nuair a dh'iomlaidear an aplacaid an còd ùghdarrachaidh a chaidh a thilleadh. 'S e iarrtas a-mach bho fhrithealaiche na h-aplacaid a th' anns an iomlaid sin, le a chliant HTTP fhèin.
Airson an API stèidhichte air RestClient a tha ri fhaighinn ann an Spring Security 6.5, thoir factaraidh iarrtais a tha mothachail air progsaidh don chliant freagairt tòcan còd ùghdarrachaidh:
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);
Gleidhidh na clasaichean tionndaidh agus làimhsichear mhearachdan giùlan clàraichte iarrtas tòcan Spring Security. Chan eil RestClient coitcheann a chaidh a dhealbhachadh a-mhàin airson API JSON neo-cheangailte na ionad co-ionann.
Ceangail an aon tokenClient ris an rèiteachadh tèarainteachd a th' ann mar-thà:
http.oauth2Login(login -> login
.tokenEndpoint(token -> token
.accessTokenResponseClient(tokenClient)));
Is e criomagan rèiteachaidh a tha seo airson aplacaid aig a bheil a clàradh cliaint agus SecurityFilterChain mar-thà. Taghaidh iad progsaidh HTTP gun dearbhadh; feumaidh progsaidh a dh'iarras teisteasan an rèiteachadh dearbhaidh co-fhreagarrach den ghiùlan a chaidh a thaghadh. Airson ceann-uidhe tòcan HTTPS a ruigear gu poblach air slighe phoblach ceadaichte, faodaidh innteart HTTP bhon liosta phrogsaidhean HTTP an seòladh progsaidh gun chunntas sin a lìonadh.
Cùm òstair a' phrogsaidh air leth bhon phort agus bhon sgeama URL aige. Fàg URI tòcan an t-solaraiche dearbh-aithne mar cheann-uidhe. Chan eil an eisimpleir a' cur an àite dearbhadh theisteasan.
Feumaidh iarrtais nas fhaide air adhart an sgrùdadh seilbheachd aca fhèin. Faodaidh lorg UserInfo, iomlaid tòcan ùrachaidh, tabhartasan client-credentials agus gairmean API dìonta cleachdadh a dhèanamh de nithean cliaint eile. Dèan rèiteachadh air a' chliant taic co-fhreagarrach nuair a dh'iarras an obrachadh sin an t-slighe cuideachd. Airson sruthadh reactive client_credentials Spring Security 6.5, dèan rèiteachadh air a' chliant tòcan reactive agus a sholaraiche tabhartais air leth.
Buineadh eisimpleirean sean a chleachdas OAuth2RestTemplate agus AccessTokenProvider don phròiseact Spring Security OAuth as sine. Tagh an API a chleachdas an aplacaid a chaidh a stàladh mus atharraich thu còd; na measgaich na nithean sin anns an rèiteachadh seo.