|
@@ -153,7 +153,7 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
|
|
|
String token = exchange.getRequest().getHeaders().getFirst("Authorization");
|
|
String token = exchange.getRequest().getHeaders().getFirst("Authorization");
|
|
|
if (Strings.isNullOrEmpty(token)) {
|
|
if (Strings.isNullOrEmpty(token)) {
|
|
|
// 三级等保,若小程序请求不带token,则走该校验方法
|
|
// 三级等保,若小程序请求不带token,则走该校验方法
|
|
|
- if (!isEncryptedRequest(exchange.getRequest())) {
|
|
|
|
|
|
|
+ if (isWxAppletRequest(exchange.getRequest()) && !isEncryptedRequest(exchange.getRequest())) {
|
|
|
exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
|
|
exchange.getResponse().setStatusCode(HttpStatus.FORBIDDEN);
|
|
|
return exchange.getResponse().setComplete();
|
|
return exchange.getResponse().setComplete();
|
|
|
}
|
|
}
|
|
@@ -281,10 +281,12 @@ public class WebFluxUserRequestInfoFilter implements GlobalFilter {
|
|
|
private boolean isEncryptedRequest(ServerHttpRequest request) {
|
|
private boolean isEncryptedRequest(ServerHttpRequest request) {
|
|
|
String sign = request.getHeaders().getFirst("sign");
|
|
String sign = request.getHeaders().getFirst("sign");
|
|
|
String time = request.getHeaders().getFirst("time");
|
|
String time = request.getHeaders().getFirst("time");
|
|
|
- return isWxAppletRequest(sign, time) && isValidTime(time) && md5(time).equals(sign);
|
|
|
|
|
|
|
+ return isValidTime(time) && md5(time).equals(sign);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private boolean isWxAppletRequest(String sign, String time) {
|
|
|
|
|
|
|
+ private boolean isWxAppletRequest(ServerHttpRequest request) {
|
|
|
|
|
+ String sign = request.getHeaders().getFirst("sign");
|
|
|
|
|
+ String time = request.getHeaders().getFirst("time");
|
|
|
return StringUtils.hasText(sign) && StringUtils.hasText(time);
|
|
return StringUtils.hasText(sign) && StringUtils.hasText(time);
|
|
|
}
|
|
}
|
|
|
|
|
|