一、gateway过滤器返回json数据、集群搭建
![在这里插入图片描述](https://img-blog.csdnimg.cn/2021070920330840.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3hfZF9uXzEyMw==,size_16,color_FFFFFF,t_70)
@Component
public class LoginFilter implements GlobalFilter, Ordered {
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
ServerHttpResponse response= exchange.getResponse();
//1.请求头是否携带token
String token = request.getHeaders().getFirst("token");
if (!StringUtils.isNotEmpty(token)){
if ("admin".equals(token)){
return chain.filter(exchange);
}
}
//2.判断请求路径是否为登录路径
String path= request.getPath().toString();
if(path.contains(" /login")) {
return chain.filter(exchange);//放行
}
//响应一个结果----请先登陆
Map data = new HashMap();//声明一个Result--—-
DataBuffer buffer = null;
try {
data.put( "status", 401);
data.put("msg","请先登陆");
//fastJson
byte[] datas = JSON.toJSONString(data). getBytes( "utf-8");
buffer = response.bufferFactory().wrap(datas);
response.setStatusCode(HttpStatus. UNAUTHORIZED);
response.getHeaders().add("Content-Type","application/json; chanset=UTF-8");
}catch (Exception e){