main
黄海 11 months ago
parent 8062559835
commit 7b6fd824f7

@ -15,15 +15,14 @@ import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
@EnableZuulProxy
// Zuul网关 @EnableZuulProxy 和 @EnableZuulServer 的区别
// https://www.cnblogs.com/c2g5201314/p/12993753.html
public class GwApplication {
@Autowired
private Environment environment;
@RequestMapping("/")
public String index() {
return "当前配置文件环境为:" + environment.getActiveProfiles()[0] + ", Hello, gw-charge!!!";
return "当前配置文件环境为:" + environment.getActiveProfiles()[0] + ", Hello, gw-exam!";
}
public static void main(String[] args) {

@ -14,8 +14,6 @@ import org.springframework.data.redis.serializer.StringRedisSerializer;
@Configuration
@EnableCaching //启用缓存,这个注解很重要;
public class RedisCacheConfig extends CachingConfigurerSupport {
/**
* .
*/

@ -6,13 +6,10 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
//SpringBoot系列教程web篇之过滤器Filter使用指南
//https://blog.csdn.net/cxyxysam/article/details/135483785
@WebFilter(urlPatterns = "/*")
public class CorsFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
public void init(FilterConfig filterConfig) {
}
@Override
@ -20,8 +17,6 @@ public class CorsFilter implements Filter {
FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
String uri = request.getRequestURI();
request.getServerName();
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
@ -35,6 +30,5 @@ public class CorsFilter implements Filter {
@Override
public void destroy() {
// TODO Auto-generated method stub
}
}

@ -32,7 +32,7 @@ public class ZuulPreFilter extends ZuulFilter {
private static final Logger logger = LoggerFactory.getLogger(ZuulPreFilter.class);
//jwt的密匙
@Value("${jwt.secret}")
private String secret;
@ -42,8 +42,10 @@ public class ZuulPreFilter extends ZuulFilter {
@Autowired
private AsyncTask asyncTask;
//白名单
List<String> should_not_filter = new ArrayList<>();
//黑名单
List<String> no_access_filter = new ArrayList<>();
public List<String> getNo_access_filter() {
@ -58,7 +60,6 @@ public class ZuulPreFilter extends ZuulFilter {
return should_not_filter;
}
public void setShould_not_filter(List<String> should_not_filter) {
this.should_not_filter = should_not_filter;
}
@ -111,7 +112,7 @@ public class ZuulPreFilter extends ZuulFilter {
ctx.getResponse().setStatus(HttpServletResponse.SC_OK);
return ctx.getResponse();
}
if (Authorization == null || Authorization.length() == 0) {
if (Authorization == null || Authorization.isEmpty()) {
ctx.setSendZuulResponse(false);
ctx.setResponseBody("{\"msg\":\"凭证过期\" ,\"code\":1002}");
ctx.getResponse().setContentType("text/json; charset=utf-8");
@ -120,8 +121,6 @@ public class ZuulPreFilter extends ZuulFilter {
}
String token = Authorization.replaceFirst(JwtUtil.AUTHORIZATION_STARTER, "");
Claims cs;
try {
//JAVA加密的我尝试解析一下
@ -152,9 +151,8 @@ public class ZuulPreFilter extends ZuulFilter {
String phone = (String) cs.get(JwtUtil.CLAIM_KEY_PHONE);
String type = (String) cs.get(JwtUtil.CLAIM_KEY_TYPE);
//验证数据是否过期
String tokenkey = "";
String tokenkey;
if (StringUtils.isEmpty(type)) {
tokenkey = TokenService.ONLINE_USER + userId + phone;
} else {
@ -170,7 +168,7 @@ public class ZuulPreFilter extends ZuulFilter {
return ctx.getResponse();
} else {
if (checkToken.equals(Authorization)) {
// tokenService.freshTime(TokenService.ONLINE_USER+userId);
tokenService.freshTime(TokenService.ONLINE_USER + userId);
} else {
ctx.setSendZuulResponse(false);
ctx.setResponseBody("{\"msg\":\"凭证过期请重新登录\" ,\"code\":1002}");

@ -85,6 +85,4 @@ public class I100cResponse {
res.setMsg(msg);
return general(res);
}
}

@ -4,6 +4,7 @@ import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.nio.charset.StandardCharsets;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@ -57,7 +58,7 @@ public class JwtUtil {
return Jwts.builder()
.setClaims(claims)
// .setExpiration(date)
.signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.signWith(SignatureAlgorithm.HS256, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.compact();
}
@ -68,7 +69,7 @@ public class JwtUtil {
return Jwts.builder()
.setClaims(claims)
.setExpiration(date)
.signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.signWith(SignatureAlgorithm.HS256, secret) //采用什么算法是可以自己选择的不一定非要采用HS512
.compact();
}
public static Claims getClaimsFromToken(String token, String secret) {
@ -79,7 +80,15 @@ public class JwtUtil {
.parseClaimsJws(token)
.getBody();
} catch (Exception e) {
claims = null;
try {
//NODEJS加密的我尝试解析一下
claims = Jwts.parser()
.setSigningKey(secret.getBytes(StandardCharsets.UTF_8))
.parseClaimsJws(token)
.getBody();
} catch (Exception err) {
claims = null;
}
}
return claims;
}

@ -4,108 +4,10 @@ jwt:
filter:
should_not_filter:
- /gw/login
- /userapi/getOpenId
- /userapi/weChatAuth
- /userapi/mobileLogin
- /userapi/sendMs
- /financeapi/wxSmallApp/wxSmallAppPayNotice
- /stationapi/station/queryNearbyStation
- /stationapi/station/queryNearbyStationMapMode
- /stationapi/station/queryYiXingWebsiteStationInfo
- /stationapi/station/identifyQR/PfV6GsETrX.txt
- /stationapi/station/PfV6GsETrX.txt
- /stationapi/station/queryStationList
- /stationapi/station/queryStationOperator
- /noticeapi/park/parkCoupon
- /userapi/getChewei
- /cheweiapi
- /financeapi/alipay/aliPayNotice
- /financeapi/alipay/aliPayNoticeFromSmallApp
- /financeapi/wxpay/wxAppPayNotice
- /financeapi/alipay/aliPayNoticeByCharge
- /userapi/wxLogin
- /userapi/forgetPW
- /userapi/loginByPW
- /userapi/getAccessToken
- /userapi/appWxLogin
- /userapi/getDictByKey
- /userapi/adPage/queryAdPage
- /userapi/appVersion/*
- /userapi/weChat/*
- /userapi/redPacket/getRedPacketDrawRecord
- /userapi/h5/*
- /userapi/groundLockStatus
- /userapi/getDictByKey
- /orderapi/inspectionReport/queryOrder
- /orderapi/inspectionReport/queryUserInfo
- /orderapi/inspectionReport/notificationShallowReport
- /orderapi/inspectionReport/notificationDeepReport
- /openapi/lock/queryConnectorId
- /openapi/lock/queryParkingLock
- /ZhuQue/*
- /userapi/userCard/searchCard
- /orderbkapi/station/querySaasStationIdsInfo
- /orderbkapi/station/querySaasConnectorIdsInfo
- /orderbkapi/saas/chargeorder/saasChargeOrderPageInfo
- /orderbkapi/station/querySaasEquipmentIdsInfo
zuul:
#路径配置
routes:
# 1、用户模块
# UserInfoController
# @RequestMapping("/userapi/user")
userapi:
stripPrefix: false
path: /userapi/** # 所有匹配/usrerapi/**的路径将被路由到/userapi/**
# sensitiveHeaders是黑名单且默认不为空。 因此要使Zuul发送所有标头忽略的标头除外您必须将其明确设置为空列表。 如果要将cookie或授权标头传递到后端则必须这样做。
sensitiveHeaders:
#2、财务模块
financeapi:
stripPrefix: true
path: /financeapi/**
sensitiveHeaders:
#3、充电站模块
stationapi:
stripPrefix: true
path: /stationapi/**
sensitiveHeaders:
#4、订单模块
orderapi:
stripPrefix: false
path: /orderapi/**
sensitiveHeaders:
#5、互联互通模块
openapi:
stripPrefix: true
path: /openapi/**
sensitiveHeaders:
#6、订单后台模块
orderbkapi:
stripPrefix: false
path: /orderbkapi/**
sensitiveHeaders:
#7、协议模块 【这个为什么没有路由地址指向呢?】
protocolapi:
stripPrefix: false
path: /protocolapi/**
sensitiveHeaders:
#8、分发模块
distribute:
stripPrefix: false
path: /distribute/**
sensitiveHeaders:
#9、通知模块
noticeapi:
stripPrefix: false
path: /noticeapi/**
sensitiveHeaders:
#10、通知模块
cheweiapi:
stripPrefix: false
path: /cheweiapi/**
sensitiveHeaders:
#11、黄海自己扩展的模块,后续所有的JAVA接口全部增加到这个路径下
ZhuQue:
stripPrefix: false
@ -119,82 +21,6 @@ ZhuQue:
listOfServers: http://zhu-que:9000
# 用户模块
userapi:
ribbon:
listOfServers: http://ms-user:7022
# 订单后台模块
orderbkapi:
ribbon:
listOfServers: http://ms-admin:7011
#分发模块
distribute:
ribbon:
listOfServers: http://ms-distribute:7012
# 财务模块
financeapi:
ribbon:
listOfServers: http://ms-finance:7014
# 充电站模块
stationapi:
ribbon:
listOfServers: http://ms-station:7020
# 协议模块
protocolapi:
ribbon:
listOfServers: http://ms-protocol:7024
# 通知模块
cheweiapi:
ribbon:
listOfServers: http://cz.api.cheweiguanjia.com
# 互联互通模块
openapi:
ribbon:
listOfServers: http://ms-openapi:7016
# 通知模块
noticeapi:
ribbon:
listOfServers: http://i100c.3322.org:30745
# 订单模块
orderapi:
ribbon:
listOfServers: http://ms-order:7017
#protocolshenghongapi:
# ribbon:
# listOfServers: http://i100c.3322.org:31766
taskapi:
ribbon:
listOfServers: http://ms-task:7021
#walletapi:
# ribbon:
# listOfServers: http://i100c.3322.org:30723
#websocketocppapi:
# ribbon:
# listOfServers: http://i100c.3322.org:30725
#mgrapi:
# ribbon:
# listOfServers: http://ms-saas-mgr:7026
#excelapi:
# ribbon:
# listOfServers: http://i100c.3322.org:30326
ribbon: #负载均衡
eureka:
enabled: false #禁用eureka不依赖 eureka
@ -227,20 +53,6 @@ spring:
max-idle: 8
min-idle: 0
# Dinger(叮鸽)基于springboot实现的群机器人消息发送中间件入门使用
# https://blog.51cto.com/u_15891990/5908802
dinger:
project-id: ${spring.application.name}-${spring.profiles.active}
dingers:
# 使用钉钉机器人, 请根据自己机器人配置信息进行修改
dingtalk:
# tokenId是创建机器人的webhook
tokenId: ad3700d79705ea1502e57c5fa170fda23d5c6502f3d0410a66dbc2a8e1d06986
# secret是创建机器人的加签
secret: SEC167efa8be3412d3b9dbf87286d9b837836aabd79cf20f9966001333a287a39a5

@ -216,14 +216,3 @@ spring:
max-active: 8
max-idle: 8
min-idle: 0
dinger:
project-id: ${spring.application.name}-${spring.profiles.active}
dingers:
# 使用钉钉机器人, 请根据自己机器人配置信息进行修改
dingtalk:
# tokenId是创建机器人的webhook
tokenId: 6c0cd9de94359329fe166dfefe39da0d8d3fba59211dfdc64d8aba1d1acd89fb
# secret是创建机器人的加签
secret: SEC9e3b8638d5670215e966efc891be4c7d83c09dd8f032df7ca84972a2661effb7
Loading…
Cancel
Save