import com.alibaba.ttl.TransmittableThreadLocal;
import com.didiglobal.ehr.ehrsupport.entity.StaffInfo;
public class UserInfoHolder {
private static final TransmittableThreadLocal<StaffInfo> USER_INFO = new TransmittableThreadLocal<>();
private static final TransmittableThreadLocal<String> ORIGIN_USER = new TransmittableThreadLocal<>();
/**
* 设置用户信息到本地变量
*
* @param userInfo
*/
public static void setUserInfo(StaffInfo userInfo) {
USER_INFO.set(userInfo);
}
public static void setOriginUser(String ldap) {
ORIGIN_USER.set(ldap);
}
/**
* 从本地线程变量中获取用户信息
*
* @return
*/
public static StaffInfo getUserInfo() {
return USER_INFO.get();
}
public static String getUserInfoLdap(String defaultLdap) {
StaffInfo staffInfo = getUserInfo();
if (staffInfo != null) {
return staffInfo.getLdap();
}
return defaultLdap;
}
public static String getOriginUser() {
return ORIGIN_USER.get();
}
/**
* 移除线程本地变量中保存的用户信息
*/
public static void removeUserInfo() {
USER_INFO.remove();
ORIGIN_USER.remove();
}
}
地基代码——获取本地线程用户
最新推荐文章于 2023-11-22 01:12:14 发布