xiatian 1 week ago
parent
commit
2424ec9859
2 changed files with 18 additions and 4 deletions
  1. 0 1
      pom.xml
  2. 18 3
      src/main/java/cn/com/qmth/ac/service/impl/CommonServiceImpl.java

+ 0 - 1
pom.xml

@@ -40,7 +40,6 @@
             <dependency>
         <groupId>javax.validation</groupId>
         <artifactId>validation-api</artifactId>
-        <version>2.0.1.Final</version>
       </dependency>
             <dependency>
         <groupId>org.jsoup</groupId>

+ 18 - 3
src/main/java/cn/com/qmth/ac/service/impl/CommonServiceImpl.java

@@ -107,9 +107,24 @@ public class CommonServiceImpl implements CommonService {
         rp.setSecretKey(secretKey);
 
         String tkt = request.getParameter("ticket");
+
+        String host = environment.getProperty("examcloud.auth.center.host");
+        if (StringUtils.isBlank(host)) {
+            throw new StatusException("未配置examcloud.auth.center.host");
+        }
+
+        String loginUrlRoot = host + "/api/auth/login/" + schoolCode;
+        String encodeLoginUrlRoot = null;
+        try {
+            encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, StandardCharsets.UTF_8.toString());
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException(e);
+        }
+        String loginUrl = authlogin + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL
+                + encodeLoginUrlRoot;
         if (Objects.isNull(tkt) || tkt.length() == 0) {
             rp.setTicketValid(false);
-            rp.setReturnUrl(authlogin);
+            rp.setReturnUrl(loginUrl);
         } else {// 校验ticket,获取用户信息
             // 发送请求
             Map<String, Object> map = new LinkedHashMap<>();
@@ -120,12 +135,12 @@ public class CommonServiceImpl implements CommonService {
                 log.warn("data:{}", data);
                 if (data == null) {
                     rp.setTicketValid(false);
-                    rp.setReturnUrl(authlogin);
+                    rp.setReturnUrl(loginUrl);
                 } else {
                     String loginName = getLoginName(data);
                     if (StringUtils.isBlank(loginName)) {
                         rp.setTicketValid(false);
-                        rp.setReturnUrl(authlogin);
+                        rp.setReturnUrl(loginUrl);
                     } else {
                         rp.setTicketValid(true);
                         rp.setLoginName(loginName);