原因是header中加了token,把token移除就可以了 @Component @Slf4j public class RequestUrlGlobalFilter implements GlobalFilter { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); String path = request.getURI().getPath(); //ResourceConstant.IGNORING_URLS为忽略权限验证的数组 for(String url : ResourceConstant.IGNORING_URLS){ if(Pattern.matches(url, path)){ HttpHeaders headers = new HttpHeaders(); headers.putAll(exchange.getRequest().getHeaders()); ServerHttpRequest decorator = decorate(exchange, headers); return chain.filter(exchange.mutate().request(decorator).build()); } } return chain.filter(exchange); } private ServerHttpRequestDecorator decorate(ServerWebExchange exchange, HttpHeaders headers) { return new ServerHttpRequestDecorator(exchange.getRequest()) { @Override public HttpHeaders getHeaders() { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.putAll(super.getHeaders()); httpHeaders.remove("authorization"); return httpHeaders; } }; } }
.antMatchers(xx).permitAll()不生效原因
最新推荐文章于 2024-05-26 14:42:28 发布