|
@@ -56,6 +56,7 @@ import java.util.List;
|
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
import java.util.Objects;
|
|
import java.util.Objects;
|
|
|
import java.util.Set;
|
|
import java.util.Set;
|
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
* 访问拦截
|
|
* 访问拦截
|
|
@@ -311,6 +312,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
// 如果是从个人用户切换或者当前企业切换
|
|
// 如果是从个人用户切换或者当前企业切换
|
|
|
boolean flag = null == user.getEnterprise() || !user.getEnterprise().getUu().equals(tokenUser.getSpaceUU());
|
|
boolean flag = null == user.getEnterprise() || !user.getEnterprise().getUu().equals(tokenUser.getSpaceUU());
|
|
|
if (!StringUtils.isEmpty(tokenUser.getSpaceUU()) && flag) {
|
|
if (!StringUtils.isEmpty(tokenUser.getSpaceUU()) && flag) {
|
|
|
|
|
+ getUserByToken(user, tokenUser, token);
|
|
|
user.setCurrentEnterprise(tokenUser.getSpaceUU());
|
|
user.setCurrentEnterprise(tokenUser.getSpaceUU());
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -334,6 +336,17 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ private User getUserByToken(User user, UserAccount tokenUser, SSOToken token) {
|
|
|
|
|
+ Set<Enterprise> enterprises = user.getEnterprises();
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(enterprises)) {
|
|
|
|
|
+ List<Enterprise> correctEnterprises = enterprises.stream().filter(enter -> enter.getUu().equals(tokenUser.getSpaceUU())).collect(Collectors.toList());
|
|
|
|
|
+ if (CollectionUtils.isEmpty(correctEnterprises)) {
|
|
|
|
|
+ user = getUserByToken(token);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ return user;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 检验是否个人用户
|
|
* 检验是否个人用户
|
|
|
*
|
|
*
|