Rumah >Java >javaTutorial >Bagaimana untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Aplikasi Spring?
Mendapatkan Butiran Pengguna Pengguna Aktif
Apabila bekerja dengan pengawal dalam aplikasi Spring, mendapatkan semula butiran pengguna aktif boleh dicapai dengan mengakses pelaksanaan UserDetails.
<code class="java">User activeUser = (User)SecurityContextHolder.getContext().getAuthentication().getPrincipal();</code>
Walaupun pendekatan ini berfungsi, ia boleh dipermudahkan menggunakan suntikan pergantungan.
Menggunakan @AuthenticationPrincipal Anotasi
Dalam Spring Security 3.2 dan lebih baru, anotasi @AuthenticationPrincipal boleh digunakan. Penyelesaian elegan ini membolehkan suntikan terus objek UserDetails ke dalam pengawal atau kaedah.
<code class="java">public ModelAndView someRequestHandler(@AuthenticationPrincipal User activeUser) { ... }</code>
Menggunakan ArgumentResolvers
Sebelum Spring Security 3.2, atau jika penyesuaian diperlukan , penyelesai hujah boleh digunakan. WebArgumentResolver, seperti CurrentUserWebArgumentResolver, boleh dibuat untuk menyelesaikan objek UserDetails secara automatik.
<code class="java">public class CurrentUserWebArgumentResolver implements WebArgumentResolver { @Override public Object resolveArgument(...) { if (...) { return (User) ((Authentication) principal).getPrincipal(); } else { return WebArgumentResolver.UNRESOLVED; } } }</code>
Penyelesai ini perlu didaftarkan dalam konfigurasi aplikasi.
Spring 3.1 : HandlerResolvthodArgument 🎜>
Dalam Spring 3.1 , HandlerMethodArgumentResolver, seperti CurrentUserHandlerMethodArgumentResolver, disyorkan. Ia menyediakan kefungsian yang serupa dengan WebArgumentResolver.<code class="java">public class CurrentUserHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver { @Override public Object resolveArgument(...) { if (...) { return (User) ((Authentication) principal).getPrincipal(); } else { return WebArgumentResolver.UNRESOLVED; } } }</code>Resolver ini juga perlu didaftarkan dalam konfigurasi.Dengan menggunakan kaedah ini, anda boleh mendapatkan Butiran Pengguna pengguna aktif secara elegan dalam pengawal anda, mempertingkatkan kebolehselenggaraan dan kebolehbacaan kod aplikasi Spring anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Butiran Pengguna Pengguna Aktif dalam Aplikasi Spring?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!