Commit 820f688d8bdbac13aada4bf60841d2a6fa2100cf

Authored by 陈杰
1 parent e2822531
Exists in master

网关

Showing 35 changed files with 692 additions and 909 deletions   Show diff stats
cloud/common/pom.xml
@@ -22,6 +22,11 @@ @@ -22,6 +22,11 @@
22 22
23 <dependencies> 23 <dependencies>
24 <dependency> 24 <dependency>
  25 + <groupId>com.nimbusds</groupId>
  26 + <artifactId>nimbus-jose-jwt</artifactId>
  27 + <version>6.0</version>
  28 + </dependency>
  29 + <dependency>
25 <groupId>redis.clients</groupId> 30 <groupId>redis.clients</groupId>
26 <artifactId>jedis</artifactId> 31 <artifactId>jedis</artifactId>
27 <version>2.9.0</version> 32 <version>2.9.0</version>
@@ -32,19 +37,11 @@ @@ -32,19 +37,11 @@
32 <version>4.3</version> 37 <version>4.3</version>
33 </dependency> 38 </dependency>
34 <dependency> 39 <dependency>
35 - <groupId>org.apache.tomcat.embed</groupId>  
36 - <artifactId>tomcat-embed-core</artifactId>  
37 - </dependency>  
38 - <dependency>  
39 <groupId>io.jsonwebtoken</groupId> 40 <groupId>io.jsonwebtoken</groupId>
40 <artifactId>jjwt</artifactId> 41 <artifactId>jjwt</artifactId>
41 <version>0.9.0</version> 42 <version>0.9.0</version>
42 </dependency> 43 </dependency>
43 <dependency> 44 <dependency>
44 - <groupId>org.springframework.security</groupId>  
45 - <artifactId>spring-security-core</artifactId>  
46 - </dependency>  
47 - <dependency>  
48 <groupId>org.projectlombok</groupId> 45 <groupId>org.projectlombok</groupId>
49 <artifactId>lombok</artifactId> 46 <artifactId>lombok</artifactId>
50 </dependency> 47 </dependency>
@@ -56,12 +53,12 @@ @@ -56,12 +53,12 @@
56 <dependency> 53 <dependency>
57 <groupId>io.springfox</groupId> 54 <groupId>io.springfox</groupId>
58 <artifactId>springfox-swagger2</artifactId> 55 <artifactId>springfox-swagger2</artifactId>
59 - <version>2.5.0</version> 56 + <version>2.9.2</version>
60 </dependency> 57 </dependency>
61 <dependency> 58 <dependency>
62 <groupId>io.springfox</groupId> 59 <groupId>io.springfox</groupId>
63 <artifactId>springfox-swagger-ui</artifactId> 60 <artifactId>springfox-swagger-ui</artifactId>
64 - <version>2.5.0</version> 61 + <version>2.9.2</version>
65 </dependency> 62 </dependency>
66 <dependency> 63 <dependency>
67 <groupId>commons-net</groupId> 64 <groupId>commons-net</groupId>
cloud/common/src/main/java/com/sincere/common/commons/PageResult.java
@@ -1,30 +0,0 @@ @@ -1,30 +0,0 @@
1 -package com.sincere.common.commons;  
2 -  
3 -import lombok.AllArgsConstructor;  
4 -import lombok.Builder;  
5 -import lombok.Data;  
6 -import lombok.NoArgsConstructor;  
7 -  
8 -import java.io.Serializable;  
9 -import java.util.List;  
10 -  
11 -  
12 -/**  
13 - * @author 作者 owen E-mail: 624191343@qq.com  
14 - * @version 创建时间:2017年11月12日 上午22:57:51  
15 - * 分页实体类  
16 - * total 总数  
17 - * code 是否成功  
18 - * data 当前页结果集  
19 - */  
20 -@Data  
21 -@Builder  
22 -@NoArgsConstructor  
23 -@AllArgsConstructor  
24 -public class PageResult<T> implements Serializable {  
25 -  
26 - private static final long serialVersionUID = -275582248840137389L;  
27 - private Long count;  
28 - private int code;  
29 - private List<T> data;  
30 -}  
cloud/common/src/main/java/com/sincere/common/commons/Result.java
@@ -1,49 +0,0 @@ @@ -1,49 +0,0 @@
1 -//package com.sincere.common.commons;  
2 -//  
3 -//import lombok.AllArgsConstructor;  
4 -//import lombok.Data;  
5 -//import lombok.NoArgsConstructor;  
6 -//  
7 -//import java.io.Serializable;  
8 -//  
9 -///**  
10 -// * @Author: [zhangzhiguang]  
11 -// * @Date: [2018-08-01 23:39]  
12 -// * @Description: [ ]  
13 -// * @Version: [1.0.0]  
14 -// * @Copy: [com.zzg]  
15 -// */  
16 -//@Data  
17 -//@NoArgsConstructor  
18 -//@AllArgsConstructor  
19 -//public class Result<T> implements Serializable {  
20 -//  
21 -// private T datas;  
22 -// private Integer resp_code;  
23 -// private String resp_msg;  
24 -//  
25 -// public static <T> Result<T> succeed(String msg) {  
26 -// return succeedWith(null, CodeEnum.SUCCESS.getCode(),msg);  
27 -// }  
28 -//  
29 -// public static <T> Result<T> succeed(T model, String msg) {  
30 -// return succeedWith(model, CodeEnum.SUCCESS.getCode(),msg);  
31 -// }  
32 -//  
33 -// public static <T> Result<T> succeedWith(T datas, Integer code,String msg) {  
34 -// return new Result<T>(datas, code, msg);  
35 -// }  
36 -//  
37 -// public static <T> Result<T> failed(String msg) {  
38 -// return failedWith(null, CodeEnum.ERROR.getCode(), msg);  
39 -// }  
40 -//  
41 -// public static <T> Result<T> failed(T model,String msg) {  
42 -// return failedWith(model, CodeEnum.ERROR.getCode(), msg);  
43 -// }  
44 -//  
45 -// public static <T> Result<T> failedWith(T datas, Integer code, String msg) {  
46 -// return new Result<T>( datas, code, msg);  
47 -// }  
48 -//  
49 -//}  
cloud/common/src/main/java/com/sincere/common/exception/ResultEnums.java 0 → 100644
@@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
  1 +package com.sincere.common.exception;
  2 +
  3 +public enum ResultEnums {
  4 + success(0,"成功"),
  5 + not_avail(-1,"token无效"),
  6 + expire(-2,"token过期"),
  7 + account_null(-3,"账号为空"),
  8 + error(-4,"系统繁忙"),
  9 + no_token(-5,"没有传token");
  10 +
  11 + private int code ;
  12 + private String message ;
  13 +
  14 + ResultEnums(int code, String message) {
  15 + this.code = code;
  16 + this.message = message;
  17 + }
  18 +
  19 + public int getCode() {
  20 + return code;
  21 + }
  22 +
  23 + public void setCode(int code) {
  24 + this.code = code;
  25 + }
  26 +
  27 + public String getMessage() {
  28 + return message;
  29 + }
  30 +
  31 + public void setMessage(String message) {
  32 + this.message = message;
  33 + }
  34 +
  35 + public static ResultEnums getByCode(int code){
  36 + for(ResultEnums enums :ResultEnums.values()){
  37 + if(enums.getCode() == code){
  38 + return enums ;
  39 + }
  40 + }
  41 + return ResultEnums.error ;
  42 + }
  43 +}
cloud/common/src/main/java/com/sincere/common/props/PermitUrlProperties.java
@@ -1,55 +0,0 @@ @@ -1,55 +0,0 @@
1 -package com.sincere.common.props;  
2 -  
3 -import org.springframework.boot.context.properties.ConfigurationProperties;  
4 -  
5 -import java.util.ArrayList;  
6 -import java.util.List;  
7 -  
8 -/**  
9 - * @author 作者 owen E-mail: 624191343@qq.com  
10 - * @version 创建时间:2017年11月12日 上午22:57:51 url白名单处理 application.yml中配置需要放权的url白名单  
11 - */  
12 -// @ConfigurationProperties(prefix = "permit")  
13 -@ConfigurationProperties(prefix = "security.oauth2")  
14 -public class PermitUrlProperties {  
15 -  
16 - /**  
17 - * 监控中心和swagger需要访问的url  
18 - */  
19 - private static final String[] ENDPOINTS = {  
20 - "/**/actuator/**" , "/**/actuator/**/**" , //断点监控  
21 - "/**/v2/api-docs/**", "/**/swagger-ui.html", "/**/swagger-resources/**", "/**/webjars/**", //swagger  
22 - "/**/turbine.stream","/**/turbine.stream**/**", "/**/hystrix", "/**/hystrix.stream", "/**/hystrix/**", "/**/hystrix/**/**", "/**/proxy.stream/**" , //熔断监控  
23 - "/**/druid/**", "/**/favicon.ico", "/**/prometheus"  
24 - };  
25 -  
26 - private String[] ignored;  
27 -  
28 - /**  
29 - * 需要放开权限的url  
30 - *  
31 - * @param urls  
32 - * 自定义的url  
33 - * @return 自定义的url和监控中心需要访问的url集合  
34 - */  
35 - public String[] getIgnored() {  
36 - if (ignored == null || ignored.length == 0) {  
37 - return ENDPOINTS;  
38 - }  
39 -  
40 - List<String> list = new ArrayList<>();  
41 - for (String url : ENDPOINTS) {  
42 - list.add(url);  
43 - }  
44 - for (String url : ignored) {  
45 - list.add(url);  
46 - }  
47 -  
48 - return list.toArray(new String[list.size()]);  
49 - }  
50 -  
51 - public void setIgnored(String[] ignored) {  
52 - this.ignored = ignored;  
53 - }  
54 -  
55 -}  
cloud/common/src/main/java/com/sincere/common/util/ExcelUtils.java
1 -package com.sincere.common.util;  
2 -  
3 -import com.google.common.base.Strings;  
4 -import org.apache.commons.lang3.StringUtils;  
5 -import org.apache.poi.hssf.usermodel.HSSFCell;  
6 -import org.apache.poi.hssf.usermodel.HSSFRow;  
7 -import org.apache.poi.hssf.usermodel.HSSFSheet;  
8 -import org.apache.poi.hssf.usermodel.HSSFWorkbook;  
9 -  
10 -import javax.servlet.http.HttpServletRequest;  
11 -import javax.servlet.http.HttpServletResponse;  
12 -import java.io.IOException;  
13 -import java.io.OutputStream;  
14 -import java.math.BigDecimal;  
15 -import java.util.List;  
16 -import java.util.Map;  
17 -  
18 -/**  
19 - * @author chen  
20 - * @version 1.0  
21 - * @date 2019/10/16 0016 18:46  
22 - */  
23 -public class ExcelUtils {  
24 -  
25 - //各个列的表头  
26 - private List<String> heardList;  
27 - //各个列的元素key值  
28 - private List<String> heardKey;  
29 - //需要填充的数据信息  
30 - private List<Map<String,String>> data;  
31 - //工作表  
32 - private String sheetName = "模板";  
33 -  
34 -  
35 - public List<String> getHeardList() {  
36 - return heardList;  
37 - }  
38 -  
39 - public void setHeardList(List<String> heardList) {  
40 - this.heardList = heardList;  
41 - }  
42 -  
43 - public List<String> getHeardKey() {  
44 - return heardKey;  
45 - }  
46 -  
47 - public void setHeardKey(List<String> heardKey) {  
48 - this.heardKey = heardKey;  
49 - }  
50 -  
51 - public List<Map<String, String>> getData() {  
52 - return data;  
53 - }  
54 -  
55 - public void setData(List<Map<String, String>> data) {  
56 - this.data = data;  
57 - }  
58 -  
59 - public String getSheetName() {  
60 - return sheetName;  
61 - }  
62 -  
63 - public void setSheetName(String sheetName) {  
64 - this.sheetName = sheetName;  
65 - }  
66 -  
67 - /**  
68 - * 开始导出数据信息  
69 - *  
70 - */  
71 - public byte[] exportExport(HttpServletRequest request, HttpServletResponse response) throws IOException {  
72 - //检查参数配置信息  
73 - checkConfig();  
74 - //创建工作簿  
75 - HSSFWorkbook wb = new HSSFWorkbook();  
76 - //创建工作表  
77 - HSSFSheet wbSheet = wb.createSheet(this.sheetName);  
78 -  
79 - //在第0行创建rows  
80 - HSSFRow row = wbSheet.createRow((int)0);  
81 - //设置列头元素  
82 - HSSFCell cellHead = null;  
83 - for (int i = 0; i < heardList.size(); i++) {  
84 - cellHead = row.createCell(i);  
85 - cellHead.setCellValue(heardList.get(i));  
86 - }  
87 - //开始写入实体数据信息  
88 - int a = 1;  
89 - for (int i = 0; i < data.size(); i++) {  
90 - HSSFRow roww = wbSheet.createRow((int) a);  
91 - Map map = data.get(i);  
92 - HSSFCell cell = null;  
93 - for (int j = 0; j < heardKey.size(); j++) {  
94 - cell = roww.createCell(j);  
95 - Object valueObject = map.get(heardKey.get(j));  
96 - String value = null;  
97 - if (valueObject == null) {  
98 - valueObject = "";  
99 - }  
100 - if (valueObject instanceof String) {  
101 - //取出的数据是字符串直接赋值  
102 - value = (String) map.get(heardKey.get(j));  
103 - } else if (valueObject instanceof Integer) {  
104 - //取出的数据是Integer  
105 - value = String.valueOf(((Integer) (valueObject)).floatValue());  
106 - } else if (valueObject instanceof BigDecimal) {  
107 - //取出的数据是BigDecimal  
108 - value = String.valueOf(((BigDecimal) (valueObject)).floatValue());  
109 - } else {  
110 - value = valueObject.toString();  
111 - }  
112 - cell.setCellValue(Strings.isNullOrEmpty(value) ? "" : value);  
113 - }  
114 - a++;  
115 - }  
116 -  
117 - //导出数据  
118 - try {  
119 - //设置Http响应头告诉浏览器下载这个附件  
120 - response.setHeader("Content-Disposition", "attachment;Filename=" + System.currentTimeMillis() + ".xls");  
121 - OutputStream outputStream = response.getOutputStream();  
122 - wb.write(outputStream);  
123 - outputStream.flush();  
124 - outputStream.close();  
125 - return wb.getBytes();  
126 - } catch (Exception ex) {  
127 - ex.printStackTrace();  
128 - throw new IOException("导出Excel出现严重异常,异常信息:" + ex.getMessage());  
129 - }  
130 -  
131 - }  
132 -  
133 - /**  
134 - * 检查数据配置问题  
135 - *  
136 - * @throws IOException 抛出数据异常类  
137 - */  
138 - protected void checkConfig() throws IOException {  
139 - if (heardKey == null || heardList.size() == 0) {  
140 - throw new IOException("列名数组不能为空或者为NULL");  
141 - }  
142 - if (StringUtils.isBlank(sheetName)) {  
143 - throw new IOException("工作表表名不能为NULL");  
144 - }  
145 - }  
146 -  
147 -} 1 +//package com.sincere.common.util;
  2 +//
  3 +//import com.google.common.base.Strings;
  4 +//import org.apache.commons.lang3.StringUtils;
  5 +//import org.apache.poi.hssf.usermodel.HSSFCell;
  6 +//import org.apache.poi.hssf.usermodel.HSSFRow;
  7 +//import org.apache.poi.hssf.usermodel.HSSFSheet;
  8 +//import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  9 +//
  10 +//import javax.servlet.http.HttpServletRequest;
  11 +//import javax.servlet.http.HttpServletResponse;
  12 +//import java.io.IOException;
  13 +//import java.io.OutputStream;
  14 +//import java.math.BigDecimal;
  15 +//import java.util.List;
  16 +//import java.util.Map;
  17 +//
  18 +///**
  19 +// * @author chen
  20 +// * @version 1.0
  21 +// * @date 2019/10/16 0016 18:46
  22 +// */
  23 +//public class ExcelUtils {
  24 +//
  25 +// //各个列的表头
  26 +// private List<String> heardList;
  27 +// //各个列的元素key值
  28 +// private List<String> heardKey;
  29 +// //需要填充的数据信息
  30 +// private List<Map<String,String>> data;
  31 +// //工作表
  32 +// private String sheetName = "模板";
  33 +//
  34 +//
  35 +// public List<String> getHeardList() {
  36 +// return heardList;
  37 +// }
  38 +//
  39 +// public void setHeardList(List<String> heardList) {
  40 +// this.heardList = heardList;
  41 +// }
  42 +//
  43 +// public List<String> getHeardKey() {
  44 +// return heardKey;
  45 +// }
  46 +//
  47 +// public void setHeardKey(List<String> heardKey) {
  48 +// this.heardKey = heardKey;
  49 +// }
  50 +//
  51 +// public List<Map<String, String>> getData() {
  52 +// return data;
  53 +// }
  54 +//
  55 +// public void setData(List<Map<String, String>> data) {
  56 +// this.data = data;
  57 +// }
  58 +//
  59 +// public String getSheetName() {
  60 +// return sheetName;
  61 +// }
  62 +//
  63 +// public void setSheetName(String sheetName) {
  64 +// this.sheetName = sheetName;
  65 +// }
  66 +//
  67 +// /**
  68 +// * 开始导出数据信息
  69 +// *
  70 +// */
  71 +// public byte[] exportExport(HttpServletRequest request, HttpServletResponse response) throws IOException {
  72 +// //检查参数配置信息
  73 +// checkConfig();
  74 +// //创建工作簿
  75 +// HSSFWorkbook wb = new HSSFWorkbook();
  76 +// //创建工作表
  77 +// HSSFSheet wbSheet = wb.createSheet(this.sheetName);
  78 +//
  79 +// //在第0行创建rows
  80 +// HSSFRow row = wbSheet.createRow((int)0);
  81 +// //设置列头元素
  82 +// HSSFCell cellHead = null;
  83 +// for (int i = 0; i < heardList.size(); i++) {
  84 +// cellHead = row.createCell(i);
  85 +// cellHead.setCellValue(heardList.get(i));
  86 +// }
  87 +// //开始写入实体数据信息
  88 +// int a = 1;
  89 +// for (int i = 0; i < data.size(); i++) {
  90 +// HSSFRow roww = wbSheet.createRow((int) a);
  91 +// Map map = data.get(i);
  92 +// HSSFCell cell = null;
  93 +// for (int j = 0; j < heardKey.size(); j++) {
  94 +// cell = roww.createCell(j);
  95 +// Object valueObject = map.get(heardKey.get(j));
  96 +// String value = null;
  97 +// if (valueObject == null) {
  98 +// valueObject = "";
  99 +// }
  100 +// if (valueObject instanceof String) {
  101 +// //取出的数据是字符串直接赋值
  102 +// value = (String) map.get(heardKey.get(j));
  103 +// } else if (valueObject instanceof Integer) {
  104 +// //取出的数据是Integer
  105 +// value = String.valueOf(((Integer) (valueObject)).floatValue());
  106 +// } else if (valueObject instanceof BigDecimal) {
  107 +// //取出的数据是BigDecimal
  108 +// value = String.valueOf(((BigDecimal) (valueObject)).floatValue());
  109 +// } else {
  110 +// value = valueObject.toString();
  111 +// }
  112 +// cell.setCellValue(Strings.isNullOrEmpty(value) ? "" : value);
  113 +// }
  114 +// a++;
  115 +// }
  116 +//
  117 +// //导出数据
  118 +// try {
  119 +// //设置Http响应头告诉浏览器下载这个附件
  120 +// response.setHeader("Content-Disposition", "attachment;Filename=" + System.currentTimeMillis() + ".xls");
  121 +// OutputStream outputStream = response.getOutputStream();
  122 +// wb.write(outputStream);
  123 +// outputStream.flush();
  124 +// outputStream.close();
  125 +// return wb.getBytes();
  126 +// } catch (Exception ex) {
  127 +// ex.printStackTrace();
  128 +// throw new IOException("导出Excel出现严重异常,异常信息:" + ex.getMessage());
  129 +// }
  130 +//
  131 +// }
  132 +//
  133 +// /**
  134 +// * 检查数据配置问题
  135 +// *
  136 +// * @throws IOException 抛出数据异常类
  137 +// */
  138 +// protected void checkConfig() throws IOException {
  139 +// if (heardKey == null || heardList.size() == 0) {
  140 +// throw new IOException("列名数组不能为空或者为NULL");
  141 +// }
  142 +// if (StringUtils.isBlank(sheetName)) {
  143 +// throw new IOException("工作表表名不能为NULL");
  144 +// }
  145 +// }
  146 +//
  147 +//}
cloud/common/src/main/java/com/sincere/common/util/UrlUtil.java
@@ -1,47 +0,0 @@ @@ -1,47 +0,0 @@
1 -package com.sincere.common.util;  
2 -  
3 -import javax.servlet.http.HttpServletRequest;  
4 -import java.io.PrintWriter;  
5 -import java.io.StringWriter;  
6 -  
7 -/**  
8 - * @author: yukong  
9 - * @date: 2018/11/14 19:50  
10 - */  
11 -public class UrlUtil {  
12 -  
13 - /**  
14 - * 获取目标主机的ip  
15 - * @param request  
16 - * @return  
17 - */  
18 - public static String getRemoteHost(HttpServletRequest request) {  
19 - String ip = request.getHeader("x-forwarded-for");  
20 - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
21 - ip = request.getHeader("Proxy-Client-IP");  
22 - }  
23 - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
24 - ip = request.getHeader("WL-Proxy-Client-IP");  
25 - }  
26 - if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {  
27 - ip = request.getRemoteAddr();  
28 - }  
29 - return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip;  
30 - }  
31 -  
32 -  
33 - /**  
34 - * 获取完整的异常栈信息  
35 - * @param t  
36 - * @return  
37 - */  
38 - public static String getTrace(Throwable t) {  
39 - StringWriter stringWriter= new StringWriter();  
40 - PrintWriter writer= new PrintWriter(stringWriter);  
41 - t.printStackTrace(writer);  
42 - StringBuffer buffer= stringWriter.getBuffer();  
43 - return buffer.toString();  
44 - }  
45 -  
46 -  
47 -}  
cloud/common/src/main/java/com/sincere/common/util/UserUtil.java
@@ -1,95 +0,0 @@ @@ -1,95 +0,0 @@
1 -package com.sincere.common.util;  
2 -  
3 -import com.sincere.common.constants.SecurityConstants;  
4 -import com.sincere.common.constants.UserConstants;  
5 -import io.jsonwebtoken.Claims;  
6 -import io.jsonwebtoken.Jwts;  
7 -import lombok.extern.slf4j.Slf4j;  
8 -  
9 -import javax.servlet.http.HttpServletRequest;  
10 -import java.util.Base64;  
11 -import java.util.List;  
12 -  
13 -/**  
14 - * @author: yukong  
15 - * @date: 2018/10/17 08:56  
16 - * @description:  
17 - */  
18 -@Slf4j  
19 -public class UserUtil {  
20 -  
21 - /**  
22 - * 获取请求中的token  
23 - * @param request  
24 - * @return token  
25 - */  
26 - public static String getToken(HttpServletRequest request){  
27 - String authorization = request.getHeader(SecurityConstants.TOKEN_HEADER);  
28 - if(authorization == null){  
29 - return null;  
30 - }  
31 - String token = authorization.split(" ")[1];  
32 - //log.info("获取token成功,值为{}", token);  
33 - return token;  
34 - }  
35 -  
36 - /**  
37 - * 获取jwt中的claims信息  
38 - * @param token  
39 - * @return claim  
40 - */  
41 - public static Claims getClaims(String token) {  
42 - String key = Base64.getEncoder().encodeToString(SecurityConstants.SIGN_KEY.getBytes());  
43 - Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();  
44 - return claims;  
45 - }  
46 -  
47 - /**  
48 - * 获取请求中的userId  
49 - * @param request  
50 - * @return userId  
51 - */  
52 - public static Integer getUserId(HttpServletRequest request){  
53 - String token = getToken(request);  
54 - if(token == null){  
55 - return null;  
56 - }  
57 - Claims claims = getClaims(token);  
58 - Integer userId = (Integer) claims.get(UserConstants.USER_ID);  
59 - //log.info("获取userId成功,值为", userId);  
60 - return userId;  
61 - }  
62 -  
63 - /**  
64 - * 获取请求中的userId  
65 - * @param request  
66 - * @return userId  
67 - */  
68 - public static String getUserName(HttpServletRequest request){  
69 - String token = getToken(request);  
70 - if(token == null){  
71 - return null;  
72 - }  
73 - Claims claims = getClaims(token);  
74 - String username = (String) claims.get(UserConstants.USER_NAME);  
75 - //log.info("获取username成功,值为", username);  
76 - return username;  
77 - }  
78 -  
79 - /**  
80 - * 获取请求中的roles集合  
81 - * @param request  
82 - * @return roles  
83 - */  
84 - public static List<String> getRoles(HttpServletRequest request) {  
85 - String token = getToken(request);  
86 - if(token == null){  
87 - return null;  
88 - }  
89 - Claims claims = getClaims(token);  
90 - List<String> roles = (List<String>) claims.get(UserConstants.AUTHORITIES);  
91 - return roles;  
92 - }  
93 -  
94 -  
95 -}  
cloud/getaway/pom.xml 0 → 100644
@@ -0,0 +1,65 @@ @@ -0,0 +1,65 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  3 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4 + <modelVersion>4.0.0</modelVersion>
  5 + <parent>
  6 + <groupId>com.sincere</groupId>
  7 + <artifactId>cloud</artifactId>
  8 + <version>1.0.0</version>
  9 + </parent>
  10 + <artifactId>getaway</artifactId>
  11 + <version>1.0.0</version>
  12 + <name>getaway</name>
  13 + <description>Demo project for Spring Boot</description>
  14 +
  15 + <properties>
  16 + <java.version>1.8</java.version>
  17 + <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
  18 + </properties>
  19 +
  20 + <dependencies>
  21 + <dependency>
  22 + <groupId>com.sincere</groupId>
  23 + <artifactId>common</artifactId>
  24 + <version>1.0.0</version>
  25 + </dependency>
  26 + <!--gateway 网关依赖,内置webflux 依赖-->
  27 + <dependency>
  28 + <groupId>org.springframework.cloud</groupId>
  29 + <artifactId>spring-cloud-starter-gateway</artifactId>
  30 + <exclusions>
  31 + <exclusion>
  32 + <groupId>org.springframework.boot</groupId>
  33 + <artifactId>spring-boot-starter-web</artifactId>
  34 + </exclusion>
  35 + </exclusions>
  36 + </dependency>
  37 + <dependency>
  38 + <groupId>io.springfox</groupId>
  39 + <artifactId>springfox-swagger-ui</artifactId>
  40 + <version>2.9.2</version>
  41 + </dependency>
  42 + <dependency>
  43 + <groupId>io.springfox</groupId>
  44 + <artifactId>springfox-swagger2</artifactId>
  45 + <version>2.9.2</version>
  46 + </dependency>
  47 + </dependencies>
  48 +
  49 +<!-- <build>-->
  50 +<!-- <plugins>-->
  51 +<!-- <plugin>-->
  52 +<!-- <groupId>org.springframework.boot</groupId>-->
  53 +<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->
  54 +<!-- <executions>-->
  55 +<!-- <execution>-->
  56 +<!-- <goals>-->
  57 +<!-- <goal>repackage</goal>-->
  58 +<!-- </goals>-->
  59 +<!-- </execution>-->
  60 +<!-- </executions>-->
  61 +<!-- </plugin>-->
  62 +<!-- </plugins>-->
  63 +<!-- </build>-->
  64 +
  65 +</project>
cloud/getaway/src/main/java/com/sincere/getaway/GetawayApplication.java 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +package com.sincere.getaway;
  2 +
  3 +import org.springframework.boot.SpringApplication;
  4 +import org.springframework.cloud.client.SpringCloudApplication;
  5 +
  6 +/**
  7 + * 统一网关配置
  8 + * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务;
  9 + */
  10 +@SpringCloudApplication
  11 +public class GetawayApplication {
  12 +
  13 + public static void main(String[] args) {
  14 + SpringApplication.run(GetawayApplication.class, args);
  15 + }
  16 +
  17 +
  18 +}
cloud/getaway/src/main/java/com/sincere/getaway/client/config/PermitUrlProperties.java 0 → 100644
@@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
  1 +package com.sincere.getaway.client.config;
  2 +
  3 +import org.springframework.boot.context.properties.ConfigurationProperties;
  4 +import org.springframework.stereotype.Component;
  5 +
  6 +import java.util.ArrayList;
  7 +import java.util.List;
  8 +
  9 +
  10 +@Component
  11 +@ConfigurationProperties(prefix = "url")
  12 +public class PermitUrlProperties {
  13 +
  14 + /**
  15 + * swagger需要访问的url
  16 + */
  17 + private static final String[] ENDPOINTS = {
  18 +
  19 + "/v2/api-docs/**", "/swagger-ui.html", "/swagger-resources/**", "/webjars/**" , // api-gateway webflux swagger
  20 + "/**/v2/api-docs/**", "/**/swagger-ui.html", "/**/swagger-resources/**", "/**/webjars/**" //业务中心swagger
  21 + };
  22 +
  23 + private String[] ignored;
  24 +
  25 + /**
  26 + * 需要放开权限的url
  27 + * @return 自定义的url和监控中心需要访问的url集合
  28 + */
  29 + public String[] getIgnored() {
  30 + if (ignored == null || ignored.length == 0) {
  31 + return ENDPOINTS;
  32 + }
  33 +
  34 + List<String> list = new ArrayList<>();
  35 + for (String url : ENDPOINTS) {
  36 + list.add(url);
  37 + }
  38 + for (String url : ignored) {
  39 + list.add(url);
  40 + }
  41 +
  42 + return list.toArray(new String[list.size()]);
  43 + }
  44 +
  45 + public void setIgnored(String[] ignored) {
  46 + this.ignored = ignored;
  47 + }
  48 +
  49 +}
cloud/getaway/src/main/java/com/sincere/getaway/client/config/SwaggerProvider.java 0 → 100644
@@ -0,0 +1,47 @@ @@ -0,0 +1,47 @@
  1 +package com.sincere.getaway.client.config;
  2 +
  3 +import lombok.AllArgsConstructor;
  4 +import org.springframework.cloud.gateway.config.GatewayProperties;
  5 +import org.springframework.cloud.gateway.route.RouteLocator;
  6 +import org.springframework.cloud.gateway.support.NameUtils;
  7 +import org.springframework.context.annotation.Primary;
  8 +import org.springframework.stereotype.Component;
  9 +import springfox.documentation.swagger.web.SwaggerResource;
  10 +import springfox.documentation.swagger.web.SwaggerResourcesProvider;
  11 +
  12 +import java.util.ArrayList;
  13 +import java.util.List;
  14 +
  15 +/**
  16 + * @author Sywd
  17 + */
  18 +@Component
  19 +@Primary
  20 +@AllArgsConstructor
  21 +public class SwaggerProvider implements SwaggerResourcesProvider {
  22 + public static final String API_URI = "/v2/api-docs";
  23 + private final RouteLocator routeLocator;
  24 + private final GatewayProperties gatewayProperties;
  25 +
  26 + @Override
  27 + public List<SwaggerResource> get() {
  28 + List<SwaggerResource> resources = new ArrayList<>();
  29 + List<String> routes = new ArrayList<>();
  30 + routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));
  31 + gatewayProperties.getRoutes().stream().filter(routeDefinition -> routes.contains(routeDefinition.getId()))
  32 + .forEach(routeDefinition -> routeDefinition.getPredicates().stream()
  33 + .filter(predicateDefinition -> ("Path").equalsIgnoreCase(predicateDefinition.getName()))
  34 + .forEach(predicateDefinition -> resources.add(swaggerResource(routeDefinition.getId(),
  35 + predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0")
  36 + .replace("/**", API_URI)))));
  37 + return resources;
  38 + }
  39 +
  40 + private SwaggerResource swaggerResource(String name, String location) {
  41 + SwaggerResource swaggerResource = new SwaggerResource();
  42 + swaggerResource.setName(name);
  43 + swaggerResource.setLocation(location);
  44 + swaggerResource.setSwaggerVersion("2.0");
  45 + return swaggerResource;
  46 + }
  47 +}
cloud/getaway/src/main/java/com/sincere/getaway/client/filter/AccessFilter.java 0 → 100644
@@ -0,0 +1,99 @@ @@ -0,0 +1,99 @@
  1 +package com.sincere.getaway.client.filter;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.sincere.common.exception.ResultEnums;
  5 +import com.sincere.common.exception.ResultException;
  6 +import com.sincere.common.util.TokenUtils;
  7 +import com.sincere.getaway.client.config.PermitUrlProperties;
  8 +import org.apache.commons.lang3.StringUtils;
  9 +import org.springframework.boot.context.properties.EnableConfigurationProperties;
  10 +import org.springframework.cloud.gateway.filter.GatewayFilterChain;
  11 +import org.springframework.cloud.gateway.filter.GlobalFilter;
  12 +import org.springframework.core.Ordered;
  13 +import org.springframework.core.io.buffer.DataBuffer;
  14 +import org.springframework.http.HttpStatus;
  15 +import org.springframework.http.server.reactive.ServerHttpRequest;
  16 +import org.springframework.http.server.reactive.ServerHttpResponse;
  17 +import org.springframework.stereotype.Component;
  18 +import org.springframework.util.AntPathMatcher;
  19 +import org.springframework.web.server.ServerWebExchange;
  20 +import reactor.core.publisher.Mono;
  21 +
  22 +import javax.annotation.Resource;
  23 +import java.nio.charset.StandardCharsets;
  24 +import java.util.List;
  25 +
  26 +/**
  27 + */
  28 +@Component
  29 +@EnableConfigurationProperties(PermitUrlProperties.class)
  30 +public class AccessFilter implements GlobalFilter, Ordered {
  31 +
  32 + // url匹配器
  33 + private AntPathMatcher pathMatcher = new AntPathMatcher();
  34 +
  35 + @Resource
  36 + private PermitUrlProperties permitUrlProperties;
  37 +
  38 +
  39 + @Override
  40 + public int getOrder() {
  41 + // TODO Auto-generated method stub
  42 + return -500;
  43 + }
  44 +
  45 + @Override
  46 + public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
  47 + String accessToken = this.extractToken(exchange.getRequest());
  48 + // 默认
  49 + boolean flag = false;
  50 + for (String ignored :permitUrlProperties.getIgnored()) {
  51 + if (pathMatcher.match(ignored, exchange.getRequest().getPath().value())) {
  52 + flag = true; // 白名单
  53 + }
  54 + }
  55 + if (flag) {
  56 + return chain.filter(exchange);
  57 + } else {
  58 + ResultEnums result = getResult(accessToken);
  59 + if(result.getCode() == 0){
  60 + return chain.filter(exchange);
  61 + }else {
  62 + exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);
  63 + ServerHttpResponse response = exchange.getResponse();
  64 + JSONObject message = new JSONObject();
  65 + message.put("resp_code", result.getCode());
  66 + message.put("resp_msg", result.getMessage());
  67 + byte[] bits = message.toJSONString().getBytes(StandardCharsets.UTF_8);
  68 + DataBuffer buffer = response.bufferFactory().wrap(bits);
  69 + response.setStatusCode(HttpStatus.UNAUTHORIZED);
  70 + // 指定编码,否则在浏览器中会中文乱码
  71 + response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
  72 + return response.writeWith(Mono.just(buffer));
  73 + }
  74 +
  75 + }
  76 + }
  77 +
  78 + private ResultEnums getResult(String token){
  79 + if (StringUtils.isNotBlank(token)) {
  80 + return ResultEnums.no_token ;
  81 + }else {
  82 + try {
  83 + TokenUtils.validToken(token);
  84 + } catch (ResultException e) {
  85 + return ResultEnums.getByCode(e.getCode());
  86 + }
  87 + }
  88 + return ResultEnums.error ;
  89 + }
  90 +
  91 + public String extractToken(ServerHttpRequest request) {
  92 + List<String> strings = request.getHeaders().get("X-Authorization");
  93 + String authToken = "";
  94 + if (strings != null) {
  95 + authToken = strings.get(0).substring("Bearer".length()).trim();
  96 + }
  97 + return authToken;
  98 + }
  99 +}
cloud/getaway/src/main/java/com/sincere/getaway/client/filter/SwaggerHeaderFilter.java 0 → 100644
@@ -0,0 +1,36 @@ @@ -0,0 +1,36 @@
  1 +package com.sincere.getaway.client.filter;
  2 +
  3 +import com.sincere.getaway.client.config.SwaggerProvider;
  4 +import org.springframework.cloud.gateway.filter.GatewayFilter;
  5 +import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;
  6 +import org.springframework.http.server.reactive.ServerHttpRequest;
  7 +import org.springframework.stereotype.Component;
  8 +import org.springframework.util.StringUtils;
  9 +import org.springframework.web.server.ServerWebExchange;
  10 +
  11 +/**
  12 + * Spring 已修复该功能
  13 + */
  14 +@Component
  15 +@Deprecated
  16 +public class SwaggerHeaderFilter extends AbstractGatewayFilterFactory {
  17 + private static final String HEADER_NAME = "X-Forwarded-Prefix";
  18 +
  19 + @Override
  20 + public GatewayFilter apply(Object config) {
  21 + return (exchange, chain) -> {
  22 + ServerHttpRequest request = exchange.getRequest();
  23 + String path = request.getURI().getPath();
  24 + if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) {
  25 + return chain.filter(exchange);
  26 + }
  27 +
  28 + String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI));
  29 +
  30 +
  31 + ServerHttpRequest newRequest = request.mutate().header(HEADER_NAME, basePath).build();
  32 + ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();
  33 + return chain.filter(newExchange);
  34 + };
  35 + }
  36 +}
cloud/getaway/src/main/java/com/sincere/getaway/client/handler/SwaggerHandler.java 0 → 100644
@@ -0,0 +1,45 @@ @@ -0,0 +1,45 @@
  1 +package com.sincere.getaway.client.handler;
  2 +
  3 +import org.springframework.beans.factory.annotation.Autowired;
  4 +import org.springframework.http.HttpStatus;
  5 +import org.springframework.http.ResponseEntity;
  6 +import org.springframework.web.bind.annotation.GetMapping;
  7 +import org.springframework.web.bind.annotation.RequestMapping;
  8 +import org.springframework.web.bind.annotation.RestController;
  9 +import reactor.core.publisher.Mono;
  10 +import springfox.documentation.swagger.web.*;
  11 +
  12 +import java.util.Optional;
  13 +
  14 +@RestController
  15 +@RequestMapping("/swagger-resources")
  16 +public class SwaggerHandler {
  17 + @Autowired(required = false)
  18 + private SecurityConfiguration securityConfiguration;
  19 + @Autowired(required = false)
  20 + private UiConfiguration uiConfiguration;
  21 + private final SwaggerResourcesProvider swaggerResources;
  22 +
  23 + @Autowired
  24 + public SwaggerHandler(SwaggerResourcesProvider swaggerResources) {
  25 + this.swaggerResources = swaggerResources;
  26 + }
  27 +
  28 +
  29 + @GetMapping("/configuration/security")
  30 + public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration() {
  31 + return Mono.just(new ResponseEntity<>(
  32 + Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK));
  33 + }
  34 +
  35 + @GetMapping("/configuration/ui")
  36 + public Mono<ResponseEntity<UiConfiguration>> uiConfiguration() {
  37 + return Mono.just(new ResponseEntity<>(
  38 + Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));
  39 + }
  40 +
  41 + @GetMapping("")
  42 + public Mono<ResponseEntity> swaggerResources() {
  43 + return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK)));
  44 + }
  45 +}
cloud/getaway/src/main/resources/application.yml 0 → 100644
@@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
  1 +eureka:
  2 + client:
  3 + fetch-registry: true
  4 + register-with-eureka: true
  5 + service-url:
  6 +# defaultZone: http://localhost:8761/eureka/
  7 + defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/
  8 + instance:
  9 + hostname: localhost
  10 + lease-expiration-duration-in-seconds: 90
  11 + lease-renewal-interval-in-seconds: 10
  12 + prefer-ip-address: true
  13 +
  14 +spring:
  15 + cloud:
  16 + gateway:
  17 + routes:
  18 + - id: usersearch
  19 + uri: lb://usersearch
  20 + predicates:
  21 + - Path=/usersearch/**
  22 + filters:
  23 + - StripPrefix=1
  24 + - id: haikangserver
  25 + uri: lb://haikangserver
  26 + predicates:
  27 + - Path=/haikangserver/**
  28 + filters:
  29 + - StripPrefix=1
  30 +url:
  31 + ignored: /user/**
0 \ No newline at end of file 32 \ No newline at end of file
cloud/getaway/src/main/resources/bootstrap.yml 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +#端口
  2 +server:
  3 + port: 8083
  4 +
  5 +#服务名称
  6 +spring:
  7 + application:
  8 + name: sincere_geteway
  9 + main:
  10 + allow-bean-definition-overriding: true
  11 +
  12 +
  13 +management:
  14 + endpoints:
  15 + web:
  16 + exposure:
  17 + include: "*"
  18 + endpoint:
  19 + health:
  20 + show-details: always
  21 +
  22 +
  23 +
0 \ No newline at end of file 24 \ No newline at end of file
cloud/geteway/pom.xml
@@ -1,59 +0,0 @@ @@ -1,59 +0,0 @@
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
3 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
4 - <modelVersion>4.0.0</modelVersion>  
5 - <parent>  
6 - <groupId>com.sincere</groupId>  
7 - <artifactId>cloud</artifactId>  
8 - <version>1.0.0</version>  
9 - </parent>  
10 - <groupId>com.example.geteway</groupId>  
11 - <artifactId>geteway</artifactId>  
12 - <version>1.0.0</version>  
13 - <name>geteway</name>  
14 - <description>Demo project for Spring Boot</description>  
15 -  
16 - <properties>  
17 - <java.version>1.8</java.version>  
18 - <spring-cloud.version>Greenwich.SR1</spring-cloud.version>  
19 - </properties>  
20 -  
21 - <dependencies>  
22 - <!--gateway 网关依赖,内置webflux 依赖-->  
23 - <dependency>  
24 - <groupId>org.springframework.cloud</groupId>  
25 - <artifactId>spring-cloud-starter-gateway</artifactId>  
26 - </dependency>  
27 - <dependency>  
28 - <groupId>org.springframework.boot</groupId>  
29 - <artifactId>spring-boot-starter-data-redis-reactive</artifactId>  
30 - </dependency>  
31 - <dependency>  
32 - <groupId>io.springfox</groupId>  
33 - <artifactId>springfox-swagger-ui</artifactId>  
34 - <version>2.9.2</version>  
35 - </dependency>  
36 - <dependency>  
37 - <groupId>io.springfox</groupId>  
38 - <artifactId>springfox-swagger2</artifactId>  
39 - <version>2.9.2</version>  
40 - </dependency>  
41 - </dependencies>  
42 -  
43 -<!-- <build>-->  
44 -<!-- <plugins>-->  
45 -<!-- <plugin>-->  
46 -<!-- <groupId>org.springframework.boot</groupId>-->  
47 -<!-- <artifactId>spring-boot-maven-plugin</artifactId>-->  
48 -<!-- <executions>-->  
49 -<!-- <execution>-->  
50 -<!-- <goals>-->  
51 -<!-- <goal>repackage</goal>-->  
52 -<!-- </goals>-->  
53 -<!-- </execution>-->  
54 -<!-- </executions>-->  
55 -<!-- </plugin>-->  
56 -<!-- </plugins>-->  
57 -<!-- </build>-->  
58 -  
59 -</project>  
cloud/geteway/src/main/java/com/example/geteway/GetewayApplication.java
@@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
1 -package com.example.geteway;  
2 -  
3 -import org.springframework.boot.SpringApplication;  
4 -import org.springframework.cloud.client.SpringCloudApplication;  
5 -  
6 -/**  
7 - * 统一网关配置  
8 - * 通过服务路由的功能,在对外提供服务的时候,只需要通过暴露Zuul中配置的调用地址就可以让调用方统一的来访问我们的服务;  
9 - */  
10 -@SpringCloudApplication  
11 -public class GetewayApplication {  
12 -  
13 - public static void main(String[] args) {  
14 - SpringApplication.run(GetewayApplication.class, args);  
15 - }  
16 -  
17 -  
18 -}  
cloud/geteway/src/main/java/com/example/geteway/client/config/SwaggerProvider.java
@@ -1,48 +0,0 @@ @@ -1,48 +0,0 @@
1 -package com.example.geteway.client.config;  
2 -  
3 -import lombok.AllArgsConstructor;  
4 -import org.springframework.cloud.gateway.config.GatewayProperties;  
5 -import org.springframework.cloud.gateway.route.RouteLocator;  
6 -import org.springframework.cloud.gateway.support.NameUtils;  
7 -import org.springframework.context.annotation.Primary;  
8 -import org.springframework.stereotype.Component;  
9 -import springfox.documentation.swagger.web.SwaggerResource;  
10 -import springfox.documentation.swagger.web.SwaggerResourcesProvider;  
11 -  
12 -import java.util.ArrayList;  
13 -import java.util.List;  
14 -  
15 -/**  
16 - * @author Sywd  
17 - */  
18 -@Component  
19 -@Primary  
20 -@AllArgsConstructor  
21 -public class SwaggerProvider implements SwaggerResourcesProvider {  
22 - public static final String API_URI = "/v2/api-docs";  
23 - private final RouteLocator routeLocator;  
24 - private final GatewayProperties gatewayProperties;  
25 -  
26 -  
27 - @Override  
28 - public List<SwaggerResource> get() {  
29 - List<SwaggerResource> resources = new ArrayList<>();  
30 - List<String> routes = new ArrayList<>();  
31 - routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));  
32 - gatewayProperties.getRoutes().stream().filter(routeDefinition -> routes.contains(routeDefinition.getId()))  
33 - .forEach(routeDefinition -> routeDefinition.getPredicates().stream()  
34 - .filter(predicateDefinition -> ("Path").equalsIgnoreCase(predicateDefinition.getName()))  
35 - .forEach(predicateDefinition -> resources.add(swaggerResource(routeDefinition.getId(),  
36 - predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0")  
37 - .replace("/**", API_URI)))));  
38 - return resources;  
39 - }  
40 -  
41 - private SwaggerResource swaggerResource(String name, String location) {  
42 - SwaggerResource swaggerResource = new SwaggerResource();  
43 - swaggerResource.setName(name);  
44 - swaggerResource.setLocation(location);  
45 - swaggerResource.setSwaggerVersion("2.0");  
46 - return swaggerResource;  
47 - }  
48 -}  
cloud/geteway/src/main/java/com/example/geteway/client/filter/SwaggerHeaderFilter.java
@@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
1 -package com.example.geteway.client.filter;  
2 -  
3 -import com.example.geteway.client.config.SwaggerProvider;  
4 -import org.springframework.cloud.gateway.filter.GatewayFilter;  
5 -import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory;  
6 -import org.springframework.http.server.reactive.ServerHttpRequest;  
7 -import org.springframework.stereotype.Component;  
8 -import org.springframework.util.StringUtils;  
9 -import org.springframework.web.server.ServerWebExchange;  
10 -  
11 -/**  
12 - * Spring 已修复该功能  
13 - */  
14 -@Component  
15 -@Deprecated  
16 -public class SwaggerHeaderFilter extends AbstractGatewayFilterFactory {  
17 - private static final String HEADER_NAME = "X-Forwarded-Prefix";  
18 -  
19 - @Override  
20 - public GatewayFilter apply(Object config) {  
21 - return (exchange, chain) -> {  
22 - ServerHttpRequest request = exchange.getRequest();  
23 - String path = request.getURI().getPath();  
24 - if (!StringUtils.endsWithIgnoreCase(path, SwaggerProvider.API_URI)) {  
25 - return chain.filter(exchange);  
26 - }  
27 -  
28 - String basePath = path.substring(0, path.lastIndexOf(SwaggerProvider.API_URI));  
29 -  
30 -  
31 - ServerHttpRequest newRequest = request.mutate().header(HEADER_NAME, basePath).build();  
32 - ServerWebExchange newExchange = exchange.mutate().request(newRequest).build();  
33 - return chain.filter(newExchange);  
34 - };  
35 - }  
36 -}  
cloud/geteway/src/main/java/com/example/geteway/client/handler/SwaggerHandler.java
@@ -1,45 +0,0 @@ @@ -1,45 +0,0 @@
1 -package com.example.geteway.client.handler;  
2 -  
3 -import org.springframework.beans.factory.annotation.Autowired;  
4 -import org.springframework.http.HttpStatus;  
5 -import org.springframework.http.ResponseEntity;  
6 -import org.springframework.web.bind.annotation.GetMapping;  
7 -import org.springframework.web.bind.annotation.RequestMapping;  
8 -import org.springframework.web.bind.annotation.RestController;  
9 -import reactor.core.publisher.Mono;  
10 -import springfox.documentation.swagger.web.*;  
11 -  
12 -import java.util.Optional;  
13 -  
14 -@RestController  
15 -@RequestMapping("/swagger-resources")  
16 -public class SwaggerHandler {  
17 - @Autowired(required = false)  
18 - private SecurityConfiguration securityConfiguration;  
19 - @Autowired(required = false)  
20 - private UiConfiguration uiConfiguration;  
21 - private final SwaggerResourcesProvider swaggerResources;  
22 -  
23 - @Autowired  
24 - public SwaggerHandler(SwaggerResourcesProvider swaggerResources) {  
25 - this.swaggerResources = swaggerResources;  
26 - }  
27 -  
28 -  
29 - @GetMapping("/configuration/security")  
30 - public Mono<ResponseEntity<SecurityConfiguration>> securityConfiguration() {  
31 - return Mono.just(new ResponseEntity<>(  
32 - Optional.ofNullable(securityConfiguration).orElse(SecurityConfigurationBuilder.builder().build()), HttpStatus.OK));  
33 - }  
34 -  
35 - @GetMapping("/configuration/ui")  
36 - public Mono<ResponseEntity<UiConfiguration>> uiConfiguration() {  
37 - return Mono.just(new ResponseEntity<>(  
38 - Optional.ofNullable(uiConfiguration).orElse(UiConfigurationBuilder.builder().build()), HttpStatus.OK));  
39 - }  
40 -  
41 - @GetMapping("")  
42 - public Mono<ResponseEntity> swaggerResources() {  
43 - return Mono.just((new ResponseEntity<>(swaggerResources.get(), HttpStatus.OK)));  
44 - }  
45 -}  
cloud/geteway/src/main/resources/application.yml
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -eureka:  
2 - client:  
3 - fetch-registry: true  
4 - register-with-eureka: true  
5 - service-url:  
6 -# defaultZone: http://localhost:8761/eureka/  
7 - defaultZone: http://localhost:8761/eureka/,http://localhost:8762/eureka/  
8 - instance:  
9 - hostname: localhost  
10 - lease-expiration-duration-in-seconds: 90  
11 - lease-renewal-interval-in-seconds: 10  
12 - prefer-ip-address: true  
13 -  
14 -spring:  
15 - cloud:  
16 - gateway:  
17 - routes:  
18 - - id: haikangserver  
19 - uri: lb://haikangserver  
20 - predicates:  
21 - - Path=/haikangserver/**  
22 - filters:  
23 - - StripPrefix=1  
cloud/geteway/src/main/resources/bootstrap.yml
@@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
1 -#端口  
2 -server:  
3 - port: 8083  
4 -  
5 -#服务名称  
6 -spring:  
7 - application:  
8 - name: sincere_geteway  
9 - main:  
10 - allow-bean-definition-overriding: true  
11 -  
12 -  
13 -management:  
14 - endpoints:  
15 - web:  
16 - exposure:  
17 - include: "*"  
18 - endpoint:  
19 - health:  
20 - show-details: always  
21 -  
22 -  
23 -  
24 \ No newline at end of file 0 \ No newline at end of file
cloud/geteway/src/test/java/com/example/geteway/GetewayApplicationTests.java
@@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
1 -package com.example.geteway;  
2 -  
3 -import org.junit.Test;  
4 -import org.junit.runner.RunWith;  
5 -import org.springframework.boot.test.context.SpringBootTest;  
6 -import org.springframework.test.context.junit4.SpringRunner;  
7 -  
8 -@RunWith(SpringRunner.class)  
9 -@SpringBootTest  
10 -public class GetewayApplicationTests {  
11 -  
12 - @Test  
13 - public void contextLoads() {  
14 - }  
15 -  
16 -}  
@@ -28,8 +28,8 @@ @@ -28,8 +28,8 @@
28 <module>server1</module> 28 <module>server1</module>
29 <module>server2</module> 29 <module>server2</module>
30 <!-- <module>autho</module>--> 30 <!-- <module>autho</module>-->
31 -<!-- <module>common</module>-->  
32 - <module>geteway</module> 31 + <module>common</module>
  32 + <module>getaway</module>
33 <module>haikang</module> 33 <module>haikang</module>
34 <!-- <module>dahua</module>--> 34 <!-- <module>dahua</module>-->
35 <!-- <module>consumer</module>--> 35 <!-- <module>consumer</module>-->
@@ -42,6 +42,7 @@ @@ -42,6 +42,7 @@
42 <!-- <module>independence</module>--> 42 <!-- <module>independence</module>-->
43 <!-- <module>quartz</module>--> 43 <!-- <module>quartz</module>-->
44 <!-- <module>zkAttendance</module>--> 44 <!-- <module>zkAttendance</module>-->
  45 + <module>user_search</module>
45 </modules> 46 </modules>
46 47
47 <dependencies> 48 <dependencies>
@@ -51,18 +52,6 @@ @@ -51,18 +52,6 @@
51 <version>1.2.58</version> 52 <version>1.2.58</version>
52 <scope>compile</scope> 53 <scope>compile</scope>
53 </dependency> 54 </dependency>
54 -  
55 - <dependency>  
56 - <groupId>org.projectlombok</groupId>  
57 - <artifactId>lombok</artifactId>  
58 - <version>1.18.8</version>  
59 - </dependency>  
60 -  
61 - <dependency>  
62 - <groupId>org.springframework.cloud</groupId>  
63 - <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>  
64 - </dependency>  
65 -  
66 <dependency> 55 <dependency>
67 <groupId>org.springframework.cloud</groupId> 56 <groupId>org.springframework.cloud</groupId>
68 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> 57 <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
cloud/quartz/src/main/java/com/sincere/quartz/Test.java 0 → 100644
@@ -0,0 +1,23 @@ @@ -0,0 +1,23 @@
  1 +package com.sincere.quartz;
  2 +
  3 +import com.alibaba.fastjson.JSONObject;
  4 +import com.netflix.ribbon.proxy.annotation.Http;
  5 +import com.sincere.common.util.HttpClientUtils;
  6 +
  7 +public class Test {
  8 +
  9 + public static void main(String[] args){
  10 + for(int i = 1 ; i < 5000 ; i++){
  11 +
  12 + String infoUrl = "https://static-data.eol.cn/www/2.0/school/"+i+"/info.json" ;
  13 + String gradePointUrl = "https://api.eol.cn/gkcx/api/?access_token=&local_province_id=33&local_type_id=3&page=1&school_id="+i+"&signsafe=&size=10&uri=apidata/api/gk/score/province&year=" ;
  14 + String prefessionUrl = "https://static-data.eol.cn/www/2.0/school/"+i+"/pc_special.json" ;
  15 +
  16 + JSONObject infoResult = HttpClientUtils.httpGet(infoUrl) ;
  17 + JSONObject gradePointResult = HttpClientUtils.httpGet(gradePointUrl);
  18 + JSONObject prefessionResult = HttpClientUtils.httpGet(prefessionUrl);
  19 +
  20 + System.out.println(1);
  21 + }
  22 + }
  23 +}
cloud/quartz/src/main/java/com/sincere/quartz/third/yixueyun/YXYWriteService.java
@@ -109,10 +109,14 @@ public class YXYWriteService { @@ -109,10 +109,14 @@ public class YXYWriteService {
109 for(String subject : subjectList){ 109 for(String subject : subjectList){
110 subjects.append(subject).append(","); 110 subjects.append(subject).append(",");
111 } 111 }
112 - object.put("subjects",subjects.toString().substring(0,subjects.toString().length()-1));  
113 - array.add(object);  
114 - YXYResult result = getResult(prefix_url+suffix_subject_add,array.toJSONString()) ;  
115 - scFeign.updateSchool(school.getSchoolId()); 112 + try{
  113 + object.put("subjects",subjects.toString().substring(0,subjects.toString().length()-1));
  114 + array.add(object);
  115 + YXYResult result = getResult(prefix_url+suffix_subject_add,array.toJSONString()) ;
  116 + scFeign.updateSchool(school.getSchoolId());
  117 + }catch (Exception e){
  118 +
  119 + }
116 } 120 }
117 121
118 private void syncDept(SyncSchoolDto school , List<SyncDeptDto> deptList){ 122 private void syncDept(SyncSchoolDto school , List<SyncDeptDto> deptList){
@@ -184,7 +188,7 @@ public class YXYWriteService { @@ -184,7 +188,7 @@ public class YXYWriteService {
184 } 188 }
185 } 189 }
186 }else { 190 }else {
187 - System.out.println(result.getMessage()); 191 + errorOut(result);
188 } 192 }
189 } 193 }
190 if(updateDept.size() > 0){ 194 if(updateDept.size() > 0){
@@ -199,7 +203,7 @@ public class YXYWriteService { @@ -199,7 +203,7 @@ public class YXYWriteService {
199 } 203 }
200 } 204 }
201 }else { 205 }else {
202 - System.out.println(result.getMessage()); 206 + errorOut(result);
203 } 207 }
204 for(SyncDeptDto deptDto : updateDept){ 208 for(SyncDeptDto deptDto : updateDept){
205 if(!errorList.contains(deptDto.getDeptName())){ 209 if(!errorList.contains(deptDto.getDeptName())){
@@ -225,7 +229,7 @@ public class YXYWriteService { @@ -225,7 +229,7 @@ public class YXYWriteService {
225 } 229 }
226 } 230 }
227 }else { 231 }else {
228 - System.out.println(result.getMessage()); 232 + errorOut(result);
229 } 233 }
230 for(SyncDeptDto deptDto : deleteDept){ 234 for(SyncDeptDto deptDto : deleteDept){
231 if(!errorList.contains(deptDto.getDeptName())){ 235 if(!errorList.contains(deptDto.getDeptName())){
@@ -259,12 +263,10 @@ public class YXYWriteService { @@ -259,12 +263,10 @@ public class YXYWriteService {
259 deptRelationDto.setState(1); 263 deptRelationDto.setState(1);
260 scFeign.updateDeptRelation(deptRelationDto); 264 scFeign.updateDeptRelation(deptRelationDto);
261 scFeign.updateDept(syncDeptDto.getId()); 265 scFeign.updateDept(syncDeptDto.getId());
262 - }else {  
263 -  
264 } 266 }
265 } 267 }
266 }else { 268 }else {
267 - System.out.println(result.getMessage()); 269 + errorOut(result);
268 } 270 }
269 } 271 }
270 if(updateGrade.size() > 0){ 272 if(updateGrade.size() > 0){
@@ -279,7 +281,7 @@ public class YXYWriteService { @@ -279,7 +281,7 @@ public class YXYWriteService {
279 } 281 }
280 } 282 }
281 }else { 283 }else {
282 - System.out.println(result.getMessage()); 284 + errorOut(result);
283 } 285 }
284 for(SyncDeptDto deptDto : updateGrade){ 286 for(SyncDeptDto deptDto : updateGrade){
285 if(!errorList.contains(deptDto.getDeptName())){ 287 if(!errorList.contains(deptDto.getDeptName())){
@@ -305,7 +307,7 @@ public class YXYWriteService { @@ -305,7 +307,7 @@ public class YXYWriteService {
305 } 307 }
306 } 308 }
307 }else { 309 }else {
308 - System.out.println(result.getMessage()); 310 + errorOut(result);
309 } 311 }
310 for(SyncDeptDto deptDto : deleteGrade){ 312 for(SyncDeptDto deptDto : deleteGrade){
311 if(!errorList.contains(deptDto.getDeptName())){ 313 if(!errorList.contains(deptDto.getDeptName())){
@@ -339,12 +341,10 @@ public class YXYWriteService { @@ -339,12 +341,10 @@ public class YXYWriteService {
339 deptRelationDto.setState(1); 341 deptRelationDto.setState(1);
340 scFeign.updateDeptRelation(deptRelationDto); 342 scFeign.updateDeptRelation(deptRelationDto);
341 scFeign.updateDept(syncDeptDto.getId()); 343 scFeign.updateDept(syncDeptDto.getId());
342 - }else {  
343 -  
344 } 344 }
345 } 345 }
346 }else { 346 }else {
347 - System.out.println(result.getMessage()); 347 + errorOut(result);
348 } 348 }
349 } 349 }
350 if(updateClass.size() > 0){ 350 if(updateClass.size() > 0){
@@ -359,7 +359,7 @@ public class YXYWriteService { @@ -359,7 +359,7 @@ public class YXYWriteService {
359 } 359 }
360 } 360 }
361 }else { 361 }else {
362 - System.out.println(result.getMessage()); 362 + errorOut(result);
363 } 363 }
364 for(SyncDeptDto deptDto : updateClass){ 364 for(SyncDeptDto deptDto : updateClass){
365 if(!errorList.contains(deptDto.getDeptName())){ 365 if(!errorList.contains(deptDto.getDeptName())){
@@ -385,7 +385,7 @@ public class YXYWriteService { @@ -385,7 +385,7 @@ public class YXYWriteService {
385 } 385 }
386 } 386 }
387 }else { 387 }else {
388 - System.out.println(result.getMessage()); 388 + errorOut(result);
389 } 389 }
390 for(SyncDeptDto deptDto : deleteClass){ 390 for(SyncDeptDto deptDto : deleteClass){
391 if(!errorList.contains(deptDto.getDeptName())){ 391 if(!errorList.contains(deptDto.getDeptName())){
@@ -422,7 +422,7 @@ public class YXYWriteService { @@ -422,7 +422,7 @@ public class YXYWriteService {
422 } 422 }
423 } 423 }
424 }else { 424 }else {
425 - System.out.println(result.getMessage()); 425 + errorOut(result);
426 } 426 }
427 } 427 }
428 if(updateStudentList.size() > 0){ 428 if(updateStudentList.size() > 0){
@@ -437,7 +437,7 @@ public class YXYWriteService { @@ -437,7 +437,7 @@ public class YXYWriteService {
437 } 437 }
438 } 438 }
439 }else { 439 }else {
440 - System.out.println(result.getMessage()); 440 + errorOut(result);
441 } 441 }
442 for(SyncUserDto user : updateStudentList){ 442 for(SyncUserDto user : updateStudentList){
443 if(!errorList.contains(user.getYxyUserId())){ 443 if(!errorList.contains(user.getYxyUserId())){
@@ -463,7 +463,7 @@ public class YXYWriteService { @@ -463,7 +463,7 @@ public class YXYWriteService {
463 } 463 }
464 } 464 }
465 }else { 465 }else {
466 - System.out.println(result.getMessage()); 466 + errorOut(result);
467 } 467 }
468 for(SyncUserDto user : deleteStudentList){ 468 for(SyncUserDto user : deleteStudentList){
469 if(!errorList.contains(user.getYxyUserId())){ 469 if(!errorList.contains(user.getYxyUserId())){
@@ -500,7 +500,7 @@ public class YXYWriteService { @@ -500,7 +500,7 @@ public class YXYWriteService {
500 } 500 }
501 } 501 }
502 }else { 502 }else {
503 - System.out.println(result.getMessage()); 503 + errorOut(result);
504 } 504 }
505 } 505 }
506 if(updateTeacherList.size() > 0){ 506 if(updateTeacherList.size() > 0){
@@ -515,7 +515,7 @@ public class YXYWriteService { @@ -515,7 +515,7 @@ public class YXYWriteService {
515 } 515 }
516 } 516 }
517 }else { 517 }else {
518 - System.out.println(result.getMessage()); 518 + errorOut(result);
519 } 519 }
520 for(SyncUserDto user : updateTeacherList){ 520 for(SyncUserDto user : updateTeacherList){
521 if(!errorList.contains(user.getYxyUserId())){ 521 if(!errorList.contains(user.getYxyUserId())){
@@ -541,7 +541,7 @@ public class YXYWriteService { @@ -541,7 +541,7 @@ public class YXYWriteService {
541 } 541 }
542 } 542 }
543 }else { 543 }else {
544 - System.out.println(result.getMessage()); 544 + errorOut(result);
545 } 545 }
546 for(SyncUserDto user : deleteTeacherList){ 546 for(SyncUserDto user : deleteTeacherList){
547 if(!errorList.contains(user.getYxyUserId())){ 547 if(!errorList.contains(user.getYxyUserId())){
@@ -626,6 +626,10 @@ public class YXYWriteService { @@ -626,6 +626,10 @@ public class YXYWriteService {
626 object.put("name",user.getName()); 626 object.put("name",user.getName());
627 object.put("mobile",user.getMobile()); 627 object.put("mobile",user.getMobile());
628 object.put("sex",user.getSex()); 628 object.put("sex",user.getSex());
  629 + //添加教师 任职任课关系
  630 + JSONArray orgs = new JSONArray();
  631 +
  632 + object.put("userOrgs",orgs);
629 array.add(object); 633 array.add(object);
630 } 634 }
631 return array ; 635 return array ;
@@ -726,4 +730,14 @@ public class YXYWriteService { @@ -726,4 +730,14 @@ public class YXYWriteService {
726 730
727 } 731 }
728 732
  733 +
  734 + private void errorOut(YXYResult result){
  735 + try{
  736 + for(YXYResultDetail detail : result.getData()){
  737 + logger.info(detail.getErr());
  738 + }
  739 + }catch (Exception e){
  740 +
  741 + }
  742 + }
729 } 743 }
cloud/server1/pom.xml
@@ -14,23 +14,6 @@ @@ -14,23 +14,6 @@
14 <description>Demo project for Spring Boot</description> 14 <description>Demo project for Spring Boot</description>
15 15
16 <dependencies> 16 <dependencies>
17 -  
18 - <dependency>  
19 - <groupId>com.aliyun.oss</groupId>  
20 - <artifactId>oss</artifactId>  
21 - <scope>system</scope>  
22 - <version>1</version>  
23 - <systemPath>${project.basedir}/libs/aliyun-sdk-oss-3.8.0.jar</systemPath>  
24 - </dependency>  
25 -  
26 - <dependency>  
27 - <groupId>com.jdom</groupId>  
28 - <artifactId>jdom</artifactId>  
29 - <scope>system</scope>  
30 - <version>1</version>  
31 - <systemPath>${project.basedir}/libs/jdom-1.1.jar</systemPath>  
32 - </dependency>  
33 -  
34 <dependency> 17 <dependency>
35 <groupId>org.springframework.cloud</groupId> 18 <groupId>org.springframework.cloud</groupId>
36 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> 19 <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
cloud/server1/src/main/java/com/sincere/server1/Test2.java
@@ -1,91 +0,0 @@ @@ -1,91 +0,0 @@
1 -package com.sincere.server1;  
2 -  
3 -import com.aliyun.oss.OSS;  
4 -import com.aliyun.oss.OSSClientBuilder;  
5 -  
6 -import java.io.*;  
7 -import java.net.URL;  
8 -  
9 -public class Test2 {  
10 -  
11 - // Endpoint以杭州为例,其它Region请按实际情况填写。  
12 - public static String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";  
13 - // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。  
14 - public static String accessKeyId = "QiuM3PwHTnVotcGy";  
15 - public static String accessKeySecret = "Yqs7RlaC1MioZu2YYJ6u0TdeO13VFC";  
16 -  
17 - public static void main(String[] args) {  
18 - File filePath = new File("D:\\OSS\\video.txt");  
19 - try {  
20 - BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));  
21 -  
22 - String cotnent = null;  
23 -  
24 - int index = 0;  
25 - while ((cotnent=bufferedReader.readLine())!=null){  
26 -  
27 - upLoadNetStraeam(cotnent,"",cotnent.substring(cotnent.lastIndexOf("/")+1,cotnent.length()));  
28 - index++;  
29 - System.out.println("index:"+index);  
30 -  
31 - }  
32 -  
33 - } catch (FileNotFoundException e) {  
34 - e.printStackTrace();  
35 - } catch (IOException e) {  
36 - e.printStackTrace();  
37 - }  
38 -// File[] files = filePath.listFiles();  
39 -// upLoadNetStraeam("http://0575jyzx.oss-cn-hangzhou.aliyuncs.com/Air/Data/898b208f82574ddcba2d439a1e28bd39.mp4", "test", "898b208f82574ddcba2d439a1e28bd39.mp4");  
40 - /* for (File file:  
41 - files) {  
42 -  
43 - upload(file,"Data");  
44 -  
45 - }*/  
46 - }  
47 -  
48 - /**  
49 - * 上传网络流  
50 - * @param url  
51 - * @param path  
52 - * @param name  
53 - */  
54 - public static void upLoadNetStraeam(String url, String path, String name) {  
55 - System.out.println("name:"+name+" url --"+url);  
56 -// 创建OSSClient实例。  
57 - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);  
58 -  
59 -// 上传网络流。  
60 - InputStream inputStream = null;  
61 - try {  
62 - inputStream = new URL(url).openStream();  
63 - } catch (IOException e) {  
64 - e.printStackTrace();  
65 - }  
66 - ossClient.putObject("szyundisk", "YikeData/" + name, inputStream);  
67 -  
68 -// 关闭OSSClient。  
69 - ossClient.shutdown();  
70 -  
71 - }  
72 -  
73 - public static void upload(File file, String path) {  
74 -  
75 -// 创建OSSClient实例。  
76 - OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);  
77 -  
78 -// 上传文件流。  
79 - InputStream inputStream = null;  
80 - try {  
81 - inputStream = new FileInputStream(file);  
82 - ossClient.putObject("szyundisk", "Air/" + path + "/" + file.getName(), inputStream);  
83 -  
84 -// 关闭OSSClient。  
85 - ossClient.shutdown();  
86 - } catch (FileNotFoundException e) {  
87 - e.printStackTrace();  
88 - }  
89 - }  
90 -  
91 -}  
cloud/server1/src/test/java/com/sincere/server1/Server1ApplicationTests.java
@@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
1 -package com.sincere.server1;  
2 -  
3 -import org.junit.Test;  
4 -import org.junit.runner.RunWith;  
5 -import org.springframework.boot.test.context.SpringBootTest;  
6 -import org.springframework.test.context.junit4.SpringRunner;  
7 -  
8 -@RunWith(SpringRunner.class)  
9 -@SpringBootTest  
10 -public class Server1ApplicationTests {  
11 -  
12 - @Test  
13 - public void contextLoads() {  
14 - }  
15 -  
16 -}  
cloud/user_search/pom.xml
@@ -48,14 +48,8 @@ @@ -48,14 +48,8 @@
48 <version>6.4.0.jre8</version> 48 <version>6.4.0.jre8</version>
49 </dependency> 49 </dependency>
50 <dependency> 50 <dependency>
51 - <groupId>io.springfox</groupId>  
52 - <artifactId>springfox-swagger2</artifactId>  
53 - <version>2.5.0</version>  
54 - </dependency>  
55 - <dependency>  
56 - <groupId>io.springfox</groupId>  
57 - <artifactId>springfox-swagger-ui</artifactId>  
58 - <version>2.5.0</version> 51 + <groupId>org.springframework.boot</groupId>
  52 + <artifactId>spring-boot-starter-web</artifactId>
59 </dependency> 53 </dependency>
60 </dependencies> 54 </dependencies>
61 55
cloud/user_search/src/main/java/com/sincere/userSearch/access/MemberFilter.java
1 package com.sincere.userSearch.access; 1 package com.sincere.userSearch.access;
2 2
3 -import com.fasterxml.jackson.databind.ObjectMapper;  
4 import com.sincere.common.exception.ResultException; 3 import com.sincere.common.exception.ResultException;
5 import com.sincere.common.util.TokenUtils; 4 import com.sincere.common.util.TokenUtils;
6 import com.sincere.userSearch.vo.UserInfo; 5 import com.sincere.userSearch.vo.UserInfo;
@@ -10,8 +9,6 @@ import javax.servlet.*; @@ -10,8 +9,6 @@ import javax.servlet.*;
10 import javax.servlet.annotation.WebFilter; 9 import javax.servlet.annotation.WebFilter;
11 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletRequest;
12 import java.io.IOException; 11 import java.io.IOException;
13 -import java.util.HashMap;  
14 -import java.util.Map;  
15 12
16 @WebFilter(urlPatterns = "/user/*") 13 @WebFilter(urlPatterns = "/user/*")
17 public class MemberFilter implements Filter { 14 public class MemberFilter implements Filter {
@@ -22,39 +19,21 @@ public class MemberFilter implements Filter { @@ -22,39 +19,21 @@ public class MemberFilter implements Filter {
22 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { 19 public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
23 20
24 HttpServletRequest req = (HttpServletRequest) request; 21 HttpServletRequest req = (HttpServletRequest) request;
25 -  
26 - String token = req.getHeader(token_string);  
27 - if (StringUtils.isBlank(token)) {  
28 - respFail(response,-5,"token 没有");  
29 - return;  
30 - }  
31 -  
32 -// MemberDetails memberDetails = memberService.getMemberDetailsByToken(tokenId);  
33 -// if (memberDetails == null) this.respFail(response);  
34 - String userId = "" ;  
35 - try{  
36 - userId = TokenUtils.validToken(token);  
37 - }catch (ResultException e){  
38 - respFail(response,e.getCode(),e.getMessage());  
39 - return;  
40 - }  
41 ParameterRequestWrapper requestWrapper = new ParameterRequestWrapper(req); 22 ParameterRequestWrapper requestWrapper = new ParameterRequestWrapper(req);
42 UserInfo userInfo = new UserInfo() ; 23 UserInfo userInfo = new UserInfo() ;
43 - userInfo.setUserId(userId);  
44 - requestWrapper.addObject(userInfo);  
45 - chain.doFilter(requestWrapper, response);  
46 - }  
47 24
48 - private void respFail(ServletResponse response , int code , String message) throws IOException {  
49 - Map<String, Object> map = new HashMap<>();  
50 - map.put("status", code);  
51 - map.put("message", message);  
52 - map.put("data", null);  
53 - ObjectMapper objectMapper = new ObjectMapper();  
54 - String s = objectMapper.writeValueAsString(map);  
55 - response.setCharacterEncoding("UTF-8");  
56 - response.setContentType("application/json; charset=utf-8");  
57 - response.getWriter().write(s); 25 + String token = req.getHeader(token_string);
  26 + if (StringUtils.isNotBlank(token)) {
  27 + try{
  28 + String userId = TokenUtils.validToken(token);
  29 + userInfo.setUserId(userId);
  30 + requestWrapper.addObject(userInfo);
  31 + chain.doFilter(requestWrapper, response);
  32 + }catch (ResultException e){
  33 + chain.doFilter(requestWrapper, response);
  34 + }
  35 + }else {
  36 + chain.doFilter(requestWrapper, response);
  37 + }
58 } 38 }
59 -  
60 } 39 }
cloud/user_search/src/main/java/com/sincere/userSearch/controller/UserController.java
@@ -37,12 +37,11 @@ public class UserController { @@ -37,12 +37,11 @@ public class UserController {
37 37
38 /** 38 /**
39 * 用户类型 0-班主任; 1-任课老师; 2-学生; 3-家长; 10-学校管理员; 39 * 用户类型 0-班主任; 1-任课老师; 2-学生; 3-家长; 10-学校管理员;
40 - * @param userId  
41 */ 40 */
42 @ApiOperation("根据userId 获取用户信息") 41 @ApiOperation("根据userId 获取用户信息")
43 - @RequestMapping(value = "getUserInfo" , method = RequestMethod.POST)  
44 - public void getUserInfo(UserInfo userId){  
45 - 42 + @RequestMapping(value = "getUserInfo" , method = RequestMethod.GET)
  43 + public String getUserInfo(){
  44 + return "aa" ;
46 } 45 }
47 46
48 public void getUserId(){ 47 public void getUserId(){
cloud/user_search/src/main/resources/application.yaml
@@ -3,7 +3,7 @@ server: @@ -3,7 +3,7 @@ server:
3 3
4 spring: 4 spring:
5 application: 5 application:
6 - name: user_search 6 + name: usersearch
7 datasource: 7 datasource:
8 username: szjxtuser 8 username: szjxtuser
9 password: RQminVCJota3H1u8bBYH 9 password: RQminVCJota3H1u8bBYH