Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Pengawal Spring dengan Elegan?

Linda Hamilton
Lepaskan: 2024-11-06 02:52:02
asal
652 orang telah melayarinya

How to Retrieve the Active User's UserDetails in Spring Controllers Elegantly?

Cara Elegan untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Pengawal

Dalam aplikasi Spring, mendapatkan Butiran Pengguna pengguna yang log masuk boleh dicapai dengan mengakses konteks pengesahan dan menghantar prinsipal kepada pelaksanaan UserDetails. Walau bagaimanapun, pendekatan ini mungkin tidak begitu mudah atau intuitif.

Untuk memudahkan proses ini, pertimbangkan penyelesaian elegan berikut:

Menggunakan @AuthenticationPrincipal Anotasi (Spring Security 3.2 ):

Spring Security 3.2 memperkenalkan anotasi @AuthenticationPrincipal, yang membenarkan suntikan automatik UserDetails pengguna yang disahkan ke dalam kaedah pengawal.

Pengawal:

<code class="java">public ModelAndView someRequestHandler(@AuthenticationPrincipal User activeUser) {
    // Logic utilizing the activeUser object
}</code>
Salin selepas log masuk

HandlerMethodArgumentResolver untuk Spring 3.1 :

Untuk versi terdahulu Spring atau keperluan tersuai, melaksanakan HandlerMethodArgumentResolver ialah pilihan yang berdaya maju. Penyelesai ini menentukan jenis pengetua dan mengekstrak objek Pengguna.

Penyelesaikan Argumen:

<code class="java">public class CurrentUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {
    // Implementation to check for eligible method parameters and retrieve the User object
}</code>
Salin selepas log masuk

Konfigurasi:

<code class="java">@Configuration
public class ApplicationConfig {
    // Bean definition for the CurrentUserHandlerMethodArgumentResolver
}</code>
Salin selepas log masuk

Menggunakan CurrentUserWebArgumentResolver (Legasi):

Sebelum Spring 3.1, CurrentUserWebArgumentResolver boleh digunakan untuk fungsi yang serupa.

Penyelesaian Argumen:

<code class="java">public class CurrentUserWebArgumentResolver implements WebArgumentResolver {
    // Implementation for method parameter validation and User object retrieval
}</code>
Salin selepas log masuk

Konfigurasi:

<code class="java">@Configuration
public class ApplicationConfig {
    // Bean definition for the CurrentUserWebArgumentResolver
}</code>
Salin selepas log masuk

Penyelesaian yang dipilih bergantung pada versi Spring aplikasi dan keperluan khusus. Walau bagaimanapun, pendekatan ini menyediakan cara yang elegan dan konsisten untuk mengakses Butiran Pengguna pengguna aktif dalam pengawal.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Pengawal Spring dengan Elegan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan