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!