做下载网站用阿里云的什么产品,goland 网站开发,html项目案例实战,建个网站费用多少意味着有很多相同接口的实现类#xff0c;那么必定会有优先级的问题。于是Spring就提供了Ordered这个接口#xff0c;来处理相同接口实现类的优先级问题。
public class AuthorizeFilter implements Ordered, GlobalFilter {Overridepublic MonoVoid filter(ServerW…意味着有很多相同接口的实现类那么必定会有优先级的问题。于是Spring就提供了Ordered这个接口来处理相同接口实现类的优先级问题。
public class AuthorizeFilter implements Ordered, GlobalFilter {Overridepublic MonoVoid filter(ServerWebExchange exchange, GatewayFilterChain chain) {//1.获取request和response对象ServerHttpRequest request exchange.getRequest();ServerHttpResponse response exchange.getResponse();//2.判断是否是登录if(request.getURI().getPath().contains(/login)){//放行return chain.filter(exchange);}//3.获取tokenString token request.getHeaders().getFirst(token);//4.判断token是否存在if(StringUtils.isBlank(token)){response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}//5.判断token是否有效try {Claims claimsBody AppJwtUtil.getClaimsBody(token);//是否是过期int result AppJwtUtil.verifyToken(claimsBody);if(result 1 || result 2){response.setStatusCode(HttpStatus.UNAUTHORIZED);return response.setComplete();}} catch (Exception e) {e.printStackTrace();}//6.放行return chain.filter(exchange);}/*** 优先级设置 值越小 优先级越高* return*/Overridepublic int getOrder() {return 0;}GlobalFilter、DefaultFilter、GatewayFilter与Filter
除Filter外其余都是网关中专有的。 ServerWebExchange :请求和响应的上下文 URL和URI URI统一资源标志符Uniform Resource Identifier URL统一资源定位符uniform resource location Mono和Flux都实现了Publisher接口也就是发布者一个Mono对象中最多发射一个信号可能是一个值或者空或者一个error而Flux可以发射多个信号。
ServerWebExchange
1.处理web请求 2.处理web响应 3.提供http上下文信息