Di spring-security-oauth2:2.4.0.RELEASE
kelas-kelas seperti OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
dan ClientCredentialsAccessTokenProvider
semuanya telah ditandai sebagai usang.
Dari javadoc pada kelas-kelas ini itu menunjuk ke panduan migrasi keamanan pegas yang mengisyaratkan bahwa orang harus bermigrasi ke proyek inti-keamanan 5 musim semi. Namun saya mengalami kesulitan menemukan bagaimana saya akan menerapkan use case saya dalam proyek ini.
Semua dokumentasi dan contoh berbicara tentang integrasi dengan penyedia OAuth bagian ke-3 jika Anda ingin permintaan masuk ke aplikasi Anda diautentikasi dan Anda ingin menggunakan penyedia OAuth pihak ke-3 untuk memverifikasi identitas.
Dalam kasus penggunaan saya, yang ingin saya lakukan adalah membuat permintaan dengan RestTemplate
ke layanan eksternal yang dilindungi oleh OAuth. Saat ini saya membuat OAuth2ProtectedResourceDetails
dengan id klien dan rahasia yang saya berikan menjadi OAuth2RestTemplate
. Saya juga memiliki kustom yang ClientCredentialsAccessTokenProvider
ditambahkan ke OAuth2ResTemplate
yang hanya menambahkan beberapa header tambahan ke permintaan token yang diperlukan oleh penyedia OAuth yang saya gunakan.
Dalam dokumentasi spring-security 5 saya telah menemukan bagian yang menyebutkan menyesuaikan permintaan token , tetapi sekali lagi yang terlihat dalam konteks mengotentikasi permintaan masuk dengan penyedia OAuth pihak ke-3. Tidak jelas bagaimana Anda akan menggunakan ini dalam kombinasi dengan sesuatu seperti ClientHttpRequestInterceptor
untuk memastikan bahwa setiap permintaan keluar ke layanan eksternal pertama mendapat token dan kemudian mendapatkan yang ditambahkan ke permintaan.
Juga dalam panduan migrasi yang ditautkan di atas ada referensi OAuth2AuthorizedClientService
yang dikatakan berguna untuk digunakan dalam pencegat, tetapi sekali lagi ini sepertinya bergantung pada hal-hal seperti ClientRegistrationRepository
yang tampaknya berada di mana ia mengelola pendaftaran untuk penyedia pihak ketiga jika Anda ingin menggunakan yang menyediakan untuk memastikan permintaan yang masuk dikonfirmasi.
Apakah ada cara saya dapat menggunakan fungsionalitas baru di spring-security 5 untuk mendaftarkan penyedia OAuth untuk mendapatkan token untuk ditambahkan ke permintaan keluar dari aplikasi saya?
WebClient
), atau sesuatu yang serupa digunakan untuk mengambil token OAuth dari sebuah penyedia OAuth khusus (bukan yang mendukung OoTB seperti Facebook / Google) untuk menambahkannya ke permintaan keluar. Semua contoh tampaknya berfokus pada otentikasi permintaan masuk dengan penyedia lain. Apakah Anda punya petunjuk untuk contoh yang baik?