Selaa lähdekoodia

西交大用户认证升级

wangliang 1 vuosi sitten
vanhempi
commit
1040f64575

+ 21 - 1
cas/src/main/java/com/qmth/teachcloud/cas/util/XjtuCasUtil.java

@@ -222,8 +222,28 @@ public class XjtuCasUtil {
             JSONObject jsonObject = JSONObject.parseObject(logoutResult);
             String message = jsonObject.getString("message");
             if (Objects.nonNull(message) && Objects.equals(message, "成功")) {
+                Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
+                String returnUrl = null;
+                log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
+                if (!CollectionUtils.isEmpty(mapSetting)) {
+                    SimpleObject simpleObject = mapSetting.get(Constants.CAS_ADDRESS);
+                    Objects.requireNonNull(simpleObject, "未配置单点登录地址");
+                    String casAddress = simpleObject.getValue();
+                    String loginUri = null;
+                    if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
+                        if (casAddress.lastIndexOf("/") == casAddress.length() - 1) {
+                            casAddress = casAddress.substring(0, casAddress.lastIndexOf("/"));
+                        }
+                        loginUri = casAddress + Constants.SSO_LOGIN_URI;
+                    }
+                    simpleObject = mapSetting.get(Constants.APP_ID);
+                    Objects.requireNonNull(simpleObject, "未配置学校appId");
+                    returnUrl = Constants.OAUTH_URL + SystemConstant.GET_UNKNOWN +
+                            Constants.APP_ID + SystemConstant.GET_EQUAL + simpleObject.getValue() + SystemConstant.GET_SYMBOL +
+                            Constants.REDIRECT_URI + SystemConstant.GET_EQUAL + loginUri + "&responseType=code&scope=user_info&state=1234";
+                }
                 response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-                response.sendRedirect(Constants.RETURN_URL);
+                response.sendRedirect(returnUrl);
             }
         }
     }

+ 10 - 2
cas/src/main/java/com/qmth/teachcloud/cas/util/xjtu/Constants.java

@@ -6,7 +6,7 @@ public interface Constants {
     String CAS_BASE_PATH = "https://org.xjtu.edu.cn";
 
     // CAS登录地址
-    String CAS_LOGIN_URL = CAS_BASE_PATH + "/openplatform/oauth/login";
+//    String CAS_LOGIN_URL = CAS_BASE_PATH + "/openplatform/oauth/login";
 
     String ACCESS_TOKEN_URL = CAS_BASE_PATH + "/openplatform/oauth/getAccessToken";
 
@@ -14,12 +14,20 @@ public interface Constants {
 
     String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";
 
+    String OAUTH_URL = "https://org.xjtu.edu.cn/openplatform/oauth/authorize";
+
     // CAS注销地址
     String CAS_LOGOUT_URL = CAS_BASE_PATH + "/openplatform/oauth/logout";
 
+    String SSO_LOGIN_URI = "/api/open/xjtu/authentication";
+
     String SSO_LOGOUT_URI = "/api/open/xjtu/authentication/logout";
 
     String CAS_ADDRESS = "casAddress";
 
-    String RETURN_URL = "https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=http://10.184.206.15/api/open/xjtu/authentication&responseType=code&scope=user_info&state=1234";
+    String APP_ID = "appId";
+
+    String REDIRECT_URI = "redirectUri";
+
+//    String RETURN_URL = "https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=http://10.184.206.15/api/open/xjtu/authentication&responseType=code&scope=user_info&state=1234";
 }