Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Pengawal Spring dengan Elegan?

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

Linda Hamilton
Linda Hamiltonasal
2024-11-06 02:52:02566semak imbas

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>

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>

Konfigurasi:

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

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>

Konfigurasi:

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

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!

Kenyataan:
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