In spring-security-oauth2:2.4.0.RELEASE
classi come OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
e ClientCredentialsAccessTokenProvider
sono 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 RestTemplate
servizio esterno protetto da OAuth. Attualmente creo un OAuth2ProtectedResourceDetails
con il mio ID cliente e il segreto che passo in un OAuth2RestTemplate
. Ho anche ClientCredentialsAccessTokenProvider
aggiunto un'aggiunta personalizzata a quella OAuth2ResTemplate
che 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 ClientHttpRequestInterceptor
per 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 OAuth2AuthorizedClientService
che dice sia utile per l'uso negli intercettori, ma ancora una volta sembra che si basi su cose come quella ClientRegistrationRepository
che 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?