In spring-security-oauth2:2.4.0.RELEASEclassi come OAuth2RestTemplate, OAuth2ProtectedResourceDetailse ClientCredentialsAccessTokenProvidersono stati tutti contrassegnati come obsoleti.
Dal javadoc su queste classi punta a una guida alla migrazione della sicurezza primaverile che insinua che le persone dovrebbero migrare al progetto core 5 di sicurezza primaverile. Tuttavia, ho difficoltà a trovare il modo in cui implementare il mio caso d'uso in questo progetto.
Tutta la documentazione e gli esempi parlano dell'integrazione con un provider OAuth di terza parte se si desidera autenticare le richieste in arrivo per l'applicazione e si desidera utilizzare il provider OAuth di terze parti per verificare l'identità.
Nel mio caso d'uso tutto quello che voglio fare è fare una richiesta con un RestTemplateservizio esterno protetto da OAuth. Attualmente creo un OAuth2ProtectedResourceDetailscon il mio ID cliente e il segreto che passo in un OAuth2RestTemplate. Ho anche ClientCredentialsAccessTokenProvideraggiunto un'aggiunta personalizzata a quella OAuth2ResTemplateche aggiunge solo alcune intestazioni extra alla richiesta di token richiesta dal provider OAuth che sto usando.
Nella documentazione di Spring Security 5 ho trovato una sezione che menziona la personalizzazione della richiesta di token , ma che sembra essere nel contesto dell'autenticazione di una richiesta in arrivo con un provider OAuth di terze parti. Non è chiaro come lo useresti in combinazione con qualcosa di simile a ClientHttpRequestInterceptorper garantire che ogni richiesta in uscita a un servizio esterno ottenga prima un token e poi lo aggiunga alla richiesta.
Anche nella guida alla migrazione collegata sopra c'è un riferimento a quello OAuth2AuthorizedClientServiceche dice sia utile per l'uso negli intercettori, ma ancora una volta sembra che si basi su cose come quella ClientRegistrationRepositoryche sembra essere dove mantiene le registrazioni per i fornitori di terze parti se si desidera utilizzare che forniscono per garantire che una richiesta in arrivo sia autenticata.
È possibile utilizzare le nuove funzionalità di Spring-Security 5 per la registrazione dei provider OAuth per ottenere un token da aggiungere alle richieste in uscita dalla mia applicazione?
WebClientè) o qualcosa di simile viene usato per recuperare un token OAuth da un provider OAuth personalizzato (non uno di quelli supportati OoTB come Facebook / Google) per aggiungerlo a una richiesta in uscita. Tutti gli esempi sembrano concentrarsi sull'autenticazione delle richieste in arrivo con altri provider. Hai qualche suggerimento per qualche buon esempio?