|
|
@@ -8,7 +8,12 @@ import com.uas.platform.b2c.common.account.service.RoleService;
|
|
|
import com.uas.platform.b2c.common.account.service.UserService;
|
|
|
import com.uas.platform.b2c.core.support.SystemSession;
|
|
|
import com.uas.platform.core.model.Constant;
|
|
|
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
|
|
|
+import com.uas.sso.SSOHelper;
|
|
|
+import com.uas.sso.SSOToken;
|
|
|
+import com.uas.sso.entity.UserAccount;
|
|
|
import net.sf.ehcache.CacheManager;
|
|
|
+import org.apache.log4j.Logger;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.data.repository.query.Param;
|
|
|
import org.springframework.http.HttpStatus;
|
|
|
@@ -18,6 +23,7 @@ import org.springframework.util.StringUtils;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.net.URLDecoder;
|
|
|
import java.util.List;
|
|
|
@@ -29,6 +35,9 @@ import java.util.List;
|
|
|
@RequestMapping("/user/authentication")
|
|
|
public class AuthenticationController {
|
|
|
|
|
|
+
|
|
|
+ private static final Logger logger = Logger.getLogger(AuthenticationController.class);
|
|
|
+
|
|
|
@Autowired
|
|
|
private UserService userService;
|
|
|
|
|
|
@@ -93,10 +102,24 @@ public class AuthenticationController {
|
|
|
*/
|
|
|
@RequestMapping(value = "/{enUU}")
|
|
|
@ResponseBody
|
|
|
- public void switchEnterprise(@PathVariable("enUU") long enUU, HttpServletRequest request) {
|
|
|
+ public void switchEnterprise(@PathVariable("enUU") long enUU, HttpServletRequest request, HttpServletResponse response) {
|
|
|
userService.saveLoginTime(enUU);
|
|
|
User user = userService.switchEnterprise(enUU);
|
|
|
request.getSession().setAttribute("user", user);
|
|
|
+
|
|
|
+ SSOToken token = (SSOToken)SSOHelper.getToken(request);
|
|
|
+ logger.info(String.format("切换账套,用户:%s,获取用户信息成功,手机号:%s", user.getUserName(), token.getUid()));
|
|
|
+ UserAccount tokenUser = FlexJsonUtils.fromJson(token.getData(), UserAccount.class);
|
|
|
+ if (enUU == 0L) {
|
|
|
+ tokenUser.setSpaceUU(null);
|
|
|
+ tokenUser.setBusinessCode(null);
|
|
|
+ tokenUser.setSpaceName(null);
|
|
|
+ } else {
|
|
|
+ tokenUser.setSpaceUU(enUU);
|
|
|
+ }
|
|
|
+ token.setData(FlexJsonUtils.toJson(tokenUser));
|
|
|
+ // 设置cookie
|
|
|
+ SSOHelper.setSSOCookie(request, response, token, true);
|
|
|
}
|
|
|
|
|
|
/**
|