Spring Security 6.5: malartú an chóid údaraithe OAuth a sheoladh trí sheachfhreastalaí
Tabhair RestClient atá feasach ar sheachfhreastalaí do chliant freagartha comhartha chód údaraithe Spring Security, agus na tiontairí OAuth agus an láimhseálaí earráidí á gcoinneáil.
Sroicheann an brabhsálaí an soláthraí aitheantais, ansin teipeann ar an logáil isteach nuair a mhalartaíonn an feidhmchlár an cód údaraithe a cuireadh ar ais. Iarratas amach ó fhreastalaí an fheidhmchláir is ea an malartú sin, agus tá a chliant HTTP féin aige.
Don API atá bunaithe ar RestClient atá ar fáil i Spring Security 6.5, cuir monarcha iarratas atá feasach ar sheachfhreastalaí ar fáil do chliant freagartha comhartha chód údaraithe:
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);
Coinníonn na haicmí tiontairí agus láimhseálaí earráidí iompar doiciméadaithe iarrata comhartha Spring Security. Ní hionann RestClient ginearálta atá cumraithe do API JSON neamhghaolmhar amháin agus ionadaí coibhéiseach.
Ceangail an tokenClient céanna leis an gcumraíocht slándála atá ann cheana:
http.oauth2Login(login -> login
.tokenEndpoint(token -> token
.accessTokenResponseClient(tokenClient)));
Is blúirí cumraíochta iad seo d'fheidhmchlár a bhfuil a chlárú cliaint agus a SecurityFilterChain aige cheana. Roghnaíonn siad seachfhreastalaí HTTP gan fíordheimhniú; teastaíonn an chumraíocht fhíordheimhnithe chomhfhreagrach den iompar roghnaithe ó sheachfhreastalaí a éilíonn dintiúirí. Chun críochphointe comhartha HTTPS atá inrochtana go poiblí ar bhealach poiblí ceadaithe, is féidir le hiontráil HTTP ón liosta seachfhreastalaithe HTTP an seoladh seachfhreastalaí gan chuntas sin a líonadh.
Coinnigh óstrú an tseachfhreastalaí ar leithligh óna phort agus óna scéim URL. Fág URI comhartha an tsoláthraí aitheantais mar cheann scríbe. Ní chuireann an sampla ionadú ar bhailíochtú teastais.
Teastaíonn a sheiceáil úinéireachta féin ó iarratais níos déanaí. Is féidir le haisghabháil UserInfo, malartuithe comhartha athnuachana, deontais client-credentials agus glaonna API cosanta úsáid a bhaint as rudaí cliaint eile. Cumraigh an cliant tacaíochta comhfhreagrach nuair a theastaíonn an bealach ón oibríocht sin freisin. Chun sreabhadh imoibríoch client_credentials Spring Security 6.5, cumraigh an cliant comhartha imoibríoch agus a sholáthraí deontais ar leithligh.
Baineann samplaí seanbhunaithe a úsáideann OAuth2RestTemplate agus AccessTokenProvider leis an tseanphróiseas Spring Security OAuth. Roghnaigh an API a úsáideann an feidhmchlár suiteáilte sula ndéanann tú an cód a oiriúnú; ná measc na rudaí sin sa chumraíocht seo.