In spring-security-oauth2:2.4.0.RELEASE
Klassen wie OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
und ClientCredentialsAccessTokenProvider
alle haben markiert als veraltet.
Aus dem Javadoc zu diesen Klassen geht hervor, dass ein Leitfaden zur Migration der Frühlingssicherheit darauf hinweist, dass Personen zum Kernprojekt der Frühlingssicherheit 5 migrieren sollten. Ich habe jedoch Probleme zu finden, wie ich meinen Anwendungsfall in diesem Projekt implementieren würde.
In der gesamten Dokumentation und in den Beispielen wird die Integration in einen OAuth-Anbieter eines Drittanbieters beschrieben, wenn eingehende Anforderungen an Ihre Anwendung authentifiziert werden sollen und Sie den OAuth-Anbieter eines Drittanbieters zur Überprüfung der Identität verwenden möchten.
In meinem Anwendungsfall möchte ich lediglich eine Anfrage RestTemplate
an einen externen Dienst stellen, der durch OAuth geschützt ist. Derzeit erstelle ich eine OAuth2ProtectedResourceDetails
mit meiner Kunden-ID und meinem Geheimnis, die ich an eine weitergebe OAuth2RestTemplate
. Ich habe auch eine benutzerdefinierte ClientCredentialsAccessTokenProvider
hinzugefügt, die OAuth2ResTemplate
nur einige zusätzliche Header zur Token-Anforderung hinzufügt, die von dem von mir verwendeten OAuth-Anbieter benötigt werden.
In der Spring-Security 5-Dokumentation habe ich einen Abschnitt gefunden, in dem das Anpassen der Token-Anforderung erwähnt wird , der jedoch wiederum im Zusammenhang mit der Authentifizierung einer eingehenden Anforderung bei einem OAuth-Anbieter eines Drittanbieters steht. Es ist nicht klar, wie Sie dies in Kombination mit so etwas wie a verwenden würden, ClientHttpRequestInterceptor
um sicherzustellen, dass jede ausgehende Anforderung an einen externen Dienst zuerst ein Token erhält und dieses dann zur Anforderung hinzufügt.
Auch in dem oben verlinkten Migrationshandbuch wird auf ein Verweis verwiesen, von OAuth2AuthorizedClientService
dem es sagt, dass es für die Verwendung in Interceptors nützlich ist, aber auch dies ClientRegistrationRepository
scheint auf Dingen wie dem zu beruhen , in denen Registrierungen für Drittanbieter verwaltet werden, wenn Sie diese verwenden möchten Diese sorgen dafür, dass eine eingehende Anfrage authentifiziert wird.
Gibt es eine Möglichkeit, die neue Funktionalität in Spring-Security 5 zum Registrieren von OAuth-Anbietern zu nutzen, um ein Token zu erhalten, das ausgehenden Anforderungen aus meiner Anwendung hinzugefügt werden kann?
WebClient
ist) oder ähnliches verwendet wird, um ein OAuth-Token von a abzurufen Benutzerdefinierter OAuth-Anbieter (keiner der OoTB-unterstützten Anbieter wie Facebook / Google), um ihn einer ausgehenden Anfrage hinzuzufügen. Alle Beispiele scheinen sich auf die Authentifizierung eingehender Anfragen bei anderen Anbietern zu konzentrieren. Haben Sie Hinweise für gute Beispiele?