Browse Source

企业切换要通知到账户中心

git-svn-id: svn+ssh://10.10.101.21/source/platform/platform-b2b@6346 f3bf4e98-0cf0-11e4-a00c-a99a8b9d557d
yingp 9 years ago
parent
commit
1eec9431c8

+ 16 - 1
src/main/java/com/uas/platform/b2b/controller/AuthenticationController.java

@@ -1,5 +1,7 @@
 package com.uas.platform.b2b.controller;
 package com.uas.platform.b2b.controller;
 
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import javax.servlet.http.HttpSession;
 
 
 import org.springframework.http.HttpStatus;
 import org.springframework.http.HttpStatus;
@@ -13,6 +15,9 @@ import org.springframework.web.bind.annotation.RestController;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.User;
 import com.uas.platform.b2b.model.UserInfo;
 import com.uas.platform.b2b.model.UserInfo;
 import com.uas.platform.b2b.support.SystemSession;
 import com.uas.platform.b2b.support.SystemSession;
+import com.uas.platform.core.util.serializer.FlexJsonUtils;
+import com.uas.sso.SSOHelper;
+import com.uas.sso.SSOToken;
 
 
 @RestController
 @RestController
 @RequestMapping("/authentication")
 @RequestMapping("/authentication")
@@ -35,9 +40,19 @@ public class AuthenticationController {
 	 */
 	 */
 	@RequestMapping(value = "/{enUU}")
 	@RequestMapping(value = "/{enUU}")
 	@ResponseBody
 	@ResponseBody
-	public void switchEnterprise(@PathVariable("enUU") long enUU) {
+	public void switchEnterprise(HttpServletRequest request, HttpServletResponse response, @PathVariable("enUU") long enUU) {
 		User user = SystemSession.getUser();
 		User user = SystemSession.getUser();
 		user.setCurrentEnterprise(enUU);
 		user.setCurrentEnterprise(enUU);
+		// 通知到账户中心
+		SSOToken token = SSOHelper.attrToken(request);
+		if (null != token) {
+			com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
+			tokenUser.setSpaceDialectUID(String.valueOf(enUU));
+			tokenUser.setId(null);
+			SSOToken newToken = new SSOToken(request, tokenUser.getUid());
+			newToken.setData(FlexJsonUtils.toJson(tokenUser));
+			SSOHelper.setSSOCookie(request, response, newToken, true);
+		}
 	}
 	}
 
 
 }
 }

+ 1 - 1
src/main/java/com/uas/platform/b2b/filter/SSOInterceptor.java

@@ -148,7 +148,7 @@ public class SSOInterceptor extends AbstractSSOInterceptor {
 				log(request, user);
 				log(request, user);
 			}
 			}
 		} else {
 		} else {
-			// 企业切换情况
+			// 从其他应用切换了企业的情况
 			if (token.getData() != null) {
 			if (token.getData() != null) {
 				com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
 				com.uas.account.entity.User tokenUser = FlexJsonUtils.fromJson(token.getData(), com.uas.account.entity.User.class);
 				if (!StringUtils.isEmpty(tokenUser.getSpaceDialectUID())
 				if (!StringUtils.isEmpty(tokenUser.getSpaceDialectUID())