spring-cloud-gateway GlobalFilter 自定义鉴权失败 返回数据结构
1、 在使用 spring-cloud-gateway 拦截鉴权的时候的时候,错误一般返回401。
我们该如果自定义自己的返回权限呢。图中红色部分就是自定义鉴权失败返回数据结构。
@Configuration @ComponentScan(basePackages = "com.xx.test") @Slf4j public class GateWayFiler implements GlobalFilter {/*** 1.首先网关检查token是否有效,无效返回自定数据结构* 2.调用签权服务器看是否对该请求有权限,有权限进入下一个filter,无效返回自定数据结构* @param exchange* @param chain* @return*/@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {ServerHttpRequest request = exchange.getRequest();String url = request.getPath().value();//不需要网关签权的urlif (url.contains("/auth")) {return chain.filter(exchange);}if(hasPower()){//TODO } return noPower(exchange);}/*** 判断是否有权限* @return*/private boolean hasPower(){return false;}/*** 网关拒绝,返回Result** @param*/ private Mono<Void> noPower(ServerWebExchange serverWebExchange) {// 权限不够拦截serverWebExchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);Result data = Result.fail(SystemErrorType.NO_POWER);DataBuffer buffer = serverWebExchange.getResponse().bufferFactory().wrap(JSON.toJSONString(data).getBytes(StandardCharsets.UTF_8));ServerHttpResponse response = serverWebExchange.getResponse();response.setStatusCode(HttpStatus.UNAUTHORIZED);//指定编码,否则在浏览器中会中文乱码response.getHeaders().add("Content-Type", "application/json;charset=UTF-8");return response.writeWith(Mono.just(buffer));} }Result结构如下
spring-cloud-gateway GlobalFilter 自定义鉴权失败 返回数据结构相关推荐
- Spring Cloud Gateway (六) 自定义 Global Filter
Spring Cloud Gateway (六) 自定义 Global Filter 简介 在前面五篇的分析中,对 Spring Cloud Gateway 的 filter 组件有了一个大概 ...
- spring cloud gateway中解决第一次请求失败的问题
spring cloud gateway中解决第一次请求失败的问题 参考文章: (1)spring cloud gateway中解决第一次请求失败的问题 (2)https://www.cnblogs. ...
- Spring Cloud Gateway 3.1.3最新版中文手册官网2022
Spring Cloud Gateway 3.1.3 该项目提供了一个库,用于在 Spring WebFlux 之上构建 API 网关.Spring Cloud Gateway 旨在提供一种简单而有效 ...
- Spring Cloud Gateway 过滤器执行顺序原理分析
过滤器类型 GlobalFilter:全局过滤器,对所有路由生效.通过实现GlobalFilter接口创建 GatewayFilter:网关过滤器,也可以说是局部过滤器.自定义过滤器,只对配置了此过滤 ...
- 「springcloud 2021 系列」Spring Cloud Gateway + OAuth2 + JWT 实现统一认证与鉴权
通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权. 将采用 Nacos 作为注册中心,Gateway 作为网关,使用 nimbus-jose-jwt JWT 库操作 JWT 令牌 理论介绍 ...
- 微服务接入oauth2_微服务权限终极解决方案,Spring Cloud Gateway+Oauth2实现统一认证和鉴权!...
最近发现了一个很好的微服务权限解决方案,可以通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权.此方案为目前最新方案,仅支持Spring Boot 2.2.0.Spring Cloud Hox ...
- 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...
- 4. Spring Cloud Gateway自定义Filter
1. Filter介绍 Filter是实现在网关路由之前或之后加入一些逻辑,或者拦截过滤的工具, 称为过滤器. 在Spring Cloud Gateway中除了内置的Filter之外,也可以自定义Fi ...
- 聊聊spring cloud gateway的GlobalFilter
序 本文主要研究一下spring cloud gateway的GlobalFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0 ...
最新文章
- 太原理工大学计算机专业多少分录取分数线,多少分能上山西太原理工大学,往年全国各省各专业录取分数线出炉...
- 大佬带你详解Python反爬虫措施以及爬虫编写注意事项
- group by+having查询
- deepin系统15.6版本安装执行那个exe文件_深度系统(Deepin Linux)U盘安装教程
- C语言 fread 函数 - C语言零基础入门教程
- DNF脚本完整源码编辑可用
- Python查看图片模式及像素
- free video java hd_0326 iframe和video experience
- 伍斯特理工学院计算机专业,伍斯特理工学院计算机科学专业
- wma转mp3怎么弄_mp3格式转换器如何把wma转mp3格式(教程)
- U3D游戏开发框架(三)——UI管理器
- Linux命令老是记不住?一篇文章帮你解决。Linux常用命令汇总
- 运动检测与跟踪之动态背景的更新
- android 5.0 pie,Android各版本份额占比出炉:Android Pie仍未知
- 帝国cms php循环,帝国CMS listshowclass循环栏目标签
- 全球与中国能力和技能管理软件市场深度研究分析报告
- (一)BST树(二叉搜索树)
- 基于Golang的个人博客-goblog
- Maven Archetype 开发
- 2022美国大学生数学建模竞赛F题思路