Browse Source

ref:token动态设置域名

liusw 6 years ago
parent
commit
d0599ac638

+ 3 - 2
sso-server/src/main/java/com/uas/sso/controller/PersonalRegisterController.java

@@ -150,10 +150,11 @@ public class PersonalRegisterController extends BaseController {
         List<String> loginUrls = appService.findAllLoginUrl();
         List<String> loginUrls = appService.findAllLoginUrl();
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         st.setData(JSON.toJSONString(userAccount));
         st.setData(JSON.toJSONString(userAccount));
-        SSOHelper.getSSOService().getConfig().setCookieDomain(DomainUtil.getFirstDomain(request));
+        String domain = DomainUtil.getFirstDomain(request);
+        SSOHelper.getSSOService().getConfig().setCookieDomain(domain);
         SSOHelper.setSSOCookie(request, response, st, true);
         SSOHelper.setSSOCookie(request, response, st, true);
 
 
-        syncSsoService.sendUserLoginStateToSso(0L, userAccount.getUserUU(), response, null, request);
+        syncSsoService.sendUserLoginStateToSso(0L, userAccount.getUserUU(), response, null, domain);
 
 
         ModelMap data = new ModelMap();
         ModelMap data = new ModelMap();
         data.addAttribute("data", userAccount)
         data.addAttribute("data", userAccount)

+ 3 - 2
sso-server/src/main/java/com/uas/sso/controller/UserspaceRegisterController.java

@@ -222,9 +222,10 @@ public class UserspaceRegisterController extends BaseController {
                 .addAttribute("currentUrl", baseUrl);
                 .addAttribute("currentUrl", baseUrl);
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         st.setData(JSON.toJSONString(userAccount));
         st.setData(JSON.toJSONString(userAccount));
-        SSOHelper.getSSOService().getConfig().setCookieDomain(DomainUtil.getFirstDomain(request));
+        String domain = DomainUtil.getFirstDomain(request);
+        SSOHelper.getSSOService().getConfig().setCookieDomain(domain);
         SSOHelper.setSSOCookie(request, response, st, true);
         SSOHelper.setSSOCookie(request, response, st, true);
-        syncSsoService.sendUserLoginStateToSso(userspace.getSpaceUU(), userspace.getAdminUU(), response, null, request);
+        syncSsoService.sendUserLoginStateToSso(userspace.getSpaceUU(), userspace.getAdminUU(), response, null, domain);
         LOGGER.info("用户({})注册并登录成功,时间:{}", admin.getUserUU(), System.currentTimeMillis());
         LOGGER.info("用户({})注册并登录成功,时间:{}", admin.getUserUU(), System.currentTimeMillis());
         return success(data);
         return success(data);
     }
     }

+ 5 - 4
sso-server/src/main/java/com/uas/sso/service/impl/LoginServiceImpl.java

@@ -323,16 +323,17 @@ public class LoginServiceImpl implements LoginService {
 
 
         // 设置cookie
         // 设置cookie
         request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, loginParam.getMaxage());
         request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, loginParam.getMaxage());
-        setCookie(userAccount);
-        syncSsoService.sendUserLoginStateToSso(userAccount.getSpaceUU(), userAccount.getUserUU(), response, loginParam.getMaxage(), request);
+        String domain = DomainUtil.getFirstDomain(request);
+        setCookie(userAccount, domain);
+        syncSsoService.sendUserLoginStateToSso(userAccount.getSpaceUU(), userAccount.getUserUU(), response, loginParam.getMaxage(), domain);
         LOGGER.info("用户({})登录成功,时间:{}", userUU, userRecord.getLastLoginTime());
         LOGGER.info("用户({})登录成功,时间:{}", userUU, userRecord.getLastLoginTime());
         return loginByUser(userAccount, loginParam);
         return loginByUser(userAccount, loginParam);
     }
     }
 
 
-    private void setCookie(UserAccount userAccount) {
+    private void setCookie(UserAccount userAccount, String domain) {
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         SSOToken st = new SSOToken(request, userAccount.getMobile());
         st.setData(JSON.toJSONString(userAccount));
         st.setData(JSON.toJSONString(userAccount));
-        SSOHelper.getSSOService().getConfig().setCookieDomain(DomainUtil.getFirstDomain(request));
+        SSOHelper.getSSOService().getConfig().setCookieDomain(domain);
         SSOHelper.setSSOCookie(request, response, st, true);
         SSOHelper.setSSOCookie(request, response, st, true);
     }
     }
 
 

+ 1 - 1
sso-server/src/main/java/com/uas/sso/sync/service/SyncSsoService.java

@@ -31,5 +31,5 @@ public interface SyncSsoService {
      * @param spaceUU
      * @param spaceUU
      * @param userUU
      * @param userUU
      */
      */
-    void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAges, HttpServletRequest request);
+    void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAges, String domain);
 }
 }

+ 2 - 2
sso-server/src/main/java/com/uas/sso/sync/service/impl/SyncSsoServiceImpl.java

@@ -76,7 +76,7 @@ public class SyncSsoServiceImpl implements SyncSsoService {
     }
     }
 
 
     @Override
     @Override
-    public void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAge, HttpServletRequest request) {
+    public void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAge, String domain) {
         if (userUU == null) {
         if (userUU == null) {
             throw new RuntimeException("用户信息不能为空");
             throw new RuntimeException("用户信息不能为空");
         }
         }
@@ -92,7 +92,7 @@ public class SyncSsoServiceImpl implements SyncSsoService {
         // 设置cookies
         // 设置cookies
         Cookie tokenCookie = new Cookie("token", token);
         Cookie tokenCookie = new Cookie("token", token);
         tokenCookie.setPath("/");
         tokenCookie.setPath("/");
-        tokenCookie.setDomain(DomainUtil.getFirstDomain(request));
+        tokenCookie.setDomain(domain);
         if (maxAge != null) {
         if (maxAge != null) {
             tokenCookie.setMaxAge(maxAge);
             tokenCookie.setMaxAge(maxAge);
         }
         }