1 全局过滤器 public class AuthorizeFilter implements GlobalFilter { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 1.获取请求参数 ServerHttpRequest request = exchange.getRequest(); MultiValueMap<String, String> queryParams = request.getQueryParams(); // 2.获取authorization的值 String authorization = queryParams.getFirst("authorization"); // 3,判断其值是否admin if("admin".equals(authorization)){ // 3.1 是 放行 return chain.filter(exchange); } exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED); // 3.2 拦截 return exchange.getResponse().setComplete(); } }
配置文件 gateway: routes: - id: user-service #唯一标识 uri: lb://userServer #路由地址 predicates: #断言 - Path=/user/** - id: order-service #唯一标识 uri: lb://orderServer #路由地址 predicates: #断言 - Path=/order/** default-filters: - AddRequestHeader=Truth,Itcast is freaking awesome!