|
|
@@ -13,6 +13,7 @@ import com.uas.platform.b2c.common.weixin.contoller.WeChatController;
|
|
|
import com.uas.platform.b2c.core.constant.PathConstant;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.b2c.core.utils.FastjsonUtils;
|
|
|
+import com.uas.platform.b2c.prod.store.controller.StoreInController;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
import com.uas.platform.core.util.AgentUtils;
|
|
|
import com.uas.platform.core.util.serializer.FlexJsonUtils;
|
|
|
@@ -58,6 +59,8 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
+
|
|
|
+
|
|
|
@Autowired
|
|
|
private ResourceItemDao resourceItemDao;
|
|
|
@Autowired
|
|
|
@@ -79,44 +82,8 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
@Autowired
|
|
|
private EnterpriseDao enterpriseDao;
|
|
|
|
|
|
- private User getUserByToken(SSOToken token) {
|
|
|
- User authedUser = null;
|
|
|
- if (token.getData() != null) {
|
|
|
- UserAccount tokenUser = FlexJsonUtils.fromJson(token.getData(), UserAccount.class);
|
|
|
- if (!StringUtils.isEmpty(tokenUser.getUserUU())) {
|
|
|
- // dialectUID表示client系统自己的唯一标识,比如user_uu,手机号没设置的情况下使用
|
|
|
- authedUser = userService.findUserByUserUU(tokenUser.getUserUU());
|
|
|
- } else if (!StringUtils.isEmpty(tokenUser.getMobile())) {
|
|
|
- // UID表示所有系统公认的唯一标识,这里统一使用手机号
|
|
|
- authedUser = userService.findUserByUserTel(tokenUser.getMobile());
|
|
|
- } else {
|
|
|
- logger.error(String.format("invalid user %s, please set uid or dialectUID", tokenUser.getVipName()));
|
|
|
- }
|
|
|
- if (authedUser != null && authedUser.getEnterprises() != null) {
|
|
|
- // 企业资料在client系统自己的唯一标识,比如en_uu
|
|
|
- if (tokenUser.getSpaceUU() != null) {
|
|
|
- authedUser.setCurrentEnterprise(tokenUser.getSpaceUU());
|
|
|
- } else if (tokenUser.getBusinessCode() != null) {
|
|
|
- for (Enterprise enterprise : authedUser.getEnterprises()) {
|
|
|
- // 企业资料在所有系统公认的唯一标识,这里使用商业登记证号
|
|
|
- if (tokenUser.getBusinessCode().equals(enterprise.getEnBussinessCode())) {
|
|
|
- authedUser.setEnterprise(enterprise);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- return authedUser;
|
|
|
- }
|
|
|
-
|
|
|
@Override
|
|
|
protected boolean onAuthenticateFailed(HttpServletRequest request, HttpServletResponse response) {
|
|
|
- Cookie[] cookies = request.getCookies();
|
|
|
- System.out.print("请求cookies:");
|
|
|
- for (Cookie c : cookies) {
|
|
|
- System.err.print(c.getName() + "-" + c.getValue());
|
|
|
- }
|
|
|
SystemSession.clear();
|
|
|
if (request.getRequestURI().endsWith(PathConstant.AUTHENTICATION_URL)) {
|
|
|
return true;
|
|
|
@@ -171,24 +138,16 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
|
|
|
@Override
|
|
|
protected void onAuthenticateSuccess(HttpServletRequest request, HttpServletResponse response) {
|
|
|
SSOToken token = SSOHelper.attrToken(request);
|
|
|
- User user = getUserByToken(token);
|
|
|
+ User user = userService.getUserByToken(token);
|
|
|
if (user != null && user.getUserUU() != null) {
|
|
|
- Enterprise enterprise = null;
|
|
|
- if (user.getEnterprise() != null && user.getEnterprise().getUu() != null) {
|
|
|
- enterprise = enterpriseDao.findByUu(user.getEnterprise().getUu());
|
|
|
- }
|
|
|
- user = userDao.findOne(user.getUserUU());
|
|
|
- user.setEnterprise(enterprise);
|
|
|
-
|
|
|
setGrantedAuthorities(user);
|
|
|
user.setIp(AgentUtils.getIp(request));
|
|
|
SystemSession.setUser(user);
|
|
|
accessDecision(request, user);
|
|
|
accessAdmin(request,user);
|
|
|
-
|
|
|
- System.err.println("用户" + user.getUserName() + ",信息获取成功,uid:" + token.getUid());
|
|
|
+ logger.error(String.format("用户:%s,获取用户信息成功,手机号:%s", user.getUserName(), token.getUid()));
|
|
|
} else {
|
|
|
- System.err.println("用户信息获取失败,uid:" + token.getUid());
|
|
|
+ logger.error(String.format("用户获取用户信息失败,uid:%s", token.getUid()));
|
|
|
}
|
|
|
}
|
|
|
|