主页 > imtoken钱包下载2.0版本 > 比特币全局服务器 SpringCloud Alibaba微服务实战(七)

比特币全局服务器 SpringCloud Alibaba微服务实战(七)

imtoken钱包下载2.0版本 2023-02-01 06:20:36

说在前面

全局过滤器作用于所有路由,不需要单独配置。 我们可以用它来实现很多业务需求统一处理比特币全局服务器,比如权限认证、IP访问限制、监控、限流等等。

创建路由网关(Gateway)启动服务云账号,可参考文章:SpringCloud Alibaba微服务实战(六)——路由网关(Gateway)

在上一篇文章的基础上比特币全局服务器,创建一个全局过滤器

实现GlobalFilter、Ordered接口,在类上添加@Component注解,使用过滤功能

package com.zsy.springcloud.filter;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.Maps;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;

比特币分叉会影响比特币价格吗_比特币转错到比特币现金地址了_比特币全局服务器

import org.springframework.core.io.buffer.DataBuffer; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpResponse; import org.springframework.stereotype.Component; import org.springframework.web.server.ServerWebExchange; import reactor.core.publisher.Mono; import java.util.Map; /** * 鉴权过滤器

比特币转错到比特币现金地址了_比特币分叉会影响比特币价格吗_比特币全局服务器

*/ @Component public class AuthFilter implements GlobalFilter, Ordered { @Override public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) { String token = exchange.getRequest().getQueryParams().getFirst("token"); if (token == null || token.isEmpty()) { ServerHttpResponse response = exchange.getResponse(); // 封装错误信息 Map<String, Object> responseData = Maps.newHashMap(); responseData.put("code", 401);

比特币全局服务器_比特币转错到比特币现金地址了_比特币分叉会影响比特币价格吗

responseData.put("message", "非法请求"); responseData.put("cause", "Token is empty"); try { // 将信息转换为 JSON ObjectMapper objectMapper = new ObjectMapper(); byte[] data = objectMapper.writeValueAsBytes(responseData); // 输出错误信息到页面 DataBuffer buffer = response.bufferFactory().wrap(data); response.setStatusCode(HttpStatus.UNAUTHORIZED); response.getHeaders().add("Content-Type", "application/json;charset=UTF-8"); return response.writeWith(Mono.just(buffer));

比特币全局服务器_比特币转错到比特币现金地址了_比特币分叉会影响比特币价格吗

} catch (JsonProcessingException e) { e.printStackTrace(); } } return chain.filter(exchange); } /** * 设置过滤器的执行顺序 * * @return */

比特币转错到比特币现金地址了_比特币全局服务器_比特币分叉会影响比特币价格吗

@Override public int getOrder() { return Ordered.LOWEST_PRECEDENCE; } }

验证自定义 AuthFilter

1.浏览器访问:777/cloud-account/getAccount,返回如下图

在这里插入图片描述

2、浏览器访问::777/cloud-account/getAccount?token=token1234,返回如下图

在这里插入图片描述

路由网关(Gateway)全局过滤配置完成

码云地址: