使用ThreadLocal保存当前线程的用户信息

1. 在JWTFilter(继承自BasicHttpAuthenticationFilter)的executeLogin方法中做判断,如果登陆成功,则将用户信息存入UserUtil.set(user);

2. UserUtil类:

public class UserUtil {
	
	private UserUtil(){ }
	
	private static final ThreadLocal<UserInfo> USER_INFO = new ThreadLocal<UserInfo>();

	public static void set(UserInfo userInfo) {		
		USER_INFO.set(userInfo);
	}
	
	
	public static UserInfo get() {
		return USER_INFO.get();
	}
	
	public static void remove() {
		USER_INFO.remove();
	}
	
	public static String getName() {
		return USER_INFO.get().getName();
	}
	
	public static String getUserNumber() {
		return USER_INFO.get().getUserNumber();
	}
	
	public static String getNickname() {
		return USER_INFO.get().getNickname();
    }
	
	public static String getTelephone() {
		return USER_INFO.get().getTelephone();
    }
	
	
	public static String getEmail() {
		return USER_INFO.get().getEmail();
	}
	

    public static boolean isLogin() {
    	return USER_INFO.get().isLogin();
    }
    
    public static String getToken() {
    	return USER_INFO.get().getToken();
    }
    
    public static String getMsg() {
    	return USER_INFO.get().getNickname();
    }
	
}

猜你喜欢

转载自blog.csdn.net/qq_28060549/article/details/88633617
今日推荐