擷取活動使用者詳細資料
在控制器方法中存取目前經過驗證的使用者時,取得UserDetails 實作傳統上需要存取上下文並進行強制轉換User 物件的主體。
WebArgumentResolver 解決方案
為了更優雅的方法,請考慮實作一個 WebArgumentResolver,它負責解析使用自訂註解進行註解的 User 物件,例如@ActiveUser。此解析器可以根據註解的存在和方法參數的類型有條件地傳回使用者。
Spring 3.1 解:HandlerMethodArgumentResolver
如果使用 Spring 3.1 或之後,首選 HandlerMethodArgumentResolver。它支援檢查@ActiveUser註解,如果滿足條件則傳回使用者。
Spring Security 3.2解決方案:@AuthenticationPrincipal
Spring Security 3.2引入了@AuthenticationPrincipal註解,它允許將使用者物件直接注入到控制器方法中,從而直接注入控制器方法了流程。若要使用此註釋,請在 Spring 配置中註冊 AuthenticationPrincipalArgumentResolver。
對於舊版的 Spring Security:
如果使用早期版本的 Spring Security 或更喜歡自訂方法,考慮實作上述 WebArgumentResolver 解決方案。
以上是如何在Spring應用程式中檢索目前使用者?的詳細內容。更多資訊請關注PHP中文網其他相關文章!