Browse Source

cas合并

wangliang 2 years ago
parent
commit
581c1db09f
60 changed files with 796 additions and 1406 deletions
  1. 0 0
      cas/.gitignore
  2. 8 8
      cas/pom.xml
  3. 4 4
      cas/src/main/java/com/qmth/teachcloud/cas/CasApplication.java
  4. 172 0
      cas/src/main/java/com/qmth/teachcloud/cas/api/OpenApiController.java
  5. 2 2
      cas/src/main/java/com/qmth/teachcloud/cas/aspect/ApiControllerAspect.java
  6. 30 4
      cas/src/main/java/com/qmth/teachcloud/cas/filter/MyWebApplicationInitializer.java
  7. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/start/StartRunning.java
  8. 122 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/CdutCasUtil.java
  9. 108 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/GdpuCasUtil.java
  10. 108 0
      cas/src/main/java/com/qmth/teachcloud/cas/util/SxufeCasUtil.java
  11. 54 61
      cas/src/main/java/com/qmth/teachcloud/cas/util/XjtuCasUtil.java
  12. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/CasUtils.java
  13. 5 5
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/CasUtils.java
  14. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/Constants.java
  15. 6 9
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/LoginUser.java
  16. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/Base64Utils.java
  17. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/BooleanUtils.java
  18. 6 4
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/HttpRequestUtils.java
  19. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/IOUtils.java
  20. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/StringUtils.java
  21. 1 1
      cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/CasUtils.java
  22. 4 3
      cas/src/main/resources/application.properties
  23. 0 0
      cas/src/main/resources/lib/cas-client-core-3.1.12.jar
  24. 0 0
      cas/src/main/resources/lib/sso-client-java-7.0.8.jar
  25. 2 2
      cas/src/test/java/com/qmth/teachcloud/cas/CasApplicationTests.java
  26. 0 70
      cdut-exchange/pom.xml
  27. 0 26
      cdut-exchange/src/main/java/com/qmth/cdut/CdutExchangeApplication.java
  28. 0 139
      cdut-exchange/src/main/java/com/qmth/cdut/api/OpenApiController.java
  29. 0 88
      cdut-exchange/src/main/java/com/qmth/cdut/aspect/ApiControllerAspect.java
  30. 0 63
      cdut-exchange/src/main/resources/application.properties
  31. 0 0
      eds/.gitignore
  32. 5 5
      eds/pom.xml
  33. 13 0
      eds/src/main/java/com/qmth/teachcloud/eds/EdsApplication.java
  34. 1 0
      eds/src/main/resources/application.properties
  35. 2 2
      eds/src/test/java/com/qmth/teachcloud/eds/EdsApplicationTests.java
  36. 0 111
      gdpu-exchange/src/main/java/com/qmth/gdpu/api/OpenApiController.java
  37. 0 88
      gdpu-exchange/src/main/java/com/qmth/gdpu/aspect/ApiControllerAspect.java
  38. 0 31
      gdpu-exchange/src/main/java/com/qmth/gdpu/start/StartRunning.java
  39. 0 53
      gdpu-exchange/src/main/resources/application.properties
  40. 7 14
      pom.xml
  41. 0 33
      sxufe-exchange/.gitignore
  42. 0 84
      sxufe-exchange/pom.xml
  43. 0 26
      sxufe-exchange/src/main/java/com/qmth/sxufe/SxufeExchangeApplication.java
  44. 0 111
      sxufe-exchange/src/main/java/com/qmth/sxufe/api/OpenApiController.java
  45. 0 44
      sxufe-exchange/src/main/java/com/qmth/sxufe/filter/MyWebApplicationInitializer.java
  46. 0 31
      sxufe-exchange/src/main/java/com/qmth/sxufe/start/StartRunning.java
  47. 0 65
      sxufe-exchange/src/main/resources/application.properties
  48. BIN
      sxufe-exchange/src/main/resources/lib/cas-client-core-3.1.12.jar
  49. BIN
      sxufe-exchange/src/main/resources/lib/sso-client-java-7.0.8.jar
  50. 0 13
      sxufe-exchange/src/test/java/com/qmth/sxufe/SxufeExchangeApplicationTests.java
  51. 2 2
      teachcloud-exchange-common/pom.xml
  52. 70 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/params/RedirectParams.java
  53. 35 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/SchoolCodeEnum.java
  54. 11 7
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/service/impl/CommonServiceImpl.java
  55. 11 0
      teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/util/ServletUtil.java
  56. 0 33
      xjtu-exchange/.gitignore
  57. 0 25
      xjtu-exchange/src/main/java/com/qmth/xjtu/XjtuExchangeApplication.java
  58. 0 88
      xjtu-exchange/src/main/java/com/qmth/xjtu/aspect/ApiControllerAspect.java
  59. 0 31
      xjtu-exchange/src/main/java/com/qmth/xjtu/start/StartRunning.java
  60. 0 13
      xjtu-exchange/src/test/java/com/qmth/xjtu/XjtuExchangeApplicationTests.java

+ 0 - 0
cdut-exchange/.gitignore → cas/.gitignore


+ 8 - 8
gdpu-exchange/pom.xml → cas/pom.xml

@@ -2,15 +2,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.qmth.gdpu.exchange</groupId>
-    <artifactId>gdpu-exchange</artifactId>
-    <version>1.0.2.1</version>
+    <groupId>com.qmth.cas.exchange</groupId>
+    <artifactId>cas-exchange</artifactId>
+    <version>2.0.0.1</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.teachcloud.exchange.service</groupId>
         <artifactId>teachcloud-exchange-service</artifactId>
-        <version>1.0.2.1</version>
+        <version>2.0.0.1</version>
     </parent>
 
     <dependencies>
@@ -30,14 +30,14 @@
             <scope>compile</scope>
         </dependency>
         <dependency>
-            <groupId>com.qmth.gdpu</groupId>
+            <groupId>com.qmth.cas</groupId>
             <artifactId>cas-client-core</artifactId>
             <version>3.1.12</version>
             <scope>system</scope>
             <systemPath>${project.basedir}/src/main/resources/lib/cas-client-core-3.1.12.jar</systemPath>
         </dependency>
         <dependency>
-            <groupId>com.qmth.gdpu</groupId>
+            <groupId>com.qmth.cas</groupId>
             <artifactId>sso-client-java</artifactId>
             <version>7.0.8</version>
             <scope>system</scope>
@@ -67,7 +67,7 @@
                 <artifactId>dockerfile-maven-plugin</artifactId>
                 <version>1.4.12</version>
                 <configuration>
-                    <repository>registry.cn-shenzhen.aliyuncs.com/gdpu-exchange</repository>
+                    <repository>registry.cn-shenzhen.aliyuncs.com/cas-exchange</repository>
                     <tag>${project.version}</tag>
                     <contextDirectory>${project.baseDir}</contextDirectory>
                     <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
@@ -80,4 +80,4 @@
         </plugins>
     </build>
 
-</project>
+</project>

+ 4 - 4
gdpu-exchange/src/main/java/com/qmth/gdpu/GdpuExchangeApplication.java → cas/src/main/java/com/qmth/teachcloud/cas/CasApplication.java

@@ -1,10 +1,10 @@
-package com.qmth.gdpu;
+package com.qmth.teachcloud.cas;
 
-import com.qmth.boot.core.security.config.SecurityAutoConfiguration;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration;
 import org.springframework.cache.annotation.EnableCaching;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
@@ -17,10 +17,10 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableTransactionManagement // spring开启事务支持
 @EnableAsync // 开启异步任务
 @EnableCaching // 开启缓存注解
-public class GdpuExchangeApplication {
+public class CasApplication {
 
     public static void main(String[] args) {
-        SpringApplication.run(GdpuExchangeApplication.class, args);
+        SpringApplication.run(CasApplication.class, args);
     }
 
 }

+ 172 - 0
cas/src/main/java/com/qmth/teachcloud/cas/api/OpenApiController.java

@@ -0,0 +1,172 @@
+package com.qmth.teachcloud.cas.api;
+
+import com.qmth.boot.api.annotation.Aac;
+import com.qmth.boot.api.annotation.BOOL;
+import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.teachcloud.cas.util.CdutCasUtil;
+import com.qmth.teachcloud.cas.util.GdpuCasUtil;
+import com.qmth.teachcloud.cas.util.SxufeCasUtil;
+import com.qmth.teachcloud.cas.util.XjtuCasUtil;
+import com.qmth.teachcloud.cas.util.supwisdom.CasUtils;
+import com.qmth.teachcloud.cas.util.sxufe.Constants;
+import com.qmth.teachcloud.exchange.common.bean.params.RedirectParams;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+import com.qmth.teachcloud.exchange.common.enums.SchoolCodeEnum;
+import com.qmth.teachcloud.exchange.common.service.CommonService;
+import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
+import com.qmth.teachcloud.exchange.common.util.Result;
+import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import io.swagger.annotations.*;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+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;
+
+/**
+ * <p>
+ * cas开放接口前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "cas开放接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
+@Validated
+public class OpenApiController {
+    private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
+    private static final String ACCESS_TOKEN_URL = "http://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
+    private static final String USER_INFO_URL = "http://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
+    private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
+    //    private static final String SCHOOL_CODE = "xjtu";//测试学校code,正式改成xjtu
+    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
+//    private static final String VERSION = "1.0.1.1";
+
+    @Resource
+    CommonService commonService;
+
+//    @Value("${cas.config.logoutUrl}")
+//    String logoutUrl;
+//
+//    @Value("${cas.config.returnUrl}")
+//    String returnUrl;
+//
+//    @Value("${cas.config.teachcloudPrintLoginUrl}")
+//    String teachcloudLoginUrl;
+
+    @Resource
+    XjtuCasUtil xjtuCasUtil;
+
+    @Resource
+    CdutCasUtil cdutCasUtil;
+
+    @Resource
+    SxufeCasUtil sxufeCasUtil;
+
+    @Resource
+    GdpuCasUtil gdpuCasUtil;
+
+    @ApiOperation(value = "cas鉴权接口")
+    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
+    @RequestMapping(value = "/{schoolCode}/authentication", method = RequestMethod.GET)
+    @Aac(auth = BOOL.FALSE)
+    public void authentication(@ApiParam(value = "学校编码") @PathVariable("schoolCode") String schoolCode,
+                               @ApiParam(value = "工号") @RequestParam(required = false) String code,
+                               @ApiParam(value = "系统参数") @RequestParam(required = false) String state,
+                               @ApiParam(value = "用户类型") @RequestParam(required = false) String userType,
+                               @ApiParam(value = "员工工号") @RequestParam(required = false) String employeeNo,
+                               @ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
+        RedirectParams redirectParams = null;
+        switch (SchoolCodeEnum.valueOf(schoolCode.toUpperCase())) {
+            case XJTU:
+                redirectParams = xjtuCasUtil.authentication(schoolCode, code, state, userType, employeeNo, returnUrl);
+                break;
+            case CDUT:
+                cdutCasUtil.authentication(schoolCode);
+                break;
+            case SXUFE:
+                sxufeCasUtil.authentication(schoolCode);
+                break;
+            case GDPU:
+                gdpuCasUtil.authentication(schoolCode);
+                break;
+            default:
+                break;
+        }
+        if (Objects.nonNull(redirectParams)) {
+            commonService.redirectLogic(redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
+        }
+    }
+
+    @ApiOperation(value = "cas鉴权退出接口")
+    @RequestMapping(value = "/{schoolCode}/authentication/logout", method = RequestMethod.GET)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
+    @Aac(auth = BOOL.FALSE)
+    public void logout(@ApiParam(value = "学校编码") @PathVariable("schoolCode") String schoolCode,
+                       @ApiParam(value = "sessionId", required = true) @RequestParam String gSessionId) throws IOException {
+        switch (SchoolCodeEnum.valueOf(schoolCode.toUpperCase())) {
+            case XJTU:
+                xjtuCasUtil.logout(schoolCode, gSessionId);
+                break;
+            case CDUT:
+                cdutCasUtil.logout(schoolCode);
+                break;
+            case SXUFE:
+                sxufeCasUtil.logout(schoolCode);
+                break;
+            case GDPU:
+                gdpuCasUtil.logout(schoolCode);
+                break;
+            default:
+                break;
+        }
+    }
+
+    @ApiOperation(value = "跳转知学知考")
+    @RequestMapping(value = "/{schoolCode}/authentication/zxzk_login", method = RequestMethod.GET)
+    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
+    @Aac(auth = BOOL.FALSE)
+    public void zxzkLogin(@ApiParam(value = "学校编码") @PathVariable("schoolCode") String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpServletResponse response = ServletUtil.getResponse();
+        RedirectParams redirectParams = null;
+        switch (SchoolCodeEnum.valueOf(schoolCode.toUpperCase())) {
+            case CDUT:
+                redirectParams = cdutCasUtil.zxzkLogin(schoolCode);
+                if (Objects.nonNull(redirectParams)) {
+                    commonService.redirectLogic(redirectParams.getEmployeeNo(), redirectParams.getSchoolCode(), redirectParams.getReturnUrl(), Objects.nonNull(redirectParams.getOpenParams()) ? JacksonUtil.parseJson(redirectParams.getOpenParams()) : null);
+                } else {
+                    String loginUrl = CasUtils.getLoginUrl(request);
+                    response.sendRedirect(loginUrl);
+                }
+                break;
+            case SXUFE:
+                redirectParams = sxufeCasUtil.zxzkLogin(schoolCode);
+                if (Objects.nonNull(redirectParams)) {
+                    commonService.redirectLogic(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.sendRedirect(Constants.CAS_LOGIN_URL);
+                }
+                break;
+            case GDPU:
+                redirectParams = gdpuCasUtil.zxzkLogin(schoolCode);
+                if (Objects.nonNull(redirectParams)) {
+                    commonService.redirectLogic(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.sendRedirect(com.qmth.teachcloud.cas.util.gdpu.Constants.CAS_LOGIN_URL);
+                }
+                break;
+            default:
+                break;
+        }
+    }
+}

+ 2 - 2
sxufe-exchange/src/main/java/com/qmth/sxufe/aspect/ApiControllerAspect.java → cas/src/main/java/com/qmth/teachcloud/cas/aspect/ApiControllerAspect.java

@@ -1,4 +1,4 @@
-package com.qmth.sxufe.aspect;
+package com.qmth.teachcloud.cas.aspect;
 
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
@@ -37,7 +37,7 @@ public class ApiControllerAspect {
     /**
      * api切入点
      */
-    @Pointcut("execution(public * com.qmth.sxufe.api.*.*(..))")
+    @Pointcut("execution(public * com.qmth.teachcloud.cas.api.*.*(..))")
     public void apiAspect() {
     }
 

+ 30 - 4
gdpu-exchange/src/main/java/com/qmth/gdpu/filter/MyWebApplicationInitializer.java → cas/src/main/java/com/qmth/teachcloud/cas/filter/MyWebApplicationInitializer.java

@@ -1,6 +1,6 @@
-package com.qmth.gdpu.filter;
+package com.qmth.teachcloud.cas.filter;
 
-import com.qmth.gdpu.utils.Constants;
+import com.qmth.teachcloud.cas.util.sxufe.Constants;
 import edu.yale.its.tp.cas.client.filter.CASFilter;
 import org.jasig.cas.client.session.SingleSignOutFilter;
 import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
@@ -16,12 +16,16 @@ import java.util.Map;
 
 @Configuration
 public class MyWebApplicationInitializer implements ServletContextInitializer {
+    private static final String SXUFE_URL = "/api/open/sxufe/authentication";
 
     @Override
     public void onStartup(ServletContext servletContext) {
+        /**
+         * 山西财经filter
+         */
         servletContext.addListener(new SingleSignOutHttpSessionListener());
         FilterRegistration.Dynamic caslogoutFilter = servletContext.addFilter("caslogoutFilter", SingleSignOutFilter.class);
-        caslogoutFilter.addMappingForUrlPatterns(null, false, "/*");
+        caslogoutFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
 
         FilterRegistration.Dynamic ssoFilter = servletContext.addFilter("SSO Filter", CASFilter.class);
 
@@ -36,6 +40,28 @@ public class MyWebApplicationInitializer implements ServletContextInitializer {
         map.put("edu.yale.its.tp.cas.client.filter.initContextClass", "net.psctech.sso.filter.LoginFilter");
         ssoFilter.setInitParameters(map);
 
-        ssoFilter.addMappingForUrlPatterns(null, false, "/*");
+        ssoFilter.addMappingForUrlPatterns(null, false, SXUFE_URL);
+
+        /**
+         * 广药filter
+         */
+//        servletContext.addListener(new SingleSignOutHttpSessionListener());
+//        FilterRegistration.Dynamic caslogoutFilter = servletContext.addFilter("caslogoutFilter", SingleSignOutFilter.class);
+//        caslogoutFilter.addMappingForUrlPatterns(null, false, "/*");
+//
+//        FilterRegistration.Dynamic ssoFilter = servletContext.addFilter("SSO Filter", CASFilter.class);
+//
+//        Map<String, String> map = new HashMap<>();
+//        map.put("edu.yale.its.tp.cas.client.filter.loginUrl", Constants.CAS_LOGIN_URL);
+//        map.put("edu.yale.its.tp.cas.client.filter.validateUrl", Constants.CAS_VALIDATE_URL);
+//        //接入的应用系统IP:Port,需要根据实际路径修改
+//
+//        WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(servletContext);
+//        String serverName = cxt.getEnvironment().getProperty("cas.filter.serverName");
+//        map.put("edu.yale.its.tp.cas.client.filter.serverName", serverName);
+//        map.put("edu.yale.its.tp.cas.client.filter.initContextClass", "net.psctech.sso.filter.LoginFilter");
+//        ssoFilter.setInitParameters(map);
+//
+//        ssoFilter.addMappingForUrlPatterns(null, false, "/*");
     }
 }

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/start/StartRunning.java → cas/src/main/java/com/qmth/teachcloud/cas/start/StartRunning.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.start;
+package com.qmth.teachcloud.cas.start;
 
 import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
 import org.slf4j.Logger;

+ 122 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/CdutCasUtil.java

@@ -0,0 +1,122 @@
+package com.qmth.teachcloud.cas.util;
+
+import com.qmth.teachcloud.cas.util.supwisdom.CasUtils;
+import com.qmth.teachcloud.cas.util.supwisdom.Constants;
+import com.qmth.teachcloud.cas.util.supwisdom.LoginUser;
+import com.qmth.teachcloud.exchange.common.bean.params.RedirectParams;
+import com.qmth.teachcloud.exchange.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
+import com.qmth.teachcloud.exchange.common.util.ServletUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+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.Objects;
+
+/**
+ * @Description: 成都理工cas工具类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+@Component
+public class CdutCasUtil {
+    private static final Logger log = LoggerFactory.getLogger(CdutCasUtil.class);
+    private String teachcloudLoginUrl = null, logoutUrl = null, returnUrl = null;
+    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
+    private static final String ACCESS_TOKEN_URL = "http://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
+    private static final String USER_INFO_URL = "http://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
+    private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
+
+    @Resource
+    AuthInfoService authInfoService;
+
+    /**
+     * 成都理工登录逻辑
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public void authentication(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpServletResponse response = ServletUtil.getResponse();
+        HttpSession session = request.getSession();
+        String targetUrl = CasUtils.getTargetUrl(request);
+        authInfoService.appHasExpired(schoolCode);
+        if (CasUtils.isLogin(session)) {
+            response.sendRedirect(targetUrl);
+        } else {
+            if (CasUtils.hasTicket(request)) {
+                LoginUser loginUser = CasUtils.getLoginUser(request);
+                if (loginUser.isLogin()) {
+                    CasUtils.login(loginUser, session);
+                    response.sendRedirect(targetUrl);
+                } else {
+                    String loginUrl = CasUtils.getLoginUrl(request);
+                    response.sendRedirect(loginUrl);
+                }
+            } else {
+                String loginUrl = CasUtils.getLoginUrl(request);
+                response.sendRedirect(loginUrl);
+            }
+        }
+    }
+
+    /**
+     * 成都理工注销逻辑
+     *
+     * @param schoolCode
+     * @throws IOException
+     */
+    public void logout(String schoolCode) throws IOException {
+        if (Objects.isNull(logoutUrl) || Objects.equals(logoutUrl, "")) {
+            throw ExceptionResultEnum.PARAMS_ERROR.exception("鉴权退出地址不存在");
+        }
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpServletResponse response = ServletUtil.getResponse();
+        authInfoService.appHasExpired(schoolCode);
+        if (doLogout(request)) {
+            HttpSession session = request.getSession();
+            CasUtils.logout(session);
+            response.sendRedirect(CasUtils.getLogoutUrl(request));
+        } else {
+            response.sendRedirect(CasUtils.getLogoutUrl(request));
+        }
+    }
+
+    /**
+     * 知学登录
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams zxzkLogin(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpSession session = request.getSession();
+        RedirectParams redirectParams = null;
+        if (CasUtils.isLogin(session)) {
+            LoginUser loginUser = (LoginUser) session.getAttribute(Constants.LOGIN_USER_KEY);
+            String account = loginUser.getAccount();
+            redirectParams = new RedirectParams(account, schoolCode, logoutUrl, null);
+        }
+        return redirectParams;
+    }
+
+    /**
+     * dologout
+     *
+     * @param request
+     * @return
+     */
+    public boolean doLogout(HttpServletRequest request) {
+        return true;
+    }
+}

+ 108 - 0
cas/src/main/java/com/qmth/teachcloud/cas/util/GdpuCasUtil.java

@@ -0,0 +1,108 @@
+package com.qmth.teachcloud.cas.util;
+
+import com.qmth.teachcloud.cas.util.gdpu.CasUtils;
+import com.qmth.teachcloud.cas.util.gdpu.Constants;
+import com.qmth.teachcloud.exchange.common.bean.params.RedirectParams;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
+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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.net.URLEncoder;
+
+/**
+ * @Description: 广东药科大学cas工具类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+@Component
+public class GdpuCasUtil {
+    private static final Logger log = LoggerFactory.getLogger(CdutCasUtil.class);
+    private String teachcloudLoginUrl = null, logoutUrl = null, returnUrl = null;
+    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
+    private static final String ACCESS_TOKEN_URL = "http://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
+    private static final String USER_INFO_URL = "http://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
+    private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
+
+    @Resource
+    AuthInfoService authInfoService;
+
+    /**
+     * 广东药科大学登录逻辑
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public void authentication(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpSession session = request.getSession();
+        HttpServletResponse response = ServletUtil.getResponse();
+        authInfoService.appHasExpired(schoolCode);
+
+        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
+        log.info("cas:authentication:object:{}", object);
+        if (object != null) {
+            String targetUrl = CasUtils.getTargetUrl(request);
+            log.info("cas:authentication:targetUrl:{}", targetUrl);
+            // 跳转到知学知考
+            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.sendRedirect(targetUrl);
+        } else {
+            // 返回登录页
+            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, Constants.UTF_8_STR);
+            log.info("cas:authentication:loginUrl:{}", loginUrl);
+            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.sendRedirect(loginUrl);
+        }
+    }
+
+    /**
+     * 广东药科大学注销逻辑
+     *
+     * @param schoolCode
+     * @throws IOException
+     */
+    public void logout(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpServletResponse response = ServletUtil.getResponse();
+        HttpSession session = request.getSession();
+        authInfoService.appHasExpired(schoolCode);
+        //注销本系统session
+        session.invalidate();
+        log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(request));
+        //跳转至注销后地址
+        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+        response.sendRedirect(CasUtils.getLogoutUrl(request));
+    }
+
+    /**
+     * 知学登录
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams zxzkLogin(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpSession session = request.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;
+    }
+}

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

@@ -0,0 +1,108 @@
+package com.qmth.teachcloud.cas.util;
+
+import com.qmth.teachcloud.cas.util.sxufe.CasUtils;
+import com.qmth.teachcloud.cas.util.sxufe.Constants;
+import com.qmth.teachcloud.exchange.common.bean.params.RedirectParams;
+import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
+import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
+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 javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.net.URLEncoder;
+
+/**
+ * @Description: 山西财经cas工具类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+@Component
+public class SxufeCasUtil {
+    private static final Logger log = LoggerFactory.getLogger(CdutCasUtil.class);
+    private String teachcloudLoginUrl = null, logoutUrl = null, returnUrl = null;
+    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
+    private static final String ACCESS_TOKEN_URL = "http://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
+    private static final String USER_INFO_URL = "http://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
+    private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
+
+    @Resource
+    AuthInfoService authInfoService;
+
+    /**
+     * 山西财经登录逻辑
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public void authentication(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpSession session = request.getSession();
+        HttpServletResponse response = ServletUtil.getResponse();
+        authInfoService.appHasExpired(schoolCode);
+
+        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
+        log.info("cas:authentication:object:{}", object);
+        if (object != null) {
+            String targetUrl = CasUtils.getTargetUrl(request);
+            log.info("cas:authentication:targetUrl:{}", targetUrl);
+            // 跳转到知学知考
+            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.sendRedirect(targetUrl);
+        } else {
+            // 返回登录页
+            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, Constants.UTF_8_STR);
+            log.info("cas:authentication:loginUrl:{}", loginUrl);
+            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+            response.sendRedirect(loginUrl);
+        }
+    }
+
+    /**
+     * 山西财经注销逻辑
+     *
+     * @param schoolCode
+     * @throws IOException
+     */
+    public void logout(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpServletResponse response = ServletUtil.getResponse();
+        HttpSession session = request.getSession();
+        authInfoService.appHasExpired(schoolCode);
+        //注销本系统session
+        session.invalidate();
+        log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(request));
+        //跳转至注销后地址
+        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+        response.sendRedirect(CasUtils.getLogoutUrl(request));
+    }
+
+    /**
+     * 知学登录
+     *
+     * @param schoolCode
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams zxzkLogin(String schoolCode) throws IOException {
+        HttpServletRequest request = ServletUtil.getRequest();
+        HttpSession session = request.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;
+    }
+}

+ 54 - 61
xjtu-exchange/src/main/java/com/qmth/xjtu/api/OpenApiController.java → cas/src/main/java/com/qmth/teachcloud/cas/util/XjtuCasUtil.java

@@ -1,37 +1,29 @@
-package com.qmth.xjtu.api;
+package com.qmth.teachcloud.cas.util;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
-import com.qmth.boot.api.constant.ApiConstant;
+import com.qmth.boot.core.cache.service.CacheService;
 import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
 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.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
 import com.qmth.teachcloud.exchange.common.service.BasicSchoolService;
-import com.qmth.teachcloud.exchange.common.service.CommonService;
 import com.qmth.teachcloud.exchange.common.util.HttpUtil;
 import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
 import com.qmth.teachcloud.exchange.common.util.Result;
 import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import io.swagger.annotations.*;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
+import org.springframework.stereotype.Component;
 import org.springframework.util.CollectionUtils;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
@@ -39,59 +31,53 @@ import java.io.IOException;
 import java.util.*;
 
 /**
- * <p>
- * 西安交通大学开放接口前端控制器
- * </p>
- *
- * @author wangliang
- * @since 2022-04-26
+ * @Description: 西交大cas工具类
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
  */
-@Api(tags = "西安交通大学开放接口Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
-@Validated
-public class OpenApiController {
-    private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
+@Component
+public class XjtuCasUtil {
+    private static final Logger log = LoggerFactory.getLogger(XjtuCasUtil.class);
+    private String teachcloudLoginUrl = null, logoutUrl = null, returnUrl = null;
+    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
     private static final String ACCESS_TOKEN_URL = "http://org.xjtu.edu.cn/openplatform/oauth/getAccessToken";
     private static final String USER_INFO_URL = "http://org.xjtu.edu.cn/openplatform/oauth/open/getUserInfo";
     private static final String LOGOUT_URL = "http://org.xjtu.edu.cn/openplatform/oauth/logout";
-    private static final String SCHOOL_CODE = "xjtu";//测试学校code,正式改成xjtu
-    private static final String LOGIN_BEFORE_XJU_LOGIC_API = "/api/admin/print/open/login_before_xju_logic";//西交大登录之前逻辑
-    private static final String VERSION = "1.0.1.1";
-
-    @Resource
-    CommonService commonService;
 
     @Resource
     AuthInfoService authInfoService;
 
-    @Value("${cas.config.logoutUrl}")
-    String logoutUrl;
-
-    @Value("${cas.config.returnUrl}")
-    String returnUrl;
-
-    @Value("${cas.config.teachcloudPrintLoginUrl}")
-    String teachcloudLoginUrl;
+    @Resource
+    CacheService cacheService;
 
     @Resource
     BasicSchoolService basicSchoolService;
 
-    @ApiOperation(value = "西安交通大学cas鉴权接口")
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @RequestMapping(value = "/authentication", method = RequestMethod.GET)
-    @Aac(auth = BOOL.FALSE)
-    public void authentication(@ApiParam(value = "工号") @RequestParam(required = false) String code,
-                               @ApiParam(value = "系统参数") @RequestParam(required = false) String state,
-                               @ApiParam(value = "用户类型") @RequestParam(required = false) String userType,
-                               @ApiParam(value = "员工工号") @RequestParam(required = false) String employeeNo,
-                               @ApiParam(value = "返回url") @RequestParam(required = false) String returnUrl) throws IOException {
-        log.info("version:{}", VERSION);
+    /**
+     * 西交大登录逻辑
+     *
+     * @param schoolCode
+     * @param code
+     * @param state
+     * @param userType
+     * @param employeeNo
+     * @param returnUrl
+     * @return
+     * @throws IOException
+     */
+    public RedirectParams authentication(String schoolCode,
+                                         String code,
+                                         String state,
+                                         String userType,
+                                         String employeeNo,
+                                         String returnUrl) throws IOException {
         if ((Objects.isNull(code) || Objects.equals(code, ""))
                 || (Objects.isNull(employeeNo) || Objects.equals(employeeNo, ""))) {
             throw ExceptionResultEnum.ERROR.exception("请先通过学校地址登录");
         }
-        authInfoService.appHasExpired(SCHOOL_CODE);
+        authInfoService.appHasExpired(schoolCode);
 
         //2022-12-06加入登录之前逻辑
         if (Objects.isNull(teachcloudLoginUrl) || Objects.equals(teachcloudLoginUrl, "")) {
@@ -99,13 +85,17 @@ public class OpenApiController {
         }
         String[] strs = teachcloudLoginUrl.split(SystemConstant.PATH_SUBSTR);
         if (strs[0].contains(SystemConstant.PATH_MATCH)) {
-            strs[0] = strs[0].replace(SystemConstant.PATH_MATCH, SCHOOL_CODE);
+            strs[0] = strs[0].replace(SystemConstant.PATH_MATCH, schoolCode);
         }
 
-        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
-        basicSchoolQueryWrapper.lambda().eq(BasicSchool::getCode, SCHOOL_CODE);
-        BasicSchool basicSchool = basicSchoolService.getOne(basicSchoolQueryWrapper);
+        BasicSchool basicSchool = (BasicSchool) cacheService.get(SystemConstant.SCHOOL_CODE_CACHE, schoolCode);
+        if (Objects.isNull(basicSchool)) {
+            QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getCode, schoolCode);
+            basicSchool = basicSchoolService.getOne(basicSchoolQueryWrapper);
+        }
         Optional.ofNullable(basicSchool).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学校信息不存在"));
+        cacheService.put(SystemConstant.SCHOOL_CODE_CACHE, schoolCode, basicSchool);
 
         Long timestamp = System.currentTimeMillis();
         String signature = SignatureEntity.build(SignatureType.SECRET, SystemConstant.METHOD, LOGIN_BEFORE_XJU_LOGIC_API, timestamp, basicSchool.getAccessKey(), basicSchool.getAccessSecret());
@@ -197,22 +187,25 @@ public class OpenApiController {
         } else {
             throw ExceptionResultEnum.ERROR.exception("gSessionId为空");
         }
-
-        commonService.redirectLogic(employeeNo, SCHOOL_CODE, returnUrl, Objects.nonNull(openParams) ? JacksonUtil.parseJson(openParams) : null);
+        return new RedirectParams(employeeNo, schoolCode, returnUrl, openParams);
     }
 
-    @ApiOperation(value = "西安交通大学cas鉴权退出接口")
-    @RequestMapping(value = "/authentication/logout", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void logout(@ApiParam(value = "sessionId", required = true) @RequestParam String gSessionId) throws IOException {
+    /**
+     * 西交大注销逻辑
+     *
+     * @param schoolCode
+     * @param gSessionId
+     * @throws IOException
+     */
+    public void logout(String schoolCode,
+                       String gSessionId) throws IOException {
         if (Objects.isNull(logoutUrl) || Objects.equals(logoutUrl, "")) {
             throw ExceptionResultEnum.PARAMS_ERROR.exception("鉴权退出地址不存在");
         }
         if (Objects.isNull(gSessionId) || Objects.equals(gSessionId, "")) {
             throw ExceptionResultEnum.PARAMS_ERROR.exception("sessionId为空");
         }
-        authInfoService.appHasExpired(SCHOOL_CODE);
+        authInfoService.appHasExpired(schoolCode);
         Map<String, Object> logoutParams = new LinkedHashMap<>();
         logoutParams.put("gSessionId", gSessionId);
         String logoutResult = HttpUtil.post(LOGOUT_URL, logoutParams, null);

+ 1 - 1
gdpu-exchange/src/main/java/com/qmth/gdpu/utils/CasUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/gdpu/CasUtils.java

@@ -1,4 +1,4 @@
-package com.qmth.gdpu.utils;
+package com.qmth.teachcloud.cas.util.gdpu;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;

+ 5 - 5
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/CasUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/CasUtils.java

@@ -1,9 +1,9 @@
-package com.qmth.cdut.supwisdom;
+package com.qmth.teachcloud.cas.util.supwisdom;
 
-import com.qmth.cdut.supwisdom.utils.Base64Utils;
-import com.qmth.cdut.supwisdom.utils.BooleanUtils;
-import com.qmth.cdut.supwisdom.utils.HttpRequestUtils;
-import com.qmth.cdut.supwisdom.utils.StringUtils;
+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 javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/Constants.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/Constants.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.supwisdom;
+package com.qmth.teachcloud.cas.util.supwisdom;
 
 import java.nio.charset.Charset;
 

+ 6 - 9
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/LoginUser.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/LoginUser.java

@@ -1,12 +1,8 @@
-package com.qmth.cdut.supwisdom;
+package com.qmth.teachcloud.cas.util.supwisdom;
 
-import com.alibaba.fastjson.JSON;
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.cdut.supwisdom.utils.IOUtils;
-import com.qmth.cdut.supwisdom.utils.StringUtils;
+import com.qmth.teachcloud.cas.util.supwisdom.utils.IOUtils;
+import com.qmth.teachcloud.cas.util.supwisdom.utils.StringUtils;
 import com.qmth.teachcloud.exchange.common.enums.ExceptionResultEnum;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
@@ -44,8 +40,9 @@ public class LoginUser {
     private String typeName;
 
     public LoginUser(String loginUserXmlStr) {
-        if (StringUtils.isEmpty(loginUserXmlStr))
+        if (StringUtils.isEmpty(loginUserXmlStr)) {
             return;
+        }
         DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
                 .newInstance();
         InputStream in = null;
@@ -87,7 +84,7 @@ public class LoginUser {
         } catch (Exception e) {
             // 解析用户信息失败!
             e.printStackTrace();
-            throw ExceptionResultEnum.ERROR.exception("解析错误"+ e.getMessage());
+            throw ExceptionResultEnum.ERROR.exception("解析错误" + e.getMessage());
         } finally {
             IOUtils.closeQuietly(in);
         }

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/utils/Base64Utils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/Base64Utils.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.supwisdom.utils;
+package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
 public abstract class Base64Utils {
 

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/utils/BooleanUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/BooleanUtils.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.supwisdom.utils;
+package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
 public abstract class BooleanUtils {
 

+ 6 - 4
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/utils/HttpRequestUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/HttpRequestUtils.java

@@ -1,10 +1,12 @@
-package com.qmth.cdut.supwisdom.utils;
+package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
-import com.qmth.cdut.supwisdom.Constants;
+import com.qmth.teachcloud.cas.util.supwisdom.Constants;
 
 import javax.net.ssl.*;
-import java.io.*;
-import java.net.*;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.security.SecureRandom;
 import java.security.cert.CertificateException;
 import java.security.cert.X509Certificate;

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/utils/IOUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/IOUtils.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.supwisdom.utils;
+package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
 import java.io.*;
 import java.net.HttpURLConnection;

+ 1 - 1
cdut-exchange/src/main/java/com/qmth/cdut/supwisdom/utils/StringUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/supwisdom/utils/StringUtils.java

@@ -1,4 +1,4 @@
-package com.qmth.cdut.supwisdom.utils;
+package com.qmth.teachcloud.cas.util.supwisdom.utils;
 
 public abstract class StringUtils {
 

+ 1 - 1
sxufe-exchange/src/main/java/com/qmth/sxufe/utils/CasUtils.java → cas/src/main/java/com/qmth/teachcloud/cas/util/sxufe/CasUtils.java

@@ -1,4 +1,4 @@
-package com.qmth.sxufe.utils;
+package com.qmth.teachcloud.cas.util.sxufe;
 
 import javax.servlet.http.HttpServletRequest;
 import java.io.UnsupportedEncodingException;

+ 4 - 3
xjtu-exchange/src/main/resources/application.properties → cas/src/main/resources/application.properties

@@ -7,12 +7,12 @@ server.tomcat.max-connections=2500
 server.tomcat.uri-encoding=UTF-8
 
 #\u9879\u76EE\u540D\u79F0
-spring.application.name=xjtu-exchange
+spring.application.name=cas-exchange
 
 #\u6570\u636E\u6E90\u914D\u7F6E
 db.host=localhost
 db.port=3306
-db.name=exchange-v1.0.0
+db.name=eds-v1.0.0
 db.username=root
 db.password=123456789
 
@@ -42,12 +42,13 @@ spring.jackson.time-zone=GMT+8
 
 #\u65E5\u5FD7\u914D\u7F6E
 com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/Users/king/Downloads/xjtu-exchange.log
+com.qmth.logging.file-path=/Users/king/Downloads/cas-exchange.log
 
 com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
 com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
 #com.qmth.solar.license=/Volumes/extend/\u542F\u660E/\u5206\u5E03\u5F0F\u5370\u5237/\u5206\u5E03\u5F0F\u5370\u5237&\u6559\u7814\u5206\u6790v3.1.0/tc-dev-wl.lic
 
+cas.filter.serverName=210.31.120.103:7400
 cas.config.teachcloudPrintLoginUrl=https://*.teach-cloud-test.com/#/login-open
 cas.config.logoutUrl=https://dj-xian.qmth.com.cn/api/open/authentication/logout
 cas.config.returnUrl=https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=http://10.184.206.15/api/open/authentication&responseType=code&scope=user_info&state=1234

+ 0 - 0
gdpu-exchange/src/main/resources/lib/cas-client-core-3.1.12.jar → cas/src/main/resources/lib/cas-client-core-3.1.12.jar


+ 0 - 0
gdpu-exchange/src/main/resources/lib/sso-client-java-7.0.8.jar → cas/src/main/resources/lib/sso-client-java-7.0.8.jar


+ 2 - 2
cdut-exchange/src/test/java/com/qmth/cdut/CdutExchangeApplicationTests.java → cas/src/test/java/com/qmth/teachcloud/cas/CasApplicationTests.java

@@ -1,10 +1,10 @@
-package com.qmth.cdut;
+package com.qmth.teachcloud.cas;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
-class CdutExchangeApplicationTests {
+class CasApplicationTests {
 
     @Test
     void contextLoads() {

+ 0 - 70
cdut-exchange/pom.xml

@@ -1,70 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>com.qmth.cdut.exchange</groupId>
-    <artifactId>cdut-exchange</artifactId>
-    <version>1.0.2.1</version>
-    <packaging>jar</packaging>
-    <description>成都理工大学单点登录</description>
-
-    <parent>
-        <groupId>com.qmth.teachcloud.exchange.service</groupId>
-        <artifactId>teachcloud-exchange-service</artifactId>
-        <version>1.0.2.1</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.qmth.teachcloud.exchange.common</groupId>
-            <artifactId>teachcloud-exchange-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <version>${spring-boot.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-core</artifactId>
-            <version>9.0.64</version>
-            <scope>compile</scope>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.6.2</version>
-                <configuration>
-                    <includeSystemScope>true</includeSystemScope>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>com.spotify</groupId>
-                <artifactId>dockerfile-maven-plugin</artifactId>
-                <version>1.4.12</version>
-                <configuration>
-                    <repository>registry.cn-shenzhen.aliyuncs.com/cdut-exchange</repository>
-                    <tag>${project.version}</tag>
-                    <contextDirectory>${project.baseDir}</contextDirectory>
-                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
-                    <pullNewerImage>true</pullNewerImage>
-                    <buildArgs>
-                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
-                    </buildArgs>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

+ 0 - 26
cdut-exchange/src/main/java/com/qmth/cdut/CdutExchangeApplication.java

@@ -1,26 +0,0 @@
-package com.qmth.cdut;
-
-import com.qmth.boot.core.security.config.SecurityAutoConfiguration;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
-@MapperScan({"com.qmth.teachcloud.exchange.common.mapper"})
-//主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
-@EntityScan(basePackages = {"com.qmth.teachcloud.exchange.common.entity"})
-//用来扫描和发现指定包及其子包中的Entity定义
-@EnableTransactionManagement // spring开启事务支持
-@EnableAsync // 开启异步任务
-@EnableCaching // 开启缓存注解
-public class CdutExchangeApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(CdutExchangeApplication.class, args);
-    }
-
-}

+ 0 - 139
cdut-exchange/src/main/java/com/qmth/cdut/api/OpenApiController.java

@@ -1,139 +0,0 @@
-package com.qmth.cdut.api;
-
-import com.alibaba.fastjson.JSON;
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
-import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.cdut.supwisdom.CasUtils;
-import com.qmth.cdut.supwisdom.Constants;
-import com.qmth.cdut.supwisdom.LoginUser;
-import com.qmth.cdut.supwisdom.utils.HttpRequestUtils;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import com.qmth.teachcloud.exchange.common.service.CommonService;
-import com.qmth.teachcloud.exchange.common.util.Result;
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-import javax.annotation.Resource;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import java.io.IOException;
-import java.util.Objects;
-
-/**
- * <p>
- * 成都理工大学开放接口前端控制器
- * </p>
- */
-@Api(tags = "成都理工大学开放接口Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
-@Validated
-public class OpenApiController {
-    private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
-    private static final String schoolCode = "cdut";//测试学校code,成都理工大学
-
-    @Resource
-    CommonService commonService;
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Value("${cas.config.logoutUrl}")
-    String logoutUrl;
-
-    @ApiOperation(value = "成都理工大学cas鉴权接口")
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @RequestMapping(value = "/authentication", method = RequestMethod.GET)
-    @Aac(auth = BOOL.FALSE)
-    public void authentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        String targetUrl = CasUtils.getTargetUrl(request);
-        authInfoService.appHasExpired(schoolCode);
-        if (CasUtils.isLogin(session)) {
-            response.sendRedirect(targetUrl);
-        } else {
-            if (CasUtils.hasTicket(request)) {
-                LoginUser loginUser = CasUtils.getLoginUser(request);
-                if (loginUser.isLogin()) {
-                    CasUtils.login(loginUser, session);
-                    response.sendRedirect(targetUrl);
-                } else {
-                    String loginUrl = CasUtils.getLoginUrl(request);
-                    response.sendRedirect(loginUrl);
-                }
-            } else {
-                String loginUrl = CasUtils.getLoginUrl(request);
-                response.sendRedirect(loginUrl);
-            }
-        }
-    }
-
-    @ApiOperation(value = "西安交通大学cas鉴权退出接口")
-    @RequestMapping(value = "/authentication/logout", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        if (Objects.isNull(logoutUrl) || Objects.equals(logoutUrl, "")) {
-            throw ExceptionResultEnum.PARAMS_ERROR.exception("鉴权退出地址不存在");
-        }
-        authInfoService.appHasExpired(schoolCode);
-        if (doLogout(request)) {
-            HttpSession session = request.getSession();
-            CasUtils.logout(session);
-            response.sendRedirect(CasUtils.getLogoutUrl(request));
-        } else {
-            response.sendRedirect(CasUtils.getLogoutUrl(request));
-        }
-    }
-
-    @ApiOperation(value = "跳转知学知考")
-    @RequestMapping(value = "/authentication/zxzk_login", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void zxzkLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        if (CasUtils.isLogin(session)) {
-            LoginUser loginUser = (LoginUser) session.getAttribute(Constants.LOGIN_USER_KEY);
-            String account = loginUser.getAccount();
-            commonService.redirectLogic(account, schoolCode, logoutUrl, null);
-        } else {
-            String loginUrl = CasUtils.getLoginUrl(request);
-            response.sendRedirect(loginUrl);
-        }
-
-    }
-
-    public boolean doLogin(LoginUser loginUser, HttpServletRequest request) {
-        HttpSession session = request.getSession();
-        ServletContext application = session.getServletContext();
-        // 如果使用了Spring可以用下面的方法获取spring的context对象
-        // WebApplicationContext appContext = WebApplicationContextUtils.getWebApplicationContext(application);
-        // 如果需要使用SpringMVC上下文、可以用下面的方法获取springMVC的context对象
-        // WebApplicationContext mvcContext = RequestContextUtils.getWebApplicationContext(request);
-
-        // TODO 需要业务系统重写
-
-
-        return true;
-    }
-
-    public boolean doLogout(HttpServletRequest request) {
-        return true;
-    }
-
-}

+ 0 - 88
cdut-exchange/src/main/java/com/qmth/cdut/aspect/ApiControllerAspect.java

@@ -1,88 +0,0 @@
-package com.qmth.cdut.aspect;
-
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
-import com.qmth.teachcloud.exchange.common.util.ResultUtil;
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BeanPropertyBindingResult;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Objects;
-import java.util.StringJoiner;
-
-/**
- * @Description: api aspect
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/5/12
- */
-@Aspect
-@Component
-public class ApiControllerAspect {
-    private final static Logger log = LoggerFactory.getLogger(ApiControllerAspect.class);
-
-    /**
-     * api切入点
-     */
-    @Pointcut("execution(public * com.qmth.cdut.api.*.*(..))")
-    public void apiAspect() {
-    }
-
-    /**
-     * 后台环绕切入
-     *
-     * @param joinPoint
-     * @return
-     * @throws Throwable
-     */
-    @Around(value = "apiAspect()")
-    public Object aroundApiPoint(ProceedingJoinPoint joinPoint) throws Throwable {
-        long start = System.currentTimeMillis();
-        StringJoiner stringJoiner = new StringJoiner("");
-        try {
-            MethodSignature msig = (MethodSignature) joinPoint.getSignature();
-            String className = msig.getDeclaringTypeName();
-            String methodName = msig.getName();
-            Object[] args = joinPoint.getArgs();
-            String[] paramsName = msig.getParameterNames();
-            HttpServletRequest request = ServletUtil.getRequest();
-            stringJoiner.add("============请求地址============:").add(request.getServletPath()).add("\r\n");
-            stringJoiner.add("============类============:").add(className).add("\r\n");
-            stringJoiner.add("============方法============:").add(methodName).add("\r\n");
-            if (Objects.nonNull(args) && args.length > 0) {
-                for (int i = 0; i < args.length; i++) {
-                    if (Objects.nonNull(args[i]) && (args[i] instanceof HttpServletRequest || args[i] instanceof HttpServletResponse || args[i] instanceof CommonsMultipartFile || args[i] instanceof MultipartFile || args[i] instanceof BeanPropertyBindingResult)) {
-                        continue;
-                    } else {
-                        stringJoiner.add("参数key:").add(JacksonUtil.parseJson(paramsName[i])).add(",参数value:").add(JacksonUtil.parseJson(args[i])).add("\r\n");
-                    }
-                }
-            }
-            return joinPoint.proceed();
-        } catch (Exception e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-            if (e instanceof ApiException) {
-                return ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                return ResultUtil.error(e.getMessage());
-            }
-        } finally {
-            long end = System.currentTimeMillis();
-            stringJoiner.add("============耗时============:").add((end - start) / 1000 + "").add("秒");
-            log.info("request:{}", stringJoiner.toString());
-        }
-    }
-}

+ 0 - 63
cdut-exchange/src/main/resources/application.properties

@@ -1,63 +0,0 @@
-server.port=7112
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-server.tomcat.remoteip.protocol-header=X-Forwarded-Proto
-server.tomcat.remoteip.remote-ip-header=X-FORWARDED-FOR
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=cdut-exchange
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=localhost
-db.port=3306
-db.name=exchange-api-1.0.0
-db.username=root
-db.password=12345678
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mybatis.log-level=debug
-
-com.qmth.fss.public.config=../static/
-com.qmth.fss.public.server=/Users/king/git
-#com.qmth.fss.public.server=/static/
-com.qmth.fss.private.config=../static/
-com.qmth.fss.private.server=/Users/king/git
-#com.qmth.fss.private.server=/static/
-spring.resources.static-locations=file:${com.qmth.fss.private.server},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/Users/king/Downloads/xjtu-exchange.log
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-com.qmth.solar.license=C:\\Users\\xf520\\Desktop\\exchange-cdut.lic
-
-cas.config.teachcloudPrintLoginUrl=https://cdut.teach-cloud.com/#/login-open
-cas.config.logoutUrl=https://exam.cdut.edu.cn/api/open/authentication/logout

+ 0 - 0
gdpu-exchange/.gitignore → eds/.gitignore


+ 5 - 5
xjtu-exchange/pom.xml → eds/pom.xml

@@ -2,15 +2,15 @@
 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
-    <groupId>com.qmth.xjtu.exchange</groupId>
-    <artifactId>xjtu-exchange</artifactId>
-    <version>1.0.2.1</version>
+    <groupId>com.qmth.eds.exchange</groupId>
+    <artifactId>eds-exchange</artifactId>
+    <version>2.0.0.1</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.teachcloud.exchange.service</groupId>
         <artifactId>teachcloud-exchange-service</artifactId>
-        <version>1.0.2.1</version>
+        <version>2.0.0.1</version>
     </parent>
 
     <dependencies>
@@ -47,7 +47,7 @@
                 <artifactId>dockerfile-maven-plugin</artifactId>
                 <version>1.4.12</version>
                 <configuration>
-                    <repository>registry.cn-shenzhen.aliyuncs.com/xjtu-exchange</repository>
+                    <repository>registry.cn-shenzhen.aliyuncs.com/eds-exchange</repository>
                     <tag>${project.version}</tag>
                     <contextDirectory>${project.baseDir}</contextDirectory>
                     <useMavenSettingsForAuth>true</useMavenSettingsForAuth>

+ 13 - 0
eds/src/main/java/com/qmth/teachcloud/eds/EdsApplication.java

@@ -0,0 +1,13 @@
+package com.qmth.teachcloud.eds;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class EdsApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(EdsApplication.class, args);
+    }
+
+}

+ 1 - 0
eds/src/main/resources/application.properties

@@ -0,0 +1 @@
+

+ 2 - 2
gdpu-exchange/src/test/java/com/qmth/gdpu/GdpuExchangeApplicationTests.java → eds/src/test/java/com/qmth/teachcloud/eds/EdsApplicationTests.java

@@ -1,10 +1,10 @@
-package com.qmth.gdpu;
+package com.qmth.teachcloud.eds;
 
 import org.junit.jupiter.api.Test;
 import org.springframework.boot.test.context.SpringBootTest;
 
 @SpringBootTest
-class GdpuExchangeApplicationTests {
+class EdsApplicationTests {
 
     @Test
     void contextLoads() {

+ 0 - 111
gdpu-exchange/src/main/java/com/qmth/gdpu/api/OpenApiController.java

@@ -1,111 +0,0 @@
-package com.qmth.gdpu.api;
-
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
-import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.gdpu.utils.CasUtils;
-import com.qmth.gdpu.utils.Constants;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import com.qmth.teachcloud.exchange.common.service.CommonService;
-import com.qmth.teachcloud.exchange.common.util.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import net.psctech.sso.filter.LoginFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-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.net.URLEncoder;
-
-/**
- * <p>
- * 广东药科大学开放接口前端控制器
- * </p>
- */
-@Api(tags = "广东药科大学开放接口Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
-@Validated
-public class OpenApiController {
-    private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
-    private static final String schoolCode = "sxufe";//测试学校code,山西财经大学
-
-    @Resource
-    CommonService commonService;
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Value("${cas.config.logoutUrl}")
-    String logoutUrl;
-
-    @ApiOperation(value = "cas鉴权接口")
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @RequestMapping(value = "/authentication", method = RequestMethod.GET)
-    @Aac(auth = BOOL.FALSE)
-    public void authentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        authInfoService.appHasExpired(schoolCode);
-
-        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
-        log.info("cas:authentication:object:{}", object);
-        if (object != null) {
-            String targetUrl = CasUtils.getTargetUrl(request);
-            log.info("cas:authentication:targetUrl:{}", targetUrl);
-            // 跳转到知学知考
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(targetUrl);
-        } else {
-            // 返回登录页
-            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, Constants.UTF_8_STR);
-            log.info("cas:authentication:loginUrl:{}", loginUrl);
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(loginUrl);
-        }
-    }
-
-    @ApiOperation(value = "cas鉴权退出接口")
-    @RequestMapping(value = "/authentication/logout", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        authInfoService.appHasExpired(schoolCode);
-        //注销本系统session
-        session.invalidate();
-        log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(request));
-        //跳转至注销后地址
-        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-        response.sendRedirect(CasUtils.getLogoutUrl(request));
-    }
-
-    @ApiOperation(value = "跳转知学知考")
-    @RequestMapping(value = "/authentication/zxzk_login", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void zxzkLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        String userName = "";
-        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
-        if (object != null) {
-            userName = object.toString();
-            commonService.redirectLogic(userName, schoolCode, logoutUrl, null);
-        } else {
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(Constants.CAS_LOGIN_URL);
-        }
-
-    }
-}

+ 0 - 88
gdpu-exchange/src/main/java/com/qmth/gdpu/aspect/ApiControllerAspect.java

@@ -1,88 +0,0 @@
-package com.qmth.gdpu.aspect;
-
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
-import com.qmth.teachcloud.exchange.common.util.ResultUtil;
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BeanPropertyBindingResult;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Objects;
-import java.util.StringJoiner;
-
-/**
- * @Description: api aspect
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/5/12
- */
-@Aspect
-@Component
-public class ApiControllerAspect {
-    private final static Logger log = LoggerFactory.getLogger(ApiControllerAspect.class);
-
-    /**
-     * api切入点
-     */
-    @Pointcut("execution(public * com.qmth.gdpu.api.*.*(..))")
-    public void apiAspect() {
-    }
-
-    /**
-     * 后台环绕切入
-     *
-     * @param joinPoint
-     * @return
-     * @throws Throwable
-     */
-    @Around(value = "apiAspect()")
-    public Object aroundApiPoint(ProceedingJoinPoint joinPoint) throws Throwable {
-        long start = System.currentTimeMillis();
-        StringJoiner stringJoiner = new StringJoiner("");
-        try {
-            MethodSignature msig = (MethodSignature) joinPoint.getSignature();
-            String className = msig.getDeclaringTypeName();
-            String methodName = msig.getName();
-            Object[] args = joinPoint.getArgs();
-            String[] paramsName = msig.getParameterNames();
-            HttpServletRequest request = ServletUtil.getRequest();
-            stringJoiner.add("============请求地址============:").add(request.getServletPath()).add("\r\n");
-            stringJoiner.add("============类============:").add(className).add("\r\n");
-            stringJoiner.add("============方法============:").add(methodName).add("\r\n");
-            if (Objects.nonNull(args) && args.length > 0) {
-                for (int i = 0; i < args.length; i++) {
-                    if (Objects.nonNull(args[i]) && (args[i] instanceof HttpServletRequest || args[i] instanceof HttpServletResponse || args[i] instanceof CommonsMultipartFile || args[i] instanceof MultipartFile || args[i] instanceof BeanPropertyBindingResult)) {
-                        continue;
-                    } else {
-                        stringJoiner.add("参数key:").add(JacksonUtil.parseJson(paramsName[i])).add(",参数value:").add(JacksonUtil.parseJson(args[i])).add("\r\n");
-                    }
-                }
-            }
-            return joinPoint.proceed();
-        } catch (Exception e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-            if (e instanceof ApiException) {
-                return ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                return ResultUtil.error(e.getMessage());
-            }
-        } finally {
-            long end = System.currentTimeMillis();
-            stringJoiner.add("============耗时============:").add((end - start) / 1000 + "").add("秒");
-            log.info("request:{}", stringJoiner.toString());
-        }
-    }
-}

+ 0 - 31
gdpu-exchange/src/main/java/com/qmth/gdpu/start/StartRunning.java

@@ -1,31 +0,0 @@
-package com.qmth.gdpu.start;
-
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/7/3
- */
-@Component
-public class StartRunning implements CommandLineRunner {
-    private final static Logger log = LoggerFactory.getLogger(StartRunning.class);
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Override
-    public void run(String... args) throws Exception {
-        log.info("服务器启动时执行 start");
-        authInfoService.appInfoInit();
-        log.info("服务器启动时执行 end");
-    }
-}

+ 0 - 53
gdpu-exchange/src/main/resources/application.properties

@@ -1,53 +0,0 @@
-server.port=7112
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=250
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=gdpu-exchange
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=localhost
-db.port=3306
-db.name=exchange-v1.0.0
-db.username=root
-db.password=123456789
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mybatis.log-level=debug
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/Users/king/Downloads/gdpu-exchange.log
-
-com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-#com.qmth.solar.license=/Volumes/extend/\u542F\u660E/\u5206\u5E03\u5F0F\u5370\u5237/\u5206\u5E03\u5F0F\u5370\u5237&\u6559\u7814\u5206\u6790v3.1.0/tc-dev-wl.lic
-
-cas.config.teachcloudPrintLoginUrl=http://127.0.0.1:7001/#/login-open
-cas.config.logoutUrl=https://dj-xian.qmth.com.cn/api/open/authentication/logout
-cas.config.returnUrl=https://org.xjtu.edu.cn/openplatform/oauth/authorize?appId=1548&redirectUri=http://10.184.206.15/api/open/authentication&responseType=code&scope=user_info&state=1234

+ 7 - 14
pom.xml

@@ -4,15 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.exchange.service</groupId>
     <artifactId>teachcloud-exchange-service</artifactId>
-    <version>1.0.2.1</version>
+    <version>2.0.0.1</version>
     <packaging>pom</packaging>
 
     <modules>
         <module>teachcloud-exchange-common</module>
-        <module>xjtu-exchange</module>
-        <module>cdut-exchange</module>
-        <module>sxufe-exchange</module>
-        <module>gdpu-exchange</module>
+        <module>cas</module>
+        <module>eds</module>
     </modules>
 
     <properties>
@@ -54,18 +52,13 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>com.qmth.xjtu.exchange</groupId>
-                <artifactId>xjtu-exchange</artifactId>
+                <groupId>com.qmth.cas.exchange</groupId>
+                <artifactId>cas-exchange</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>
-                <groupId>com.qmth.cdut.exchange</groupId>
-                <artifactId>cdut-exchange</artifactId>
-                <version>${project.version}</version>
-            </dependency>
-            <dependency>
-                <groupId>com.qmth.gdpu.exchange</groupId>
-                <artifactId>gdpu-exchange</artifactId>
+                <groupId>com.qmth.eds.exchange</groupId>
+                <artifactId>eds-exchange</artifactId>
                 <version>${project.version}</version>
             </dependency>
             <dependency>

+ 0 - 33
sxufe-exchange/.gitignore

@@ -1,33 +0,0 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/

+ 0 - 84
sxufe-exchange/pom.xml

@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <groupId>com.qmth.sxufe.exchange</groupId>
-    <artifactId>sxufe-exchange</artifactId>
-    <version>1.0.2.1</version>
-    <packaging>jar</packaging>
-    <description>山西财经大学单点登录</description>
-
-    <parent>
-        <groupId>com.qmth.teachcloud.exchange.service</groupId>
-        <artifactId>teachcloud-exchange-service</artifactId>
-        <version>1.0.2.1</version>
-    </parent>
-
-    <dependencies>
-        <dependency>
-            <groupId>com.qmth.teachcloud.exchange.common</groupId>
-            <artifactId>teachcloud-exchange-common</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
-            <version>${spring-boot.version}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.tomcat.embed</groupId>
-            <artifactId>tomcat-embed-core</artifactId>
-            <version>9.0.64</version>
-            <scope>compile</scope>
-        </dependency>
-        <dependency>
-            <groupId>com.qmth.sxufe</groupId>
-            <artifactId>cas-client-core</artifactId>
-            <version>3.1.12</version>
-            <scope>system</scope>
-            <systemPath>${project.basedir}/src/main/resources/lib/cas-client-core-3.1.12.jar</systemPath>
-        </dependency>
-        <dependency>
-            <groupId>com.qmth.sxufe</groupId>
-            <artifactId>sso-client-java</artifactId>
-            <version>7.0.8</version>
-            <scope>system</scope>
-            <systemPath>${project.basedir}/src/main/resources/lib/sso-client-java-7.0.8.jar</systemPath>
-        </dependency>
-    </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.6.2</version>
-                <configuration>
-                    <includeSystemScope>true</includeSystemScope>
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <groupId>com.spotify</groupId>
-                <artifactId>dockerfile-maven-plugin</artifactId>
-                <version>1.4.12</version>
-                <configuration>
-                    <repository>registry.cn-shenzhen.aliyuncs.com/cdut-exchange</repository>
-                    <tag>${project.version}</tag>
-                    <contextDirectory>${project.baseDir}</contextDirectory>
-                    <useMavenSettingsForAuth>true</useMavenSettingsForAuth>
-                    <pullNewerImage>true</pullNewerImage>
-                    <buildArgs>
-                        <JAR_FILE>target/${project.build.finalName}.jar</JAR_FILE>
-                    </buildArgs>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
-
-</project>

+ 0 - 26
sxufe-exchange/src/main/java/com/qmth/sxufe/SxufeExchangeApplication.java

@@ -1,26 +0,0 @@
-package com.qmth.sxufe;
-
-import com.qmth.boot.core.security.config.SecurityAutoConfiguration;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
-@MapperScan({"com.qmth.teachcloud.exchange.common.mapper"})
-//主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
-@EntityScan(basePackages = {"com.qmth.teachcloud.exchange.common.entity"})
-//用来扫描和发现指定包及其子包中的Entity定义
-@EnableTransactionManagement // spring开启事务支持
-@EnableAsync // 开启异步任务
-@EnableCaching // 开启缓存注解
-public class SxufeExchangeApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(SxufeExchangeApplication.class, args);
-    }
-
-}

+ 0 - 111
sxufe-exchange/src/main/java/com/qmth/sxufe/api/OpenApiController.java

@@ -1,111 +0,0 @@
-package com.qmth.sxufe.api;
-
-import com.qmth.boot.api.annotation.Aac;
-import com.qmth.boot.api.annotation.BOOL;
-import com.qmth.boot.api.constant.ApiConstant;
-import com.qmth.sxufe.utils.CasUtils;
-import com.qmth.sxufe.utils.Constants;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import com.qmth.teachcloud.exchange.common.service.CommonService;
-import com.qmth.teachcloud.exchange.common.util.Result;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiResponse;
-import io.swagger.annotations.ApiResponses;
-import net.psctech.sso.filter.LoginFilter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
-
-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.net.URLEncoder;
-
-/**
- * <p>
- * 山西财经大学开放接口前端控制器
- * </p>
- */
-@Api(tags = "山西财经大学开放接口Controller")
-@RestController
-@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + SystemConstant.PREFIX_URL_OPEN)
-@Validated
-public class OpenApiController {
-    private static final Logger log = LoggerFactory.getLogger(OpenApiController.class);
-    private static final String schoolCode = "sxufe";//测试学校code,山西财经大学
-
-    @Resource
-    CommonService commonService;
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Value("${cas.config.logoutUrl}")
-    String logoutUrl;
-
-    @ApiOperation(value = "cas鉴权接口")
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @RequestMapping(value = "/authentication", method = RequestMethod.GET)
-    @Aac(auth = BOOL.FALSE)
-    public void authentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        authInfoService.appHasExpired(schoolCode);
-
-        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
-        log.info("cas:authentication:object:{}", object);
-        if (object != null) {
-            String targetUrl = CasUtils.getTargetUrl(request);
-            log.info("cas:authentication:targetUrl:{}", targetUrl);
-            // 跳转到知学知考
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(targetUrl);
-        } else {
-            // 返回登录页
-            String loginUrl = URLEncoder.encode(Constants.CAS_BASE_PATH, Constants.UTF_8_STR);
-            log.info("cas:authentication:loginUrl:{}", loginUrl);
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(loginUrl);
-        }
-    }
-
-    @ApiOperation(value = "cas鉴权退出接口")
-    @RequestMapping(value = "/authentication/logout", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void logout(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        authInfoService.appHasExpired(schoolCode);
-        //注销本系统session
-        session.invalidate();
-        log.info("cas:logout:logoutUrl:{}", CasUtils.getLogoutUrl(request));
-        //跳转至注销后地址
-        response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-        response.sendRedirect(CasUtils.getLogoutUrl(request));
-    }
-
-    @ApiOperation(value = "跳转知学知考")
-    @RequestMapping(value = "/authentication/zxzk_login", method = RequestMethod.GET)
-    @ApiResponses({@ApiResponse(code = 200, message = "返回消息", response = Result.class)})
-    @Aac(auth = BOOL.FALSE)
-    public void zxzkLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
-        HttpSession session = request.getSession();
-        String userName = "";
-        Object object = session.getAttribute(LoginFilter.CONST_CAS_USERNAME);
-        if (object != null) {
-            userName = object.toString();
-            commonService.redirectLogic(userName, schoolCode, logoutUrl, null);
-        } else {
-            response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
-            response.sendRedirect(Constants.CAS_LOGIN_URL);
-        }
-
-    }
-}

+ 0 - 44
sxufe-exchange/src/main/java/com/qmth/sxufe/filter/MyWebApplicationInitializer.java

@@ -1,44 +0,0 @@
-package com.qmth.sxufe.filter;
-
-import com.qmth.sxufe.utils.Constants;
-import edu.yale.its.tp.cas.client.filter.CASFilter;
-import org.jasig.cas.client.session.SingleSignOutFilter;
-import org.jasig.cas.client.session.SingleSignOutHttpSessionListener;
-import org.springframework.boot.web.servlet.ServletContextInitializer;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.context.support.WebApplicationContextUtils;
-import org.springframework.web.filter.CharacterEncodingFilter;
-
-import javax.servlet.FilterConfig;
-import javax.servlet.FilterRegistration;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
-import java.util.HashMap;
-import java.util.Map;
-
-@Configuration
-public class MyWebApplicationInitializer implements ServletContextInitializer {
-
-    @Override
-    public void onStartup(ServletContext servletContext) {
-        servletContext.addListener(new SingleSignOutHttpSessionListener());
-        FilterRegistration.Dynamic caslogoutFilter = servletContext.addFilter("caslogoutFilter", SingleSignOutFilter.class);
-        caslogoutFilter.addMappingForUrlPatterns(null, false, "/*");
-
-        FilterRegistration.Dynamic ssoFilter = servletContext.addFilter("SSO Filter", CASFilter.class);
-
-        Map<String, String> map = new HashMap<>();
-        map.put("edu.yale.its.tp.cas.client.filter.loginUrl", Constants.CAS_LOGIN_URL);
-        map.put("edu.yale.its.tp.cas.client.filter.validateUrl", Constants.CAS_VALIDATE_URL);
-        //接入的应用系统IP:Port,需要根据实际路径修改
-
-        WebApplicationContext cxt = WebApplicationContextUtils.getWebApplicationContext(servletContext);
-        String serverName = cxt.getEnvironment().getProperty("cas.filter.serverName");
-        map.put("edu.yale.its.tp.cas.client.filter.serverName", serverName);
-        map.put("edu.yale.its.tp.cas.client.filter.initContextClass", "net.psctech.sso.filter.LoginFilter");
-        ssoFilter.setInitParameters(map);
-
-        ssoFilter.addMappingForUrlPatterns(null, false, "/*");
-    }
-}

+ 0 - 31
sxufe-exchange/src/main/java/com/qmth/sxufe/start/StartRunning.java

@@ -1,31 +0,0 @@
-package com.qmth.sxufe.start;
-
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/7/3
- */
-@Component
-public class StartRunning implements CommandLineRunner {
-    private final static Logger log = LoggerFactory.getLogger(StartRunning.class);
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Override
-    public void run(String... args) {
-        log.info("服务器启动时执行 start");
-        authInfoService.appInfoInit();
-        log.info("服务器启动时执行 end");
-    }
-}

+ 0 - 65
sxufe-exchange/src/main/resources/application.properties

@@ -1,65 +0,0 @@
-server.port=7113
-#tomcat\u6700\u5927\u7EBF\u7A0B\u6570\uFF0C\u9ED8\u8BA4\u4E3A200
-server.tomcat.threads.max=2500
-#tomcat\u6700\u5927\u8FDE\u63A5\u6570
-server.tomcat.max-connections=2500
-#tomcat\u7684URI\u7F16\u7801
-server.tomcat.uri-encoding=UTF-8
-
-server.tomcat.remoteip.protocol-header=X-Forwarded-Proto
-server.tomcat.remoteip.remote-ip-header=X-FORWARDED-FOR
-
-#\u9879\u76EE\u540D\u79F0
-spring.application.name=sxufe-exchange
-
-#\u6570\u636E\u6E90\u914D\u7F6E
-db.host=localhost
-db.port=3306
-db.name=exchange-api-1.0.0
-db.username=root
-db.password=12345678
-
-#mysql\u914D\u7F6E
-com.qmth.datasource.url=jdbc:mysql://${db.host}:${db.port}/${db.name}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
-com.qmth.datasource.username=${db.username}
-com.qmth.datasource.password=${db.password}
-com.qmth.mybatis.log-level=debug
-
-#com.qmth.fss.public.config=../static/
-#com.qmth.fss.public.server=/Users/king/git
-##com.qmth.fss.public.server=/static/
-#com.qmth.fss.private.config=../static/
-#com.qmth.fss.private.server=/Users/king/git
-##com.qmth.fss.private.server=/static/
-#spring.resources.static-locations=file:${com.qmth.fss.private.server},classpath:/META-INF/resources/,classpath:/resources/
-
-#com.qmth.api.uri-prefix=/aaa
-#\u7EDF\u8BA1\u9875\u9762\u914D\u7F6E
-com.qmth.api.metrics-endpoint=/metrics-count
-com.qmth.api.global-auth=true
-#com.qmth.api.global-strict=false
-#com.qmth.api.global-rate-limit=1/5s
-
-#token\u8D85\u65F6\u914D\u7F6E
-com.qmth.auth.time-max-ahead=1m
-com.qmth.auth.time-max-delay=5m
-
-#\u7F13\u5B58\u65F6\u95F4
-com.qmth.cache.expire-after-write=8h
-
-#\u65E5\u671F\u683C\u5F0F\u5316
-spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
-spring.jackson.time-zone=GMT+8
-
-#\u65E5\u5FD7\u914D\u7F6E
-com.qmth.logging.root-level=info
-com.qmth.logging.file-path=/logs/sxufe-exchange.log
-
-#com.qmth.solar.access-key=274f823e5f59410f8b3bb6edcd8e2b6e
-#com.qmth.solar.access-secret=y7AO6W0TOdTF8HpWBwGHbp3wfIHsmUKr
-com.qmth.solar.license=/Users/xiaofei/qmth/share-folder/sxufe.lic
-
-cas.filter.serverName=210.31.120.103:7400
-
-cas.config.teachcloudPrintLoginUrl=http://210.31.120.103:7400/#/login-open
-cas.config.logoutUrl=http://210.31.120.102:7113/api/open/authentication/logout

BIN
sxufe-exchange/src/main/resources/lib/cas-client-core-3.1.12.jar


BIN
sxufe-exchange/src/main/resources/lib/sso-client-java-7.0.8.jar


+ 0 - 13
sxufe-exchange/src/test/java/com/qmth/sxufe/SxufeExchangeApplicationTests.java

@@ -1,13 +0,0 @@
-package com.qmth.sxufe;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class SxufeExchangeApplicationTests {
-
-    @Test
-    void contextLoads() {
-    }
-
-}

+ 2 - 2
teachcloud-exchange-common/pom.xml

@@ -4,13 +4,13 @@
     <modelVersion>4.0.0</modelVersion>
     <groupId>com.qmth.teachcloud.exchange.common</groupId>
     <artifactId>teachcloud-exchange-common</artifactId>
-    <version>1.0.2.1</version>
+    <version>2.0.0.1</version>
     <packaging>jar</packaging>
 
     <parent>
         <groupId>com.qmth.teachcloud.exchange.service</groupId>
         <artifactId>teachcloud-exchange-service</artifactId>
-        <version>1.0.2.1</version>
+        <version>2.0.0.1</version>
     </parent>
 
     <dependencies>

+ 70 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/bean/params/RedirectParams.java

@@ -0,0 +1,70 @@
+package com.qmth.teachcloud.exchange.common.bean.params;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Description: 跳转参数
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+public class RedirectParams implements Serializable {
+
+    @ApiModelProperty("工号")
+    private String employeeNo;
+
+    @ApiModelProperty("学校编码")
+    private String schoolCode;
+
+    @ApiModelProperty("返回url")
+    private String returnUrl;
+
+    @ApiModelProperty("开放参数")
+    private OpenParams openParams;
+
+    public RedirectParams() {
+
+    }
+
+    public RedirectParams(String employeeNo, String schoolCode, String returnUrl, OpenParams openParams) {
+        this.employeeNo = employeeNo;
+        this.schoolCode = schoolCode;
+        this.returnUrl = returnUrl;
+        this.openParams = openParams;
+    }
+
+    public String getEmployeeNo() {
+        return employeeNo;
+    }
+
+    public void setEmployeeNo(String employeeNo) {
+        this.employeeNo = employeeNo;
+    }
+
+    public String getSchoolCode() {
+        return schoolCode;
+    }
+
+    public void setSchoolCode(String schoolCode) {
+        this.schoolCode = schoolCode;
+    }
+
+    public String getReturnUrl() {
+        return returnUrl;
+    }
+
+    public void setReturnUrl(String returnUrl) {
+        this.returnUrl = returnUrl;
+    }
+
+    public OpenParams getOpenParams() {
+        return openParams;
+    }
+
+    public void setOpenParams(OpenParams openParams) {
+        this.openParams = openParams;
+    }
+}

+ 35 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/enums/SchoolCodeEnum.java

@@ -0,0 +1,35 @@
+package com.qmth.teachcloud.exchange.common.enums;
+
+/**
+ * @Description: 学校编码 枚举
+ * @Param:
+ * @return:
+ * @Author: wangliang
+ * @Date: 2023/6/12
+ */
+public enum SchoolCodeEnum {
+
+    XJTU("西安交通大学", "xjtu"),
+
+    CDUT("成都理工大学", "cdut"),
+
+    GDPU("广东药科大学", "gdpu"),
+
+    SXUFE("山西财经大学", "sxufe");
+
+    private final String title;
+    private final String code;
+
+    SchoolCodeEnum(String title, String code) {
+        this.title = title;
+        this.code = code;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public String getCode() {
+        return code;
+    }
+}

+ 11 - 7
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/service/impl/CommonServiceImpl.java

@@ -1,6 +1,7 @@
 package com.qmth.teachcloud.exchange.common.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.qmth.boot.core.cache.service.CacheService;
 import com.qmth.boot.tools.signature.SignatureEntity;
 import com.qmth.boot.tools.signature.SignatureType;
 import com.qmth.teachcloud.exchange.common.bean.params.OpenParams;
@@ -44,6 +45,9 @@ public class CommonServiceImpl implements CommonService {
     @Value("${cas.config.teachcloudPrintLoginUrl}")
     String teachcloudLoginUrl;
 
+    @Resource
+    CacheService cacheService;
+
     /**
      * 跳转方法
      *
@@ -67,14 +71,14 @@ public class CommonServiceImpl implements CommonService {
         }
 //        accountUser = URLDecoder.decode(accountUser, SystemConstant.CHARSET_NAME);
 
-        QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
-        basicSchoolQueryWrapper.lambda().eq(BasicSchool::getCode, schoolCode);
-        BasicSchool basicSchool = basicSchoolService.getOne(basicSchoolQueryWrapper);
-        Optional.ofNullable(basicSchool).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学校信息不存在"));
-
-        if (teachcloudLoginUrl.contains(SystemConstant.PATH_MATCH)) {
-            teachcloudLoginUrl = teachcloudLoginUrl.replace(SystemConstant.PATH_MATCH, basicSchool.getCode());
+        BasicSchool basicSchool = (BasicSchool) cacheService.get(SystemConstant.SCHOOL_CODE_CACHE, schoolCode);
+        if (Objects.isNull(basicSchool)) {
+            QueryWrapper<BasicSchool> basicSchoolQueryWrapper = new QueryWrapper<>();
+            basicSchoolQueryWrapper.lambda().eq(BasicSchool::getCode, schoolCode);
+            basicSchool = basicSchoolService.getOne(basicSchoolQueryWrapper);
         }
+        Optional.ofNullable(basicSchool).orElseThrow(() -> ExceptionResultEnum.PARAMS_ERROR.exception("学校信息不存在"));
+        cacheService.put(SystemConstant.SCHOOL_CODE_CACHE, schoolCode, basicSchool);
 
         long timestamp = System.currentTimeMillis();
         String path = teachcloudLoginUrl.substring(teachcloudLoginUrl.indexOf(SystemConstant.PATH_SUBSTR), teachcloudLoginUrl.length());

+ 11 - 0
teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/util/ServletUtil.java

@@ -12,6 +12,7 @@ import org.springframework.web.context.request.ServletRequestAttributes;
 import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import java.io.IOException;
 import java.util.List;
 import java.util.Objects;
@@ -270,4 +271,14 @@ public class ServletUtil {
         ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
         return servletRequestAttributes.getResponse();
     }
+
+    /**
+     * 获取HttpServletRequest
+     *
+     * @return
+     */
+    public static HttpSession getSession() {
+        ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
+        return servletRequestAttributes.getRequest().getSession();
+    }
 }

+ 0 - 33
xjtu-exchange/.gitignore

@@ -1,33 +0,0 @@
-HELP.md
-target/
-!.mvn/wrapper/maven-wrapper.jar
-!**/src/main/**/target/
-!**/src/test/**/target/
-
-### STS ###
-.apt_generated
-.classpath
-.factorypath
-.project
-.settings
-.springBeans
-.sts4-cache
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### NetBeans ###
-/nbproject/private/
-/nbbuild/
-/dist/
-/nbdist/
-/.nb-gradle/
-build/
-!**/src/main/**/build/
-!**/src/test/**/build/
-
-### VS Code ###
-.vscode/

+ 0 - 25
xjtu-exchange/src/main/java/com/qmth/xjtu/XjtuExchangeApplication.java

@@ -1,25 +0,0 @@
-package com.qmth.xjtu;
-
-import com.qmth.boot.core.security.config.SecurityAutoConfiguration;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.autoconfigure.domain.EntityScan;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.scheduling.annotation.EnableAsync;
-import org.springframework.transaction.annotation.EnableTransactionManagement;
-
-@SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
-@MapperScan({"com.qmth.teachcloud.exchange.common.mapper"})
-//主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
-@EntityScan(basePackages = {"com.qmth.teachcloud.exchange.common.entity"})
-//用来扫描和发现指定包及其子包中的Entity定义
-@EnableTransactionManagement // spring开启事务支持
-@EnableAsync // 开启异步任务
-@EnableCaching // 开启缓存注解
-public class XjtuExchangeApplication {
-
-    public static void main(String[] args) {
-        SpringApplication.run(XjtuExchangeApplication.class, args);
-    }
-}

+ 0 - 88
xjtu-exchange/src/main/java/com/qmth/xjtu/aspect/ApiControllerAspect.java

@@ -1,88 +0,0 @@
-package com.qmth.xjtu.aspect;
-
-import com.qmth.boot.api.exception.ApiException;
-import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
-import com.qmth.teachcloud.exchange.common.util.JacksonUtil;
-import com.qmth.teachcloud.exchange.common.util.ResultUtil;
-import com.qmth.teachcloud.exchange.common.util.ServletUtil;
-import org.aspectj.lang.ProceedingJoinPoint;
-import org.aspectj.lang.annotation.Around;
-import org.aspectj.lang.annotation.Aspect;
-import org.aspectj.lang.annotation.Pointcut;
-import org.aspectj.lang.reflect.MethodSignature;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-import org.springframework.validation.BeanPropertyBindingResult;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.commons.CommonsMultipartFile;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.util.Objects;
-import java.util.StringJoiner;
-
-/**
- * @Description: api aspect
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/5/12
- */
-@Aspect
-@Component
-public class ApiControllerAspect {
-    private final static Logger log = LoggerFactory.getLogger(ApiControllerAspect.class);
-
-    /**
-     * api切入点
-     */
-    @Pointcut("execution(public * com.qmth.xjtu.api.*.*(..))")
-    public void apiAspect() {
-    }
-
-    /**
-     * 后台环绕切入
-     *
-     * @param joinPoint
-     * @return
-     * @throws Throwable
-     */
-    @Around(value = "apiAspect()")
-    public Object aroundApiPoint(ProceedingJoinPoint joinPoint) throws Throwable {
-        long start = System.currentTimeMillis();
-        StringJoiner stringJoiner = new StringJoiner("");
-        try {
-            MethodSignature msig = (MethodSignature) joinPoint.getSignature();
-            String className = msig.getDeclaringTypeName();
-            String methodName = msig.getName();
-            Object[] args = joinPoint.getArgs();
-            String[] paramsName = msig.getParameterNames();
-            HttpServletRequest request = ServletUtil.getRequest();
-            stringJoiner.add("============请求地址============:").add(request.getServletPath()).add("\r\n");
-            stringJoiner.add("============类============:").add(className).add("\r\n");
-            stringJoiner.add("============方法============:").add(methodName).add("\r\n");
-            if (Objects.nonNull(args) && args.length > 0) {
-                for (int i = 0; i < args.length; i++) {
-                    if (Objects.nonNull(args[i]) && (args[i] instanceof HttpServletRequest || args[i] instanceof HttpServletResponse || args[i] instanceof CommonsMultipartFile || args[i] instanceof MultipartFile || args[i] instanceof BeanPropertyBindingResult)) {
-                        continue;
-                    } else {
-                        stringJoiner.add("参数key:").add(JacksonUtil.parseJson(paramsName[i])).add(",参数value:").add(JacksonUtil.parseJson(args[i])).add("\r\n");
-                    }
-                }
-            }
-            return joinPoint.proceed();
-        } catch (Exception e) {
-            log.error(SystemConstant.LOG_ERROR, e);
-            if (e instanceof ApiException) {
-                return ResultUtil.error((ApiException) e, e.getMessage());
-            } else {
-                return ResultUtil.error(e.getMessage());
-            }
-        } finally {
-            long end = System.currentTimeMillis();
-            stringJoiner.add("============耗时============:").add((end - start) / 1000 + "").add("秒");
-            log.info("request:{}", stringJoiner.toString());
-        }
-    }
-}

+ 0 - 31
xjtu-exchange/src/main/java/com/qmth/xjtu/start/StartRunning.java

@@ -1,31 +0,0 @@
-package com.qmth.xjtu.start;
-
-import com.qmth.teachcloud.exchange.common.service.AuthInfoService;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.Resource;
-
-/**
- * @Description: 服务启动时初始化运行,哪个微服务模块需要则拿此模版去用
- * @Param:
- * @return:
- * @Author: wangliang
- * @Date: 2020/7/3
- */
-@Component
-public class StartRunning implements CommandLineRunner {
-    private final static Logger log = LoggerFactory.getLogger(StartRunning.class);
-
-    @Resource
-    AuthInfoService authInfoService;
-
-    @Override
-    public void run(String... args) throws Exception {
-        log.info("服务器启动时执行 start");
-        authInfoService.appInfoInit();
-        log.info("服务器启动时执行 end");
-    }
-}

+ 0 - 13
xjtu-exchange/src/test/java/com/qmth/xjtu/XjtuExchangeApplicationTests.java

@@ -1,13 +0,0 @@
-package com.qmth.xjtu;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.boot.test.context.SpringBootTest;
-
-@SpringBootTest
-class XjtuExchangeApplicationTests {
-
-    @Test
-    void contextLoads() {
-    }
-
-}