在我的 spring boot 應用程序中,在我的 rest 控制器中,我成功地注入了一個實例Authentication來獲取會話的用戶信息。但是,在所有這些控制器中,我目前調用這樣的輔助方法:@GetMappingpublic List<String> getData(Authentication auth) { String username = auth.getName().replaceFirst(".*?\\\\", ""); // to remove windows domain name // the rest of these methods only use variable `username`, never `auth`}如何減少此代碼重復?
1 回答

GCT1015
TA貢獻1827條經驗 獲得超4個贊
您可以按如下方式創建一個實用程序類,然后您可以UserUtility.getUsername()在任何需要的地方使用它。
public class UserUtility {
public static String getUsername(){
if (SecurityContextHolder.getContext() != null && SecurityContextHolder.getContext().getAuthentication() != null) {
return SecurityContextHolder.getContext().getAuthentication().getPrincipal());
}
return null;
}
}
添加回答
舉報
0/150
提交
取消