Explorar o código

新增成都理工cas

wangliang %!s(int64=2) %!d(string=hai) anos
pai
achega
011cd067ce

+ 33 - 0
cdut-exchange/.gitignore

@@ -0,0 +1,33 @@
+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/

+ 62 - 0
cdut-exchange/pom.xml

@@ -0,0 +1,62 @@
+<?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.0</version>
+    <packaging>jar</packaging>
+
+    <parent>
+        <groupId>com.qmth.teachcloud.exchange.service</groupId>
+        <artifactId>teachcloud-exchange-service</artifactId>
+        <version>1.0.0</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>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <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>

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

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

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

@@ -0,0 +1,175 @@
+package com.qmth.cdut.api;
+
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+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.exchange.common.bean.params.OpenParams;
+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.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.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.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Objects;
+import java.util.StringJoiner;
+
+/**
+ * <p>
+ * 西安交通大学开放接口前端控制器
+ * </p>
+ *
+ * @author wangliang
+ * @since 2022-04-26
+ */
+@Api(tags = "西安交通大学开放接口Controller")
+@RestController
+@RequestMapping(ApiConstant.DEFAULT_URI_PREFIX + "/${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 RETURN_URL = "https://org.xjtu.edu.cn/openplatform/login.html";
+    private static final String schoolCode = "xjtu";//测试学校code,正式改成xjtu
+
+    @Resource
+    CommonService commonService;
+
+    @Resource
+    AuthInfoService authInfoService;
+
+    @Value("${cas.config.logoutUrl}")
+    String logoutUrl;
+
+    @Value("${cas.config.returnUrl}")
+    String returnUrl;
+
+    @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 {
+        if ((Objects.isNull(code) || Objects.equals(code, ""))
+                || (Objects.isNull(employeeNo) || Objects.equals(employeeNo, ""))) {
+            throw ExceptionResultEnum.ERROR.exception("请先通过学校地址登录");
+        }
+        authInfoService.appHasExpired(schoolCode);
+
+        Map<String, Object> accessTokenParams = new LinkedHashMap<>();
+        accessTokenParams.put("code", code);
+        String accessTokenResult = HttpUtil.post(ACCESS_TOKEN_URL, accessTokenParams, null);
+        String accessToken = null, gsessionId = null;
+
+        //获取accessToken
+        if (Objects.nonNull(accessTokenResult)) {
+            log.info("accessTokenResult:{}", JacksonUtil.parseJson(accessTokenResult));
+            JSONObject jsonObject = JSONObject.parseObject(accessTokenResult);
+            JSONObject object = jsonObject.getJSONObject("data");
+            String message = jsonObject.getString("message");
+            if (Objects.nonNull(object) && Objects.nonNull(message) && Objects.equals(message, "成功")) {
+                accessToken = object.getString("accessToken");
+                gsessionId = object.getString("gsessionId");
+            } else {
+                throw ExceptionResultEnum.ERROR.exception(message);
+            }
+        }
+
+        OpenParams openParams = null;
+        //获取用户信息
+        if (Objects.nonNull(accessToken)) {
+            String userInfoResult = HttpUtil.post(USER_INFO_URL, null, accessToken);
+            if (Objects.nonNull(userInfoResult)) {
+                log.info("userInfoResult:{}", JacksonUtil.parseJson(userInfoResult));
+                openParams = new OpenParams();
+//                openParams.setResult(JacksonUtil.parseJson(userInfoResult));
+                JSONObject jsonObject = JSONObject.parseObject(userInfoResult);
+                JSONObject object = jsonObject.getJSONObject("data");
+                String message = jsonObject.getString("message");
+                JSONArray userTypeJsonArray = object.getJSONArray("userTypes");
+                JSONArray deptInfoJsonArray = object.getJSONArray("deptInfos");
+                if (Objects.nonNull(object) && Objects.nonNull(message) && Objects.equals(message, "成功")) {
+                    openParams.setOrgName(object.getString("orgName"));
+                    if (Objects.nonNull(userTypeJsonArray) && userTypeJsonArray.size() > 0) {
+                        JSONObject userTypeJsonObject = userTypeJsonArray.getJSONObject(0);
+                        openParams.setName(userTypeJsonObject.getString("memberName"));
+                        Integer userTypeRole = userTypeJsonObject.getInteger("userType");
+                        if (Objects.nonNull(userTypeRole) && userTypeRole.intValue() == 1) {
+                            openParams.setRoleName("学生");
+                        } else if (Objects.nonNull(userTypeRole) && userTypeRole.intValue() == 2) {
+                            openParams.setRoleName("教职工");
+                        }
+                    }
+                    if (Objects.nonNull(deptInfoJsonArray) && deptInfoJsonArray.size() > 0) {
+                        JSONObject deptInfoJsonArrayJsonObject = deptInfoJsonArray.getJSONObject(0);
+                        openParams.setDeptName(deptInfoJsonArrayJsonObject.getString("deptName"));
+                    }
+                } else {
+                    throw ExceptionResultEnum.ERROR.exception(message);
+                }
+            }
+        }
+
+        //登出
+        if (Objects.nonNull(gsessionId)) {
+            StringJoiner stringJoiner = new StringJoiner("");
+            stringJoiner.add(logoutUrl).add(SystemConstant.GET_UNKNOWN).add("gSessionId")
+                    .add(SystemConstant.GET_EQUAL).add(gsessionId);
+            returnUrl = stringJoiner.toString();
+        } else {
+            throw ExceptionResultEnum.ERROR.exception("gSessionId为空");
+        }
+
+        commonService.redirectLogic(employeeNo, schoolCode, returnUrl, Objects.nonNull(openParams) ? JacksonUtil.parseJson(openParams) : null);
+    }
+
+    @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 {
+        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(schoolCode);
+        Map<String, Object> logoutParams = new LinkedHashMap<>();
+        logoutParams.put("gSessionId", gSessionId);
+        String logoutResult = HttpUtil.post(LOGOUT_URL, logoutParams, null);
+        if (Objects.nonNull(logoutResult)) {
+            log.info("logoutResult:{}", JacksonUtil.parseJson(logoutResult));
+            JSONObject jsonObject = JSONObject.parseObject(logoutResult);
+            String message = jsonObject.getString("message");
+            if (Objects.nonNull(message) && Objects.equals(message, "成功")) {
+                HttpServletResponse response = ServletUtil.getResponse();
+                response.setHeader("Access-Control-Allow-Origin", SystemConstant.PATH_MATCH);
+                response.sendRedirect(returnUrl);
+            }
+        }
+    }
+}

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

@@ -0,0 +1,88 @@
+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.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());
+        }
+    }
+}

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

@@ -0,0 +1,31 @@
+package com.qmth.cdut.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");
+    }
+}

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

@@ -0,0 +1,80 @@
+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
+
+#\u9879\u76EE\u540D\u79F0
+spring.application.name=xjtu-exchange
+
+#\u6570\u636E\u6E90\u914D\u7F6E
+db.host=localhost
+db.port=3306
+db.name=exchange-v1.0.0
+db.username=root
+db.password=123456789
+
+#redis\u6570\u636E\u6E90\u914D\u7F6E
+com.qmth.redis.host=${db.host}
+com.qmth.redis.port=6379
+com.qmth.redis.db=2
+#com.qmth.redis.password=
+
+#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=oss://key:secret@teachcloud-print-dev-public.oss-api.qmth.com.cn
+com.qmth.fss.public.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-public
+com.qmth.fss.private.config=oss://key:secret@teachcloud-print-dev-private.oss-api.qmth.com.cn
+com.qmth.fss.private.server=https://oss-file.qmth.com.cn/teachcloud-print-dev-private
+com.qmth.fss.localfile.config=/Users/king/Downloads/file-temp
+com.qmth.fss.localfile.server=http://127.0.0.1:7001
+com.qmth.fss.localpdf.config=/Users/king/Downloads/pdf-temp
+com.qmth.fss.localpdf.server=http://127.0.0.1:7001
+
+#\u7CFB\u7EDF\u914D\u7F6E
+sys.config.oss=true
+sys.config.attachmentType=.xlsx,.xls,.doc,.docx,.pdf,.jpg,.jpeg,.png,.html,.zip,.mp3,.wav,.dll,.exe,.ftl,.bpmn,.xml
+sys.config.attachmentLength=100
+sys.config.attachmentSize=200
+sys.config.serverUpload=
+spring.resources.static-locations=file:${sys.config.serverUpload},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
+
+#api\u524D\u7F00
+prefix.url.open=open
+
+#\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=/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=https://*.teach-cloud-test.com/#/login-open
+#cas.config.teachcloudPrintLoginUrl=http://192.168.10.99:8056/#/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

+ 13 - 0
cdut-exchange/src/test/java/com/qmth/cdut/CdutExchangeApplicationTests.java

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

+ 6 - 0
pom.xml

@@ -10,6 +10,7 @@
     <modules>
         <module>teachcloud-exchange-common</module>
         <module>xjtu-exchange</module>
+        <module>cdut-exchange</module>
     </modules>
 
     <properties>
@@ -61,6 +62,11 @@
                 <artifactId>xjtu-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.boot</groupId>
                 <artifactId>starter-api</artifactId>

+ 2 - 2
xjtu-exchange/src/main/java/com/qmth/xjtu/config/MapApiReader.java → teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/config/MapApiReader.java

@@ -1,4 +1,4 @@
-package com.qmth.xjtu.config;
+package com.qmth.teachcloud.exchange.common.config;
 
 import com.fasterxml.classmate.TypeResolver;
 import com.google.common.base.Optional;
@@ -57,7 +57,7 @@ public class MapApiReader implements ParameterBuilderPlugin {
         }
     }
 
-    private final static String basePackage = "com.qmth.teachcloud.entity.";  //动态生成的Class名
+    private final static String basePackage = "com.qmth.teachcloud.exchange.";  //动态生成的Class名
 
     /**
      * 根据propertys中的值动态生成含有Swagger注解的javaBeen

+ 1 - 1
xjtu-exchange/src/main/java/com/qmth/xjtu/config/MetaHandler.java → teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/config/MetaHandler.java

@@ -1,4 +1,4 @@
-package com.qmth.xjtu.config;
+package com.qmth.teachcloud.exchange.common.config;
 
 import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
 import org.apache.ibatis.reflection.MetaObject;

+ 1 - 1
xjtu-exchange/src/main/java/com/qmth/xjtu/config/MultipartConfig.java → teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/config/MultipartConfig.java

@@ -1,4 +1,4 @@
-package com.qmth.xjtu.config;
+package com.qmth.teachcloud.exchange.common.config;
 
 import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
 import org.springframework.context.annotation.Bean;

+ 2 - 2
xjtu-exchange/src/main/java/com/qmth/xjtu/config/SwaggerConfig.java → teachcloud-exchange-common/src/main/java/com/qmth/teachcloud/exchange/common/config/SwaggerConfig.java

@@ -1,4 +1,4 @@
-package com.qmth.xjtu.config;
+package com.qmth.teachcloud.exchange.common.config;
 
 import com.google.common.base.Predicates;
 import com.qmth.teachcloud.exchange.common.contant.SystemConstant;
@@ -65,7 +65,7 @@ public class SwaggerConfig {
 
     private ApiInfo apiInfo() {
         ApiInfo apiInfo = new ApiInfo(
-                "西安交通大学-cas单点登录 - api",
+                "快捷登录系统-cas单点登录 - api",
                 "Some custom description of API.",
                 "API TOS",
                 "Terms of service",

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

@@ -1,9 +1,7 @@
 package com.qmth.xjtu;
 
 import com.qmth.boot.core.security.config.SecurityAutoConfiguration;
-import com.qmth.boot.core.security.service.CustomizeAuthorizationService;
 import com.qmth.teachcloud.exchange.common.base.CustomizedSqlInjector;
-import com.qmth.xjtu.auth.XjtuAuthenticationService;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
@@ -13,8 +11,6 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
-import javax.annotation.Resource;
-
 @SpringBootApplication(scanBasePackages = "com.qmth.*", exclude = {SecurityAutoConfiguration.class})
 @MapperScan({"com.qmth.teachcloud.exchange.business.mapper", "com.qmth.teachcloud.exchange.common.mapper"})
 //主要就是定义扫描的路径从中找出标识了需要装配的类自动装配到spring的bean容器中,做过web开发的同学一定都有用过@Controller,@Service,@Repository注解,查看其源码你会发现,他们中有一个共同的注解@Component,没错@ComponentScan注解默认就会装配标识了@Controller,@Service,@Repository,@Component注解的类到spring容器中
@@ -29,16 +25,6 @@ public class XjtuExchangeApplication {
         SpringApplication.run(XjtuExchangeApplication.class, args);
     }
 
-    @Resource
-    private XjtuAuthenticationService xjtuAuthenticationService;
-
-    @Bean
-    public CustomizeAuthorizationService customizeAuthorizationService() {
-        return registration -> {
-            registration.setDefault(xjtuAuthenticationService);
-        };
-    }
-
     @Bean
     public CustomizedSqlInjector customizedSqlInjector() {
         return new CustomizedSqlInjector();

+ 0 - 48
xjtu-exchange/src/main/java/com/qmth/xjtu/auth/XjtuAuthenticationService.java

@@ -1,48 +0,0 @@
-package com.qmth.xjtu.auth;
-
-import com.qmth.boot.core.security.model.AccessEntity;
-import com.qmth.boot.core.security.service.AuthorizationService;
-import com.qmth.boot.tools.signature.SignatureType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Component;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-@Component
-public class XjtuAuthenticationService implements AuthorizationService {
-    private final static Logger log = LoggerFactory.getLogger(XjtuAuthenticationService.class);
-
-    @Override
-    public AccessEntity findByIdentity(String identity, SignatureType signatureType, String path) {
-        return new XjuSession(identity, SignatureType.TOKEN);
-    }
-
-    @Override
-    public boolean hasPermission(AccessEntity accessEntity, String path) {
-        return true;
-    }
-
-    /**
-     * 鉴权尾公用
-     *
-     * @param userId
-     * @param type
-     * @param path
-     * @param request
-     * @param response
-     * @return
-     */
-    public boolean authFootCommon(Long userId,
-                                  String type,
-                                  String path,
-                                  HttpServletRequest request,
-                                  HttpServletResponse response) {
-
-//        if (Objects.nonNull(authBean.getSchool())) {
-//            authInfoService.appHasExpired(authBean.getSchool().getCode());
-//        }
-        return true;
-    }
-}

+ 0 - 50
xjtu-exchange/src/main/java/com/qmth/xjtu/auth/XjuSession.java

@@ -1,50 +0,0 @@
-package com.qmth.xjtu.auth;
-
-import com.qmth.boot.core.security.model.AccessEntity;
-import com.qmth.boot.tools.signature.SignatureType;
-
-import java.util.Collection;
-
-public class XjuSession implements AccessEntity {
-
-    private String identity;
-
-    private SignatureType signatureType;
-
-    public XjuSession(String identity, SignatureType signatureType) {
-        this.identity = identity;
-        this.signatureType = signatureType;
-    }
-
-    public void setIdentity(String identity) {
-        this.identity = identity;
-    }
-
-    @Override
-    public String getIdentity() {
-        return identity;
-    }
-
-    @Override
-    public String getSecret() {
-        return null;
-    }
-
-    @Override
-    public Collection<String> getAllowIP() {
-        return null;
-    }
-
-    @Override
-    public Collection<String> getDenyIP() {
-        return null;
-    }
-
-    public SignatureType getSignatureType() {
-        return signatureType;
-    }
-
-    public void setSignatureType(SignatureType signatureType) {
-        this.signatureType = signatureType;
-    }
-}

+ 0 - 45
xjtu-exchange/src/main/java/com/qmth/xjtu/interceptor/AuthInterceptor.java

@@ -1,45 +0,0 @@
-package com.qmth.xjtu.interceptor;
-
-import com.qmth.boot.api.interceptor.ExtendInterceptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.lang.Nullable;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-@Component
-public class AuthInterceptor extends ExtendInterceptor {
-    private final static Logger log = LoggerFactory.getLogger(AuthInterceptor.class);
-
-    @Value("${com.qmth.api.metrics-endpoint}")
-    String endpoint;
-
-    @Override
-    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        log.info("preHandle is come in");
-//        if (request.getServletPath().contains(endpoint)) {
-        return true;
-//        } else {
-//            return AuthUtil.adminAuthInterceptor(request, response, handler);
-//        }
-    }
-
-    @Override
-    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable ModelAndView modelAndView) throws Exception {
-        log.info("postHandle is come in");
-    }
-
-    @Override
-    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, @Nullable Exception ex) throws Exception {
-        log.info("afterCompletion is come in");
-    }
-
-    @Override
-    public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-        log.info("afterConcurrentHandlingStarted is come in");
-    }
-}