Эх сурвалжийг харах

ref:token动态设置域名

liusw 6 жил өмнө
parent
commit
a46e71aebc

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

@@ -153,7 +153,7 @@ public class PersonalRegisterController extends BaseController {
         SSOHelper.getSSOService().getConfig().setCookieDomain(DomainUtil.getFirstDomain(request));
         SSOHelper.setSSOCookie(request, response, st, true);
 
-        syncSsoService.sendUserLoginStateToSso(0L, userAccount.getUserUU(), response, null);
+        syncSsoService.sendUserLoginStateToSso(0L, userAccount.getUserUU(), response, null, request);
 
         ModelMap data = new ModelMap();
         data.addAttribute("data", userAccount)

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

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

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

@@ -324,7 +324,7 @@ public class LoginServiceImpl implements LoginService {
         // 设置cookie
         request.setAttribute(SSOConfig.SSO_COOKIE_MAXAGE, loginParam.getMaxage());
         setCookie(userAccount);
-        syncSsoService.sendUserLoginStateToSso(userAccount.getSpaceUU(), userAccount.getUserUU(), response, loginParam.getMaxage());
+        syncSsoService.sendUserLoginStateToSso(userAccount.getSpaceUU(), userAccount.getUserUU(), response, loginParam.getMaxage(), request);
         LOGGER.info("用户({})登录成功,时间:{}", userUU, userRecord.getLastLoginTime());
         return loginByUser(userAccount, loginParam);
     }

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

@@ -3,6 +3,7 @@ package com.uas.sso.sync.service;
 import com.uas.sso.sync.entity.SsoServiceUser;
 import com.uas.sso.sync.entity.SsoServiceUserspace;
 
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 /**
@@ -30,5 +31,5 @@ public interface SyncSsoService {
      * @param spaceUU
      * @param userUU
      */
-    void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAges);
+    void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAges, HttpServletRequest request);
 }

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

@@ -7,6 +7,7 @@ import com.uas.sso.SSOConfiguration;
 import com.uas.sso.common.util.HttpUtil;
 import com.uas.sso.sync.entity.*;
 import com.uas.sso.sync.service.SyncSsoService;
+import com.uas.sso.util.DomainUtil;
 import com.usoft.mq.utils.RabbitSendService;
 import com.usoft.security.utils.OpenApiSignUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +15,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
@@ -74,7 +76,7 @@ public class SyncSsoServiceImpl implements SyncSsoService {
     }
 
     @Override
-    public void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAge) {
+    public void sendUserLoginStateToSso(Long spaceUU, Long userUU, HttpServletResponse response, Integer maxAge, HttpServletRequest request) {
         if (userUU == null) {
             throw new RuntimeException("用户信息不能为空");
         }
@@ -90,7 +92,7 @@ public class SyncSsoServiceImpl implements SyncSsoService {
         // 设置cookies
         Cookie tokenCookie = new Cookie("token", token);
         tokenCookie.setPath("/");
-        tokenCookie.setDomain(SSOConfig.getInstance().getCookieDomain());
+        tokenCookie.setDomain(DomainUtil.getFirstDomain(request));
         if (maxAge != null) {
             tokenCookie.setMaxAge(maxAge);
         }