소스 검색

Merge branch 'dev_v2.0.1' into release_v2.0.1

# Conflicts:
#	cas/src/main/resources/application.properties
wangliang 1 년 전
부모
커밋
6c47c81799
30개의 변경된 파일389개의 추가작업 그리고 354개의 파일을 삭제
  1. 7 0
      cas/pom.xml
  2. 21 4
      cas/src/main/java/com/qmth/teachcloud/cas/api/OpenApiController.java
  3. 2 1
      cas/src/main/java/com/qmth/teachcloud/cas/mq/gdpu/bean/AESEncryptUtils.java
  4. 177 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/BjwlxyCasUtil.java
  5. 4 5
      cas/src/main/java/com/qmth/teachcloud/cas/util/GdpuCasUtil.java
  6. 4 5
      cas/src/main/java/com/qmth/teachcloud/cas/util/SxmuCasUtil.java
  7. 4 4
      cas/src/main/java/com/qmth/teachcloud/cas/util/SxufeCasUtil.java
  8. 6 6
      cas/src/main/java/com/qmth/teachcloud/cas/util/XjtuCasUtil.java
  9. 21 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/bjwlxy/CasUtils.java
  10. 19 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/bjwlxy/Constants.java
  11. 3 72
      cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/CasUtils.java
  12. 0 10
      cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/Constants.java
  13. 11 41
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/CasUtils.java
  14. 0 15
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/Constants.java
  15. 2 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/LoginUser.java
  16. 2 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/HttpRequestUtils.java
  17. 3 38
      cas/src/main/java/com/qmth/teachcloud/cas/util/sxmu/CasUtils.java
  18. 0 10
      cas/src/main/java/com/qmth/teachcloud/cas/util/sxmu/Constants.java
  19. 5 63
      cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/CasUtils.java
  20. 0 14
      cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/Constants.java
  21. 0 4
      cas/src/main/java/com/qmth/teachcloud/cas/util/xjtu/Constants.java
  22. 1 1
      cas/src/main/resources/application.properties
  23. 1 1
      eds/src/main/java/com/qmth/teachcloud/eds/service/impl/GdpuServiceImpl.java
  24. 3 2
      eds/src/main/java/com/qmth/teachcloud/eds/utils/HttpKit.java
  25. 9 11
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/params/OpenParams.java
  26. 48 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/contant/SystemConstant.java
  27. 2 16
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/FunctionalTypeEnum.java
  28. 3 1
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/SchoolCodeEnum.java
  29. 27 24
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/service/impl/CommonServiceImpl.java
  30. 4 4
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/util/HttpUtil.java

+ 7 - 0
cas/pom.xml

@@ -61,6 +61,13 @@
             <scope>system</scope>
             <systemPath>${project.basedir}/src/main/resources/lib/cas-client-core-3.2.1.jar</systemPath>
         </dependency>
+        <dependency>
+            <groupId>com.qmth.cas</groupId>
+            <artifactId>cas-client-core</artifactId>
+            <version>3.2.1</version>
+            <scope>system</scope>
+            <systemPath>${project.basedir}/src/main/resources/lib/cas-client-core-3.2.1.jar</systemPath>
+        </dependency>
     </dependencies>
 
     <build>

+ 21 - 4
cas/src/main/java/com/qmth/teachcloud/cas/api/OpenApiController.java

@@ -20,7 +20,6 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Objects;
@@ -58,6 +57,9 @@ public class OpenApiController {
     @Resource
     SxmuCasUtil sxmuCasUtil;
 
+    @Resource
+    BjwlxyCasUtil bjwlxyCasUtil;
+
     @ApiOperation(value = "cas鉴权接口")
     @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
     @RequestMapping(value = "/{schoolCode}/authentication", method = RequestMethod.GET)
@@ -86,6 +88,9 @@ public class OpenApiController {
             case SXMU:
                 redirectParams = sxmuCasUtil.authentication(schoolCode);
                 break;
+            case BJWLXY:
+                redirectParams = bjwlxyCasUtil.authentication(schoolCode);
+                break;
             default:
                 break;
         }
@@ -116,6 +121,9 @@ public class OpenApiController {
             case SXMU:
                 sxmuCasUtil.logout(schoolCode);
                 break;
+            case BJWLXY:
+                bjwlxyCasUtil.logout(schoolCode);
+                break;
             default:
                 break;
         }
@@ -143,7 +151,7 @@ public class OpenApiController {
                 if (Objects.nonNull(redirectParams)) {
                     commonService.redirectLogic(FunctionalTypeEnum.HOME.name(), redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
                 } else {
-                    response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+                    response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
                     response.sendRedirect(Constants.CAS_LOGIN_URL);
                 }
                 break;
@@ -152,7 +160,7 @@ public class OpenApiController {
                 if (Objects.nonNull(redirectParams)) {
                     commonService.redirectLogic(FunctionalTypeEnum.HOME.name(), redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
                 } else {
-                    response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+                    response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
                     response.sendRedirect(com.qmth.teachcloud.cas.util.gdpu.Constants.CAS_LOGIN_URL);
                 }
                 break;
@@ -161,10 +169,19 @@ public class OpenApiController {
                 if (Objects.nonNull(redirectParams)) {
                     commonService.redirectLogic(FunctionalTypeEnum.HOME.name(), redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
                 } else {
-                    response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+                    response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
                     response.sendRedirect(com.qmth.teachcloud.cas.util.sxmu.Constants.CAS_LOGIN_URL);
                 }
                 break;
+            case BJWLXY:
+                redirectParams = bjwlxyCasUtil.zxzkLogin(schoolCode);
+                if (Objects.nonNull(redirectParams)) {
+                    commonService.redirectLogic(FunctionalTypeEnum.HOME.name(), redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
+                } else {
+                    response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
+                    response.sendRedirect(com.qmth.teachcloud.cas.util.bjwlxy.Constants.CAS_LOGIN_URL);
+                }
+                break;
             default:
                 break;
         }

+ 2 - 1
cas/src/main/java/com/qmth/teachcloud/cas/mq/gdpu/bean/AESEncryptUtils.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.cas.mq.gdpu.bean;
 
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.commons.lang3.StringUtils;
 
@@ -50,7 +51,7 @@ public class AESEncryptUtils {
         Cipher cipher = Cipher.getInstance(ALGORITHMSTR);
         cipher.init(Cipher.ENCRYPT_MODE, new
                 SecretKeySpec(encryptKey.getBytes(), "AES"));
-        return cipher.doFinal(content.getBytes("utf-8"));
+        return cipher.doFinal(content.getBytes(SystemConstant.CHARSET_NAME));
     }
 
     /**

+ 177 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/BjwlxyCasUtil.java

@@ -0,0 +1,177 @@
+package com.qmth.teachcloud.cas.util;
+
+import com.qmth.teachcloud.cas.util.bjwlxy.CasUtils;
+import com.qmth.teachcloud.cas.util.bjwlxy.Constants;
+import com.qmth.teachcloud.exchange.common.bean.dto.syssetting.SimpleObject;
+import com.qmth.teachcloud.exchange.common.bean.params.OpenParams;
+import com.qmth.teachcloud.exchange.common.bean.params.RedirectParams;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+import com.qmth.teachcloud.exchange.common.entity.BasicSchool;
+import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
+import com.qmth.teachcloud.exchange.common.service.CommonCacheService;
+import com.qmth.teachcloud.exchange.common.util.HttpUtil;
+import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import net.psctech.sso.filter.LoginFilter;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @Description: 陕西宝鸡文理学院cas工具类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+@Component
+public class BjwlxyCasUtil {
+    private static final Logger log = LoggerFactory.getLogger(BjwlxyCasUtil.class);
+
+    @Resource
+    AuthInfoService authInfoService;
+
+    @Resource
+    CommonCacheService commonCacheService;
+
+    /**
+     * 陕西宝鸡文理登录逻辑
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams authentication(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        authInfoService.appHasExpired(schoolCode);
+
+        BasicSchool basicSchool = commonCacheService.schoolCache(schoolCode);
+        Objects.requireNonNull(basicSchool, "学校信息不存在");
+
+        OpenParams openParams = null;
+        String employeeNo = null, returnUrl = null, casAddress = null, schoolServiceAddress = null;
+        Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
+        if (!CollectionUtils.isEmpty(mapSetting)) {
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
+            Objects.requireNonNull(simpleObject, "未配置单点登录地址");
+            casAddress = simpleObject.getValue();
+            if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
+                if (casAddress.lastIndexOf("/") == casAddress.length() - 1) {
+                    casAddress = casAddress.substring(0, casAddress.lastIndexOf("/"));
+                }
+                String logoutUri = Constants.SSO_LOGOUT_URI;
+                logoutUri = logoutUri.replace(SystemConstant.SCHOOL_CODE, schoolCode);
+                returnUrl = casAddress + logoutUri;
+            }
+            simpleObject = mapSetting.get(SystemConstant.SCHOOL_SERVICE_ADDRESS);
+            schoolServiceAddress = simpleObject.getValue();
+            if (Objects.nonNull(schoolServiceAddress) && !Objects.equals(schoolServiceAddress.trim(), "")) {
+                if (schoolServiceAddress.lastIndexOf("/") == schoolServiceAddress.length() - 1) {
+                    schoolServiceAddress = schoolServiceAddress.substring(0, schoolServiceAddress.lastIndexOf("/"));
+                }
+            }
+        }
+
+        String tkt = request.getParameter("ticket");
+        log.info("tkt:{}", tkt);
+        if (Objects.isNull(tkt) || tkt.length() == 0) {
+            employeeNo = SystemConstant.getNanoId();
+            returnUrl = schoolServiceAddress + Constants.CAS_LOGIN_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + casAddress + Constants.SSO_LOGIN_URI;
+        } else {//校验ticket,获取用户信息
+            String validateurl = schoolServiceAddress + Constants.CAS_SERVICE_VALID_DATE_URL + SystemConstant.GET_UNKNOWN + "ticket=" + tkt + SystemConstant.GET_SYMBOL + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + casAddress + Constants.SSO_LOGIN_URI;
+            log.info("-------validateurl-----{}", validateurl);
+            //发送请求
+//            String data = ResponseWithHttpClient.getResponseWithHttpClient(validateurl, SystemConstant.CHARSET_NAME);
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("ticket", tkt);
+            map.put(SystemConstant.SERVICE_KEY, casAddress + Constants.SSO_LOGIN_URI);
+            String data = HttpUtil.get(schoolServiceAddress + Constants.CAS_SERVICE_VALID_DATE_URL, map, null, System.currentTimeMillis());
+            log.info("data:{}", data);
+            if (Objects.nonNull(data)) {
+                String username = null;
+                Pattern pt = Pattern.compile("<cas:user>(.*)</cas:user>");
+                Matcher match = pt.matcher(data);
+                while (match.find()) {
+                    username = match.group(1);
+                }
+                if (Objects.nonNull(username)) {
+                    employeeNo = username;
+                    openParams = new OpenParams(username);
+                }
+            }
+        }
+        return new RedirectParams(employeeNo, schoolCode, returnUrl, openParams);
+    }
+
+    /**
+     * 陕西宝鸡文理注销逻辑
+     *
+     * @param schoolCode
+     * @throws IOException
+     */
+    public void logout(String schoolCode) throws IOException {
+        HttpServletResponse response = ServletUtil.getResponse();
+        HttpSession session = ServletUtil.getSession();
+        authInfoService.appHasExpired(schoolCode);
+        //注销本系统session
+        session.invalidate();
+
+        BasicSchool basicSchool = commonCacheService.schoolCache(schoolCode);
+        Objects.requireNonNull(basicSchool, "学校信息不存在");
+
+        Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
+        if (!CollectionUtils.isEmpty(mapSetting)) {
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.SCHOOL_SERVICE_ADDRESS);
+            Objects.requireNonNull(simpleObject, "未配置学校cas地址");
+            String schoolServiceAddress = simpleObject.getValue();
+            if (Objects.nonNull(schoolServiceAddress) && !Objects.equals(schoolServiceAddress.trim(), "")) {
+                if (schoolServiceAddress.lastIndexOf("/") == schoolServiceAddress.length() - 1) {
+                    schoolServiceAddress = schoolServiceAddress.substring(0, schoolServiceAddress.lastIndexOf("/"));
+                }
+            }
+            simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
+            Objects.requireNonNull(simpleObject, "未配置单点登录地址");
+            String casAddress = simpleObject.getValue();
+            if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
+                if (casAddress.lastIndexOf("/") == casAddress.length() - 1) {
+                    casAddress = casAddress.substring(0, casAddress.lastIndexOf("/"));
+                }
+            }
+            log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(schoolServiceAddress, casAddress));
+            //跳转至注销后地址
+            response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
+            response.sendRedirect(CasUtils.getLogoutUrl(schoolServiceAddress, casAddress));
+        }
+    }
+
+    /**
+     * 知学登录
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams zxzkLogin(String schoolCode) throws IOException {
+        String logoutUrl = null;
+        HttpSession session = ServletUtil.getSession();
+        String userName = "";
+        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
+        RedirectParams redirectParams = null;
+        if (object != null) {
+            userName = object.toString();
+            redirectParams = new RedirectParams(userName, schoolCode, logoutUrl, null);
+        }
+        return redirectParams;
+    }
+}

+ 4 - 5
cas/src/main/java/com/qmth/teachcloud/cas/util/GdpuCasUtil.java

@@ -87,7 +87,7 @@ public class GdpuCasUtil {
         String employeeNo = null, returnUrl = null;
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
         if (!CollectionUtils.isEmpty(mapSetting)) {
-            SimpleObject simpleObject = mapSetting.get(Constants.CAS_ADDRESS);
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
             Objects.requireNonNull(simpleObject, "未配置单点登录地址");
             String casAddress = simpleObject.getValue();
             if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
@@ -110,8 +110,7 @@ public class GdpuCasUtil {
             log.info("realname:{}", realname);
             log.info("schoolCode:{}", schoolCode);
             log.info("returnUrl:{}", returnUrl);
-            openParams = new OpenParams();
-            openParams.setName(realname);
+            openParams = new OpenParams(realname);
         }
         return new RedirectParams(employeeNo, schoolCode, returnUrl, openParams);
     }
@@ -133,8 +132,8 @@ public class GdpuCasUtil {
         Objects.requireNonNull(basicSchool, "学校信息不存在");
 
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
-        SimpleObject simpleObject = mapSetting.get(Constants.SCHOOL_SERVICE_ADDRESS);
         if (!CollectionUtils.isEmpty(mapSetting)) {
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.SCHOOL_SERVICE_ADDRESS);
             Objects.requireNonNull(simpleObject, "未配置学校cas地址");
             String schoolServiceAddress = simpleObject.getValue();
             if (Objects.nonNull(schoolServiceAddress) && !Objects.equals(schoolServiceAddress.trim(), "")) {
@@ -144,7 +143,7 @@ public class GdpuCasUtil {
             }
             log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(schoolServiceAddress));
             //跳转至注销后地址
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
             response.sendRedirect(CasUtils.getLogoutUrl(schoolServiceAddress));
         }
     }

+ 4 - 5
cas/src/main/java/com/qmth/teachcloud/cas/util/SxmuCasUtil.java

@@ -62,7 +62,7 @@ public class SxmuCasUtil {
         String employeeNo = null, returnUrl = null;
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
         if (!CollectionUtils.isEmpty(mapSetting)) {
-            SimpleObject simpleObject = mapSetting.get(Constants.CAS_ADDRESS);
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
             Objects.requireNonNull(simpleObject, "未配置单点登录地址");
             String casAddress = simpleObject.getValue();
             if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
@@ -86,8 +86,7 @@ public class SxmuCasUtil {
             // 获取姓名,可以根据属性名称获取其他属性
             cn = (String) map.get("cn");
             employeeNo = uid;
-            openParams = new OpenParams();
-            openParams.setName(cn);
+            openParams = new OpenParams(cn);
         }
         return new RedirectParams(employeeNo, schoolCode, returnUrl, openParams);
     }
@@ -109,8 +108,8 @@ public class SxmuCasUtil {
         Objects.requireNonNull(basicSchool, "学校信息不存在");
 
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
-        SimpleObject simpleObject = mapSetting.get(Constants.SCHOOL_SERVICE_ADDRESS);
         if (!CollectionUtils.isEmpty(mapSetting)) {
+            SimpleObject simpleObject = mapSetting.get(SystemConstant.SCHOOL_SERVICE_ADDRESS);
             Objects.requireNonNull(simpleObject, "未配置学校cas地址");
             String schoolServiceAddress = simpleObject.getValue();
             if (Objects.nonNull(schoolServiceAddress) && !Objects.equals(schoolServiceAddress.trim(), "")) {
@@ -120,7 +119,7 @@ public class SxmuCasUtil {
             }
             log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(schoolServiceAddress));
             //跳转至注销后地址
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
             response.sendRedirect(CasUtils.getLogoutUrl(schoolServiceAddress));
         }
     }

+ 4 - 4
cas/src/main/java/com/qmth/teachcloud/cas/util/SxufeCasUtil.java

@@ -49,13 +49,13 @@ public class SxufeCasUtil {
             String targetUrl = CasUtils.getTargetUrl();
             log.info("cas:authentication:targetUrl:{}", targetUrl);
             // 跳转到知学知考
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
             response.sendRedirect(targetUrl);
         } else {
             // 返回登录页
-            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, Constants.UTF_8_STR);
+            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, SystemConstant.CHARSET_NAME);
             log.info("cas:authentication:loginUrl:{}", loginUrl);
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
             response.sendRedirect(loginUrl);
         }
     }
@@ -74,7 +74,7 @@ public class SxufeCasUtil {
         session.invalidate();
         log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl());
         //跳转至注销后地址
-        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+        response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
         response.sendRedirect(CasUtils.getLogoutUrl());
     }
 

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

@@ -81,16 +81,16 @@ public class XjtuCasUtil {
 
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
         String teachcloudLoginUrl = null;
-        log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
         if (!CollectionUtils.isEmpty(mapSetting)) {
+            log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
             SimpleObject simpleObject = mapSetting.get(SystemConstant.TEACH_CLOUD_PRINT);
-            log.info("simpleObject1 value:{}", JSONObject.toJSONString(simpleObject));
             Objects.requireNonNull(simpleObject, "未配置知学知考地址");
+            log.info("simpleObject1 value:{}", JSONObject.toJSONString(simpleObject));
             String teachCloudPrint = simpleObject.getValue();
             if (Objects.nonNull(teachCloudPrint) && !Objects.equals(teachCloudPrint.trim(), "")) {
                 teachcloudLoginUrl = teachCloudPrint.replace("/login", SystemConstant.CAS_VUE_LOGIN_PATH);
             }
-            simpleObject = mapSetting.get(Constants.CAS_ADDRESS);
+            simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
             Objects.requireNonNull(simpleObject, "未配置单点登录地址");
             String casAddress = simpleObject.getValue();
             if (Objects.nonNull(casAddress) && !Objects.equals(casAddress.trim(), "")) {
@@ -224,9 +224,9 @@ public class XjtuCasUtil {
             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);
+                    log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
+                    SimpleObject simpleObject = mapSetting.get(SystemConstant.CAS_ADDRESS);
                     Objects.requireNonNull(simpleObject, "未配置单点登录地址");
                     String casAddress = simpleObject.getValue();
                     String loginUri = null;
@@ -242,7 +242,7 @@ public class XjtuCasUtil {
                             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.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
                 response.sendRedirect(returnUrl);
             }
         }

+ 21 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/bjwlxy/CasUtils.java

@@ -0,0 +1,21 @@
+package com.qmth.teachcloud.cas.util.bjwlxy;
+
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
+
+public class CasUtils {
+
+    /**
+     * 获取登出地址
+     */
+    public static String getLogoutUrl(String schoolServiceAddress, String casAddress) throws UnsupportedEncodingException {
+        // 获取本次请求的根Path
+//        String loginUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
+        String loginUrlRoot = casAddress + Constants.SSO_LOGIN_URI;
+        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, StandardCharsets.UTF_8.toString());
+        return schoolServiceAddress + Constants.CAS_LOGOUT_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeLoginUrlRoot;
+    }
+}

+ 19 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/bjwlxy/Constants.java

@@ -0,0 +1,19 @@
+package com.qmth.teachcloud.cas.util.bjwlxy;
+
+public interface Constants {
+
+    // CAS根地址
+    String CAS_BASE_PATH = "https://cas.bjwlxy.cn";
+
+    // CAS登录地址
+    String CAS_LOGIN_URL = "/lyuapServer/login";
+
+    // CAS注销地址
+    String CAS_LOGOUT_URL = "/lyuapServer/logout";
+
+    String CAS_SERVICE_VALID_DATE_URL = "/lyuapServer/serviceValidate";
+
+    String SSO_LOGIN_URI = "/api/open/bjwlxy/authentication";
+
+    String SSO_LOGOUT_URI = "/api/open/bjwlxy/authentication/logout";
+}

+ 3 - 72
cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/CasUtils.java

@@ -1,90 +1,21 @@
 package com.qmth.teachcloud.cas.util.gdpu;
 
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 
-import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 
 public class CasUtils {
 
-    public static String getBasePath() {
-        HttpServletRequest request = ServletUtil.getRequest();
-        String scheme = request.getScheme();
-        String serverName = request.getServerName();
-        int serverPort = request.getServerPort();
-        String contextPath = request.getContextPath();
-
-        // 判断是否配置了显式端口
-        boolean explicit_port = Constants.CLIENT_SYSTEM_EXPLICIT_PORT != null
-                && !"".equals(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-
-        if (explicit_port) {
-            try {
-                serverPort = Integer.parseInt(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-            } catch (Exception e) {
-                // 异常时赋值,方便双方排查问题
-                serverPort = 19000;
-            }
-            String url = scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
-            return url;
-        } else {
-            if ((serverPort == 80) || (serverPort == 443)) {
-
-                String url = scheme + "://" + serverName + contextPath;
-                return url;
-            } else {
-                String url = scheme + "://" + serverName + ":" + serverPort + contextPath;
-                return url;
-            }
-        }
-    }
-
-//    /**
-//     * 获取TargetUrl
-//     */
-//    public static String getTargetUrl(HttpServletRequest request) {
-//        String basePath = getBasePath(request);
-//
-//        // 使用默认页面作为targetUrl
-//        return basePath + Constants.DEF_TARGET_URI;
-//    }
-
-//    public static String getURLEncodeServiceUrl(HttpServletRequest request)
-//            throws UnsupportedEncodingException {
-//
-//        // 编码成系统可识别的加密串
-//        String targetUrl = getTargetUrl(request);
-//        String base64TargetUrl = Base64Utils.encodeBase64Str(targetUrl);
-//
-//        String serviceUrlRoot = getBasePath(request)
-//                + Constants.SSO_LOGIN_URI;
-//
-//        String serviceUrl = serviceUrlRoot + "?" + Constants.TARGET_URL_KEY
-//                + "=" + Constants.BASE64_PREFIX + base64TargetUrl;
-//        return URLEncoder.encode(serviceUrl, Constants.UTF_8_STR);
-//    }
-
-    /**
-     * 获取Cas登录Url 登录成功后返回票据
-     */
-//    public static String getLoginUrl(HttpServletRequest request)
-//            throws UnsupportedEncodingException {
-//        String encodeServiceUrl = getURLEncodeServiceUrl(request);
-//
-//        return Constants.CAS_LOGIN_URL + "?" + Constants.SERVICE_KEY + "="
-//                + encodeServiceUrl;
-//    }
-
     /**
      * 获取登出地址
      */
     public static String getLogoutUrl(String schoolServiceAddress)
             throws UnsupportedEncodingException {
         // 获取本次请求的根Path
-        String loginUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
+        String loginUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
         String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, StandardCharsets.UTF_8.toString());
-        return schoolServiceAddress + Constants.CAS_LOGOUT_URL + "?" + Constants.SERVICE_KEY + "=" + encodeLoginUrlRoot;
+        return schoolServiceAddress + Constants.CAS_LOGOUT_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeLoginUrlRoot;
     }
 }

+ 0 - 10
cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/Constants.java

@@ -5,12 +5,6 @@ public interface Constants {
     // CAS根地址
     String CAS_BASE_PATH = "https://cas.gdpu.edu.cn";
 
-    // 业务系统需要显式使用的端口配置,包括80端口,如果不需要配置显式端口,则配置空字符串""即可
-    String CLIENT_SYSTEM_EXPLICIT_PORT = "";
-
-    // CAS Server验证成功后需跳转客户端Url的Key
-    String SERVICE_KEY = "service";
-
     // CAS登录地址
     String CAS_LOGIN_URL = CAS_BASE_PATH + "/lyuapServer/login";
 
@@ -22,9 +16,5 @@ public interface Constants {
 
     String SSO_LOGOUT_URI = "/api/open/gdpu/authentication/logout";
 
-    String CAS_ADDRESS = "casAddress";
-
-    String SCHOOL_SERVICE_ADDRESS = "schoolServiceAddress";
-
     String GDPU_SERVICE_ADDRESS = "gdpuServiceAddress";
 }

+ 11 - 41
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/CasUtils.java

@@ -4,6 +4,7 @@ import com.qmth.teachcloud.cas.util.supwisdom.utils.Base64Utils;
 import com.qmth.teachcloud.cas.util.supwisdom.utils.BooleanUtils;
 import com.qmth.teachcloud.cas.util.supwisdom.utils.HttpRequestUtils;
 import com.qmth.teachcloud.cas.util.supwisdom.utils.StringUtils;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import com.qmth.teachcloud.exchange.common.util.ServletUtil;
 
 import javax.servlet.http.HttpServletRequest;
@@ -21,43 +22,12 @@ public class CasUtils {
         return BooleanUtils.toBoolean(String.valueOf(isLogin));
     }
 
-    public static String getBasePath() {
-        HttpServletRequest request = ServletUtil.getRequest();
-        String scheme = request.getScheme();
-        String serverName = request.getServerName();
-        int serverPort = request.getServerPort();
-        String contextPath = request.getContextPath();
-
-        // 判断是否配置了显式端口
-        boolean explicit_port = Constants.CLIENT_SYSTEM_EXPLICIT_PORT != null
-                && !"".equals(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-        if (explicit_port) {
-            try {
-                serverPort = Integer
-                        .parseInt(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-            } catch (Exception e) {
-                // 异常时赋值,方便双方排查问题
-                serverPort = 19000;
-            }
-            String url = scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
-            return url;
-        } else {
-            if ((serverPort == 80) || (serverPort == 443)) {
-                String url = scheme + "://" + serverName + contextPath + "/";
-                return url;
-            } else {
-                String url = scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
-                return url;
-            }
-        }
-    }
-
     /**
      * 获取TargetUrl
      */
     public static String getTargetUrl() {
         HttpServletRequest request = ServletUtil.getRequest();
-        String basePath = getBasePath();
+        String basePath = SystemConstant.getBasePath();
 
         // 获取请求中的targetUrl
         String targetUrl = request.getParameter(Constants.TARGET_URL_KEY);
@@ -91,9 +61,9 @@ public class CasUtils {
         // 编码成系统可识别的加密串
         String targetUrl = getTargetUrl();
         String base64TargetUrl = Base64Utils.encodeBase64Str(targetUrl);
-        String serviceUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
-        String serviceUrl = serviceUrlRoot + "?" + Constants.TARGET_URL_KEY + "=" + Constants.BASE64_PREFIX + base64TargetUrl;
-        return URLEncoder.encode(serviceUrl, Constants.UTF_8_STR);
+        String serviceUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
+        String serviceUrl = serviceUrlRoot + SystemConstant.GET_UNKNOWN + Constants.TARGET_URL_KEY + SystemConstant.GET_EQUAL + Constants.BASE64_PREFIX + base64TargetUrl;
+        return URLEncoder.encode(serviceUrl, SystemConstant.CHARSET_NAME);
     }
 
     /**
@@ -101,7 +71,7 @@ public class CasUtils {
      */
     public static String getLoginUrl() throws UnsupportedEncodingException {
         String encodeServiceUrl = getURLEncodeServiceUrl();
-        return Constants.CAS_LOGIN_URL + "?" + Constants.SERVICE_KEY + "=" + encodeServiceUrl;
+        return Constants.CAS_LOGIN_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeServiceUrl;
     }
 
     /**
@@ -111,8 +81,8 @@ public class CasUtils {
         HttpServletRequest request = ServletUtil.getRequest();
         String encodeServiceUrl = getURLEncodeServiceUrl();
         Object ticket = request.getParameter(Constants.TICKET_KEY);
-        return Constants.CAS_VALIDATE_URL + "?" + Constants.TICKET_KEY
-                + "=" + ticket + "&" + Constants.SERVICE_KEY + "="
+        return Constants.CAS_VALIDATE_URL + SystemConstant.GET_UNKNOWN + Constants.TICKET_KEY
+                + SystemConstant.GET_EQUAL + ticket + SystemConstant.GET_SYMBOL + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL
                 + encodeServiceUrl;
     }
 
@@ -128,9 +98,9 @@ public class CasUtils {
      */
     public static String getLogoutUrl() throws UnsupportedEncodingException {
         // 获取本次请求的根Path
-        String loginUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
-        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, Constants.UTF_8_STR);
-        return Constants.CAS_LOGOUT_URL + "?" + Constants.SERVICE_KEY + "=" + encodeLoginUrlRoot;
+        String loginUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
+        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, SystemConstant.CHARSET_NAME);
+        return Constants.CAS_LOGOUT_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeLoginUrlRoot;
     }
 
     /**

+ 0 - 15
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/Constants.java

@@ -1,15 +1,10 @@
 package com.qmth.teachcloud.cas.util.supwisdom;
 
-import java.nio.charset.Charset;
-
 public interface Constants {
 
     // CAS根地址
     String CAS_BASE_PATH = "https://cas.paas.cdut.edu.cn/cas/";
 
-    // 业务系统需要显式使用的端口配置,包括80端口,如果不需要配置显式端口,则配置空字符串""即可
-    String CLIENT_SYSTEM_EXPLICIT_PORT = "";
-
     // CAS票据验证地址
     String CAS_VALIDATE_URL = CAS_BASE_PATH + "serviceValidate";
 
@@ -38,18 +33,8 @@ public interface Constants {
     // REQUEST中获取票据的KEY
     String TICKET_KEY = "ticket";
 
-    // CAS Server验证成功后需跳转客户端Url的Key
-    String SERVICE_KEY = "service";
-
     // BASE64编码的前缀
     String BASE64_PREFIX = "base64";
-
-    // 默认编码字符串格式
-    String UTF_8_STR = "UTF-8";
-
-    // 默认编码
-    Charset UTF_8 = Charset.forName(UTF_8_STR);
-
     // Ticket验证超时时间
     int CONNECT_TIMEOUT = 5000;
 }

+ 2 - 1
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/LoginUser.java

@@ -2,6 +2,7 @@ package com.qmth.teachcloud.cas.util.supwisdom;
 
 import com.qmth.teachcloud.cas.util.supwisdom.utils.IOUtils;
 import com.qmth.teachcloud.cas.util.supwisdom.utils.StringUtils;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import com.qmth.teachcloud.exchange.common.enums.ExceptionResultEnum;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
@@ -48,7 +49,7 @@ public class LoginUser {
         InputStream in = null;
         try {
             DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
-            in = IOUtils.toInputStream(loginUserXmlStr, Constants.UTF_8);
+            in = IOUtils.toInputStream(loginUserXmlStr, SystemConstant.CHARSET);
             Document rootDoc = docBuilder.parse(in);
             NodeList successNodeList = rootDoc.getElementsByTagName(LOGIN_SUCCESS_KEY);
             if (successNodeList.getLength() > 0) {

+ 2 - 1
cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/HttpRequestUtils.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
 import com.qmth.teachcloud.cas.util.supwisdom.Constants;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 
 import javax.net.ssl.*;
 import java.io.IOException;
@@ -23,7 +24,7 @@ public abstract class HttpRequestUtils {
             conn.setConnectTimeout(Constants.CONNECT_TIMEOUT);
             conn.connect();
             in = conn.getInputStream();
-            return IOUtils.toString(in, Constants.UTF_8);
+            return IOUtils.toString(in, SystemConstant.CHARSET);
         } finally {
             IOUtils.close(conn);
             IOUtils.closeQuietly(in);

+ 3 - 38
cas/src/main/java/com/qmth/teachcloud/cas/util/sxmu/CasUtils.java

@@ -1,55 +1,20 @@
 package com.qmth.teachcloud.cas.util.sxmu;
 
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 
-import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.nio.charset.StandardCharsets;
 
 public class CasUtils {
 
-    public static String getBasePath() {
-        HttpServletRequest request = ServletUtil.getRequest();
-        String scheme = request.getScheme();
-        String serverName = request.getServerName();
-        int serverPort = request.getServerPort();
-        String contextPath = request.getContextPath();
-
-        // 判断是否配置了显式端口
-        boolean explicit_port = Constants.CLIENT_SYSTEM_EXPLICIT_PORT != null
-                && !"".equals(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-
-        if (explicit_port) {
-            try {
-                serverPort = Integer.parseInt(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-            } catch (Exception e) {
-                // 异常时赋值,方便双方排查问题
-                serverPort = 19000;
-            }
-            String url = scheme + "://" + serverName + ":" + serverPort
-                    + contextPath + "/";
-            return url;
-
-        } else {
-            if ((serverPort == 80) || (serverPort == 443)) {
-                String url = scheme + "://" + serverName + contextPath;
-                return url;
-            } else {
-                String url = scheme + "://" + serverName + ":" + serverPort + contextPath;
-                return url;
-            }
-        }
-
-    }
-
     /**
      * 获取登出地址
      */
     public static String getLogoutUrl(String schoolServiceAddress) throws UnsupportedEncodingException {
         // 获取本次请求的根Path
-        String loginUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
+        String loginUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
         String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, StandardCharsets.UTF_8.toString());
-        return schoolServiceAddress + Constants.CAS_LOGOUT_URL + "?" + Constants.SERVICE_KEY + "=" + encodeLoginUrlRoot;
+        return schoolServiceAddress + Constants.CAS_LOGOUT_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeLoginUrlRoot;
     }
 }

+ 0 - 10
cas/src/main/java/com/qmth/teachcloud/cas/util/sxmu/Constants.java

@@ -5,12 +5,6 @@ public interface Constants {
     // CAS根地址
     String CAS_BASE_PATH = "https://authserver.sxmu.edu.cn";
 
-    // 业务系统需要显式使用的端口配置,包括80端口,如果不需要配置显式端口,则配置空字符串""即可
-    String CLIENT_SYSTEM_EXPLICIT_PORT = "";
-
-    // CAS Server验证成功后需跳转客户端Url的Key
-    String SERVICE_KEY = "service";
-
     // CAS登录地址
     String CAS_LOGIN_URL = CAS_BASE_PATH + "/authserver/login";
 
@@ -21,8 +15,4 @@ public interface Constants {
     String SSO_LOGIN_URI = "/api/open/sxmu/authentication";
 
     String SSO_LOGOUT_URI = "/api/open/sxmu/authentication/logout";
-
-    String CAS_ADDRESS = "casAddress";
-
-    String SCHOOL_SERVICE_ADDRESS = "schoolServiceAddress";
 }

+ 5 - 63
cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/CasUtils.java

@@ -1,86 +1,28 @@
 package com.qmth.teachcloud.cas.util.sxufe;
 
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 
-import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 
 public class CasUtils {
 
-    public static String getBasePath() {
-        HttpServletRequest request = ServletUtil.getRequest();
-        String scheme = request.getScheme();
-        String serverName = request.getServerName();
-        int serverPort = request.getServerPort();
-        String contextPath = request.getContextPath();
-
-        // 判断是否配置了显式端口
-        boolean explicit_port = Constants.CLIENT_SYSTEM_EXPLICIT_PORT != null
-                && !"".equals(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-        if (explicit_port) {
-            try {
-                serverPort = Integer
-                        .parseInt(Constants.CLIENT_SYSTEM_EXPLICIT_PORT);
-            } catch (Exception e) {
-                // 异常时赋值,方便双方排查问题
-                serverPort = 19000;
-            }
-            String url = scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
-            return url;
-        } else {
-            if ((serverPort == 80) || (serverPort == 443)) {
-                String url = scheme + "://" + serverName + contextPath;
-                return url;
-            } else {
-                String url = scheme + "://" + serverName + ":" + serverPort + contextPath;
-                return url;
-            }
-        }
-    }
-
     /**
      * 获取TargetUrl
      */
     public static String getTargetUrl() {
-        String basePath = getBasePath();
+        String basePath = SystemConstant.getBasePath();
         // 使用默认页面作为targetUrl
         return basePath + Constants.DEF_TARGET_URI;
     }
 
-//    public static String getURLEncodeServiceUrl(HttpServletRequest request)
-//            throws UnsupportedEncodingException {
-//
-//        // 编码成系统可识别的加密串
-//        String targetUrl = getTargetUrl(request);
-//        String base64TargetUrl = Base64Utils.encodeBase64Str(targetUrl);
-//
-//        String serviceUrlRoot = getBasePath(request)
-//                + Constants.SSO_LOGIN_URI;
-//
-//        String serviceUrl = serviceUrlRoot + "?" + Constants.TARGET_URL_KEY
-//                + "=" + Constants.BASE64_PREFIX + base64TargetUrl;
-//        return URLEncoder.encode(serviceUrl, Constants.UTF_8_STR);
-//    }
-
-    /**
-     * 获取Cas登录Url 登录成功后返回票据
-     */
-//    public static String getLoginUrl(HttpServletRequest request)
-//            throws UnsupportedEncodingException {
-//        String encodeServiceUrl = getURLEncodeServiceUrl(request);
-//
-//        return Constants.CAS_LOGIN_URL + "?" + Constants.SERVICE_KEY + "="
-//                + encodeServiceUrl;
-//    }
-
     /**
      * 获取登出地址
      */
     public static String getLogoutUrl() throws UnsupportedEncodingException {
         // 获取本次请求的根Path
-        String loginUrlRoot = getBasePath() + Constants.SSO_LOGIN_URI;
-        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, Constants.UTF_8_STR);
-        return Constants.CAS_LOGOUT_URL + "?" + Constants.SERVICE_KEY + "=" + encodeLoginUrlRoot;
+        String loginUrlRoot = SystemConstant.getBasePath() + Constants.SSO_LOGIN_URI;
+        String encodeLoginUrlRoot = URLEncoder.encode(loginUrlRoot, SystemConstant.CHARSET_NAME);
+        return Constants.CAS_LOGOUT_URL + SystemConstant.GET_UNKNOWN + SystemConstant.SERVICE_KEY + SystemConstant.GET_EQUAL + encodeLoginUrlRoot;
     }
 }

+ 0 - 14
cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/Constants.java

@@ -1,18 +1,10 @@
 package com.qmth.teachcloud.cas.util.sxufe;
 
-import java.nio.charset.Charset;
-
 public interface Constants {
 
     // CAS根地址
     String CAS_BASE_PATH = "https://sso.sxufe.edu.cn";
 
-    // 业务系统需要显式使用的端口配置,包括80端口,如果不需要配置显式端口,则配置空字符串""即可
-    String CLIENT_SYSTEM_EXPLICIT_PORT = "";
-
-    // CAS Server验证成功后需跳转客户端Url的Key
-    String SERVICE_KEY = "service";
-
     // CAS票据验证地址
     String CAS_VALIDATE_URL = CAS_BASE_PATH + "/sso-server/serviceValidate";
 
@@ -27,10 +19,4 @@ public interface Constants {
 
     // 业务系统认证集成改造之后的登录URI
     String SSO_LOGIN_URI = "/api/open/authentication";
-
-    // 默认编码字符串格式
-    String UTF_8_STR = "UTF-8";
-
-    // 默认编码
-//    Charset UTF_8 = Charset.forName(UTF_8_STR);
 }

+ 0 - 4
cas/src/main/java/com/qmth/teachcloud/cas/util/xjtu/Constants.java

@@ -23,11 +23,7 @@ public interface Constants {
 
     String SSO_LOGOUT_URI = "/api/open/xjtu/authentication/logout";
 
-    String CAS_ADDRESS = "casAddress";
-
     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";
 }

+ 1 - 1
cas/src/main/resources/application.properties

@@ -52,7 +52,7 @@ com.qmth.logging.file-path=/Users/king/Downloads/cas-exchange.log
 #com.qmth.solar.access-key=df8baa73072c4725a07fe4d119cceb24
 #com.qmth.solar.access-secret=r18hy2X8zkj8OPkRoemq1owt4qS87Gal
 #com.qmth.solar.license=/Users/king/extend/\u542F\u660E/\u77E5\u5B66\u77E5\u8003/\u5C71\u897F\u533B\u79D1\u5927\u5B66/\u5C71\u897F\u533B\u79D1\u5927\u5B66\u77E5\u5B66\u77E5\u8003\u6388\u6743.lic
-com.qmth.solar.license=/Users/king/extend/\u542F\u660E/\u77E5\u5B66\u77E5\u8003/\u897F\u4EA4\u5927\u6FC0\u6D3B\u6587\u4EF6/app.lic
+com.qmth.solar.license=/Users/king/extend/\u542F\u660E/\u77E5\u5B66\u77E5\u8003/cas/\u5B9D\u9E21\u6587\u7406\u5B66\u9662/\u5B9D\u9E21\u6587\u7406\u5B66\u9662.lic
 
 cas.filter.gdpuServerName=exam.gdpu.edu.cn:7400
 cas.filter.sxufeServerName=210.31.120.103:7400

+ 1 - 1
eds/src/main/java/com/qmth/teachcloud/eds/service/impl/GdpuServiceImpl.java

@@ -125,7 +125,7 @@ public class GdpuServiceImpl implements GdpuService {
         List<JgVo> rows = CollUtil.newArrayList(bean1, bean2);
         writer.write(rows, true);
 
-//        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
+//        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=" + SystemConstant.CHARSET_NAME);
 //        response.setHeader("Content-Disposition", "attachment;filename=" + type + ".xlsx");
 //
 //        try {

+ 3 - 2
eds/src/main/java/com/qmth/teachcloud/eds/utils/HttpKit.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.eds.utils;
 
 
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -61,10 +62,10 @@ public class HttpKit {
                 StringBuilder param = new StringBuilder();
                 for (Map.Entry<String, String> entry : params.entrySet()) {
                     if (param.length() > 0) {
-                        param.append("&");
+                        param.append(SystemConstant.GET_SYMBOL);
                     }
                     param.append(entry.getKey());
-                    param.append("=");
+                    param.append(SystemConstant.GET_EQUAL);
                     param.append(entry.getValue());
                 }
                 out.write(param.toString());

+ 9 - 11
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/params/OpenParams.java

@@ -1,5 +1,6 @@
 package com.qmth.teachcloud.exchange.common.bean.params;
 
+import com.qmth.teachcloud.exchange.common.enums.FunctionalTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.io.Serializable;
@@ -27,21 +28,18 @@ public class OpenParams implements Serializable {
 
     @ApiModelProperty("结果")
     private String result;
-    @ApiModelProperty("功能类型")
-    private String functionalType;
 
-    public OpenParams(String name, String roleName, String orgName, String deptName, String result) {
-        this.name = name;
-        this.roleName = roleName;
-        this.orgName = orgName;
-        this.deptName = deptName;
-        this.result = result;
-    }
+    @ApiModelProperty("功能类型")
+    private FunctionalTypeEnum functionalType = FunctionalTypeEnum.HOME;
 
     public OpenParams() {
 
     }
 
+    public OpenParams(String name) {
+        this.name = name;
+    }
+
     public String getDeptName() {
         return deptName;
     }
@@ -82,11 +80,11 @@ public class OpenParams implements Serializable {
         this.orgName = orgName;
     }
 
-    public String getFunctionalType() {
+    public FunctionalTypeEnum getFunctionalType() {
         return functionalType;
     }
 
-    public void setFunctionalType(String functionalType) {
+    public void setFunctionalType(FunctionalTypeEnum functionalType) {
         this.functionalType = functionalType;
     }
 }

+ 48 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/contant/SystemConstant.java

@@ -1,7 +1,10 @@
 package com.qmth.teachcloud.exchange.common.contant;
 
+import com.aventrix.jnanoid.jnanoid.NanoIdUtils;
 import com.qmth.boot.core.uid.service.UidService;
+import com.qmth.teachcloud.exchange.common.util.ServletUtil;
 
+import javax.servlet.http.HttpServletRequest;
 import java.nio.charset.Charset;
 
 /**
@@ -39,6 +42,10 @@ public class SystemConstant {
     /**
      * 系统常量
      */
+    public static final String CLIENT_SYSTEM_EXPLICIT_PORT = "";
+    public static final String SERVICE_KEY = "service";
+    public static final String CAS_ADDRESS = "casAddress";
+    public static final String SCHOOL_SERVICE_ADDRESS = "schoolServiceAddress";
     public static final String CHARSET_NAME = "UTF-8";
     public static final Charset CHARSET = Charset.forName(CHARSET_NAME);
     public static final String SUCCESS = "success";
@@ -64,6 +71,7 @@ public class SystemConstant {
     public static final String TEACH_CLOUD_PRINT = "teachcloudPrint";
     public static final String CAS_VUE_LOGIN_PATH = "/login-open";
     public static final String SCHOOL_CODE = "${schoolCode}";
+    public static final String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin";
 
     /**
      * 缓存配置
@@ -98,4 +106,44 @@ public class SystemConstant {
         UidService uidservice = SpringContextHolder.getBean(UidService.class);
         return uidservice.getId();
     }
+
+    /**
+     * 获得基础路径
+     *
+     * @return
+     */
+    public static String getBasePath() {
+        HttpServletRequest request = ServletUtil.getRequest();
+        String scheme = request.getScheme();
+        String serverName = request.getServerName();
+        int serverPort = request.getServerPort();
+        String contextPath = request.getContextPath();
+
+        // 判断是否配置了显式端口
+        boolean explicit_port = CLIENT_SYSTEM_EXPLICIT_PORT != null && !"".equals(CLIENT_SYSTEM_EXPLICIT_PORT);
+        if (explicit_port) {
+            try {
+                serverPort = Integer.parseInt(CLIENT_SYSTEM_EXPLICIT_PORT);
+            } catch (Exception e) {
+                // 异常时赋值,方便双方排查问题
+                serverPort = 19000;
+            }
+            return scheme + "://" + serverName + ":" + serverPort + contextPath + "/";
+        } else {
+            if ((serverPort == 80) || (serverPort == 443)) {
+                return scheme + "://" + serverName + contextPath;
+            } else {
+                return scheme + "://" + serverName + ":" + serverPort + contextPath;
+            }
+        }
+    }
+
+    /**
+     * 获取nanoId
+     *
+     * @return
+     */
+    public static String getNanoId() {
+        return NanoIdUtils.randomNanoId();
+    }
 }

+ 2 - 16
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/FunctionalTypeEnum.java

@@ -9,6 +9,7 @@ public enum FunctionalTypeEnum {
     HOME("首页"),
 
     APPLY_MANAGE("入库申请"),
+
     PAPER_MANAGE("卷库查询");
 
     FunctionalTypeEnum(String title) {
@@ -20,19 +21,4 @@ public enum FunctionalTypeEnum {
     public String getTitle() {
         return title;
     }
-
-    /**
-     * 状态转换 toName
-     *
-     * @param value
-     * @return
-     */
-    public static String convertToName(String value) {
-        for (FunctionalTypeEnum e : FunctionalTypeEnum.values()) {
-            if (Objects.equals(value.trim(), e.getTitle())) {
-                return e.name();
-            }
-        }
-        return null;
-    }
-}
+}

+ 3 - 1
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/SchoolCodeEnum.java

@@ -17,7 +17,9 @@ public enum SchoolCodeEnum {
 
     SXUFE("山西财经大学", "sxufe"),
 
-    SXMU("山西医科大学", "sxmu");
+    SXMU("山西医科大学", "sxmu"),
+
+    BJWLXY("陕西宝鸡文理学院", "bjwlxy");
 
     private final String title;
     private final String code;

+ 27 - 24
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/service/impl/CommonServiceImpl.java

@@ -13,7 +13,6 @@ import com.qmth.teachcloud.exchange.common.service.CommonService;
 import com.qmth.teachcloud.exchange.common.util.Base64Util;
 import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
 import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
@@ -60,11 +59,11 @@ public class CommonServiceImpl implements CommonService {
         Optional.ofNullable(basicSchool).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学校信息不存在"));
         Map<String, SimpleObject> mapSetting = commonCacheService.getSysSetting(basicSchool.getId());
         String teachcloudLoginUrl = null;
-        log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
         if (!CollectionUtils.isEmpty(mapSetting)) {
+            log.info("mapSetting1 value:{}", JSONObject.toJSONString(mapSetting));
             SimpleObject simpleObject = mapSetting.get(SystemConstant.TEACH_CLOUD_PRINT);
-            log.info("simpleObject1 value:{}", JSONObject.toJSONString(simpleObject));
             Objects.requireNonNull(simpleObject, "未配置知学知考地址");
+            log.info("simpleObject1 value:{}", JSONObject.toJSONString(simpleObject));
             String teachCloudPrint = simpleObject.getValue();
             if (Objects.nonNull(teachCloudPrint) && !Objects.equals(teachCloudPrint.trim(), "")) {
                 teachcloudLoginUrl = teachCloudPrint.replace("/login", SystemConstant.CAS_VUE_LOGIN_PATH);
@@ -80,31 +79,35 @@ public class CommonServiceImpl implements CommonService {
             throw ExceptionResultEnum.PARAMS_ERROR.exception("学校code不存在");
         }
 
-        long timestamp = System.currentTimeMillis();
+        HttpServletResponse response = ServletUtil.getResponse();
+        response.setHeader(SystemConstant.ACCESS_CONTROL_ALLOW_ORIGIN, SystemConstant.PATH_MATCH);
+
+        if (Objects.nonNull(params)) {
+            long timestamp = System.currentTimeMillis();
 //        String path = teachcloudLoginUrl.substring(teachcloudLoginUrl.indexOf(SystemConstant.PATH_SUBSTR), teachcloudLoginUrl.length());
-        String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.GET, SystemConstant.CAS_VUE_LOGIN_PATH, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
+            String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.GET, SystemConstant.CAS_VUE_LOGIN_PATH, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
 
-        StringJoiner stringJoiner = new StringJoiner("")
-                .add(teachcloudLoginUrl)
-                .add(SystemConstant.GET_UNKNOWN).add(SystemConstant.HEADER_TIME).add(SystemConstant.GET_EQUAL).add(String.valueOf(timestamp))
-                .add(SystemConstant.GET_SYMBOL).add(SystemConstant.SIGNATURE).add(SystemConstant.GET_EQUAL).add(Base64Util.encode(signature.getBytes(StandardCharsets.UTF_8)))
-                .add(SystemConstant.GET_SYMBOL).add(SystemConstant.USER).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(account, SystemConstant.CHARSET_NAME))
-                .add(SystemConstant.GET_SYMBOL).add(SystemConstant.FUNCTIONAL_TYPE).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(functionalType, SystemConstant.CHARSET_NAME));
+            StringJoiner stringJoiner = new StringJoiner("")
+                    .add(teachcloudLoginUrl)
+                    .add(SystemConstant.GET_UNKNOWN).add(SystemConstant.HEADER_TIME).add(SystemConstant.GET_EQUAL).add(String.valueOf(timestamp))
+                    .add(SystemConstant.GET_SYMBOL).add(SystemConstant.SIGNATURE).add(SystemConstant.GET_EQUAL).add(Base64Util.encode(signature.getBytes(StandardCharsets.UTF_8)))
+                    .add(SystemConstant.GET_SYMBOL).add(SystemConstant.USER).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(account, SystemConstant.CHARSET_NAME))
+                    .add(SystemConstant.GET_SYMBOL).add(SystemConstant.FUNCTIONAL_TYPE).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(functionalType, SystemConstant.CHARSET_NAME));
 
-        if (Objects.nonNull(returnUrl) && !Objects.equals(returnUrl, "")) {
-            stringJoiner = stringJoiner.add(SystemConstant.GET_SYMBOL).add(SystemConstant.RETURN_URL).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(returnUrl, SystemConstant.CHARSET_NAME));
-        }
-        if (Objects.nonNull(params) && !Objects.equals(params, "")) {
-            String decodeJson = URLDecoder.decode(params, SystemConstant.CHARSET_NAME);
-            OpenParams openParams = JacksonUtil.readJson(decodeJson, OpenParams.class);
-            stringJoiner = stringJoiner.add(SystemConstant.GET_SYMBOL).add(SystemConstant.PARAMS).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(JacksonUtil.parseJson(openParams), SystemConstant.CHARSET_NAME));
-        }
+            if (Objects.nonNull(returnUrl) && !Objects.equals(returnUrl, "")) {
+                stringJoiner = stringJoiner.add(SystemConstant.GET_SYMBOL).add(SystemConstant.RETURN_URL).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(returnUrl, SystemConstant.CHARSET_NAME));
+            }
+            if (Objects.nonNull(params) && !Objects.equals(params, "")) {
+                String decodeJson = URLDecoder.decode(params, SystemConstant.CHARSET_NAME);
+                OpenParams openParams = JacksonUtil.readJson(decodeJson, OpenParams.class);
+                stringJoiner = stringJoiner.add(SystemConstant.GET_SYMBOL).add(SystemConstant.PARAMS).add(SystemConstant.GET_EQUAL).add(URLEncoder.encode(JacksonUtil.parseJson(openParams), SystemConstant.CHARSET_NAME));
+            }
 //        String redirectUrl = URLEncoder.encode(stringJoiner.toString(), SystemConstant.CHARSET);
 //        log.info("path:{},timestamp:{},account:{},signature:{},redirectUrl:{},redirectUrl_urlencode:{}", path, timestamp, account, signature, stringJoiner.toString(), redirectUrl);
-        log.info("path:{},timestamp:{},account:{},functionalType:{},signature:{}, redirectUrl:{}", SystemConstant.CAS_VUE_LOGIN_PATH, timestamp, account,functionalType, signature, stringJoiner.toString());
-
-        HttpServletResponse response = ServletUtil.getResponse();
-        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-        response.sendRedirect(stringJoiner.toString());
+            log.info("path:{},timestamp:{},account:{},functionalType:{},signature:{}, redirectUrl:{}", SystemConstant.CAS_VUE_LOGIN_PATH, timestamp, account, functionalType, signature, stringJoiner.toString());
+            response.sendRedirect(stringJoiner.toString());
+        } else {
+            response.sendRedirect(returnUrl);
+        }
     }
 }

+ 4 - 4
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/util/HttpUtil.java

@@ -58,7 +58,7 @@ public class HttpUtil {
         post.setConfig(requestConfig);
         post.setHeader(SystemConstant.HEADER_AUTHORIZATION, secret);
         post.setHeader(SystemConstant.HEADER_TIME, String.valueOf(timestamp));
-        post.setHeader(HTTP.CONTENT_TYPE, "application/json; charset=utf-8");
+        post.setHeader(HTTP.CONTENT_TYPE, "application/json; charset=" + SystemConstant.CHARSET_NAME);
         post.setHeader("Accept", "application/json");
 
         String encoderJson = URLEncoder.encode(json, SystemConstant.CHARSET_NAME);
@@ -84,7 +84,7 @@ public class HttpUtil {
         HttpPost post = new HttpPost(url);
         post.setHeader(SystemConstant.HEADER_AUTHORIZATION, secret);
         post.setHeader(SystemConstant.HEADER_TIME, String.valueOf(timestamp));
-        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=utf-8");
+        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=" + SystemConstant.CHARSET_NAME);
         // 构建请求参数
         List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
         if (params != null) {
@@ -114,7 +114,7 @@ public class HttpUtil {
     public static String post(String url, Map<String, Object> params, String accessToken) throws IOException {
         // 构建post请求
         HttpPost post = new HttpPost(url);
-        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=utf-8");
+        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=" + SystemConstant.CHARSET_NAME);
         post.setHeader("X-Access-Token", accessToken);
         // 构建请求参数
         List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
@@ -271,7 +271,7 @@ public class HttpUtil {
         HttpPost post = new HttpPost(url);
         post.setHeader(SystemConstant.GDPU_HEADER_APP_ID, appid);
         post.setHeader(SystemConstant.GDPU_HEADER_APP_SECRET, secret);
-        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=utf-8");
+        post.setHeader(HTTP.CONTENT_TYPE, "application/x-www-form-urlencoded;charset=" + SystemConstant.CHARSET_NAME);
         // 构建请求参数
         List<BasicNameValuePair> pairs = new ArrayList<BasicNameValuePair>();
         if (params != null) {