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 自定义鉴权失败 返回数据结构相关推荐

  1. Spring Cloud Gateway (六) 自定义 Global Filter

    Spring Cloud Gateway (六) 自定义 Global Filter 简介     在前面五篇的分析中,对 Spring Cloud Gateway 的 filter 组件有了一个大概 ...

  2. spring cloud gateway中解决第一次请求失败的问题

    spring cloud gateway中解决第一次请求失败的问题 参考文章: (1)spring cloud gateway中解决第一次请求失败的问题 (2)https://www.cnblogs. ...

  3. Spring Cloud Gateway 3.1.3最新版中文手册官网2022

    Spring Cloud Gateway 3.1.3 该项目提供了一个库,用于在 Spring WebFlux 之上构建 API 网关.Spring Cloud Gateway 旨在提供一种简单而有效 ...

  4. Spring Cloud Gateway 过滤器执行顺序原理分析

    过滤器类型 GlobalFilter:全局过滤器,对所有路由生效.通过实现GlobalFilter接口创建 GatewayFilter:网关过滤器,也可以说是局部过滤器.自定义过滤器,只对配置了此过滤 ...

  5. 「springcloud 2021 系列」Spring Cloud Gateway + OAuth2 + JWT 实现统一认证与鉴权

    通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权. 将采用 Nacos 作为注册中心,Gateway 作为网关,使用 nimbus-jose-jwt JWT 库操作 JWT 令牌 理论介绍 ...

  6. 微服务接入oauth2_微服务权限终极解决方案,Spring Cloud Gateway+Oauth2实现统一认证和鉴权!...

    最近发现了一个很好的微服务权限解决方案,可以通过认证服务进行统一认证,然后通过网关来统一校验认证和鉴权.此方案为目前最新方案,仅支持Spring Boot 2.2.0.Spring Cloud Hox ...

  7. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

  8. 4. Spring Cloud Gateway自定义Filter

    1. Filter介绍 Filter是实现在网关路由之前或之后加入一些逻辑,或者拦截过滤的工具, 称为过滤器. 在Spring Cloud Gateway中除了内置的Filter之外,也可以自定义Fi ...

  9. 聊聊spring cloud gateway的GlobalFilter

    序 本文主要研究一下spring cloud gateway的GlobalFilter GatewayAutoConfiguration spring-cloud-gateway-core-2.0.0 ...

最新文章

  1. 太原理工大学计算机专业多少分录取分数线,多少分能上山西太原理工大学,往年全国各省各专业录取分数线出炉...
  2. 大佬带你详解Python反爬虫措施以及爬虫编写注意事项
  3. group by+having查询
  4. deepin系统15.6版本安装执行那个exe文件_深度系统(Deepin Linux)U盘安装教程
  5. C语言 fread 函数 - C语言零基础入门教程
  6. DNF脚本完整源码编辑可用
  7. Python查看图片模式及像素
  8. free video java hd_0326 iframe和video experience
  9. 伍斯特理工学院计算机专业,伍斯特理工学院计算机科学专业
  10. wma转mp3怎么弄_mp3格式转换器如何把wma转mp3格式(教程)
  11. U3D游戏开发框架(三)——UI管理器
  12. Linux命令老是记不住?一篇文章帮你解决。Linux常用命令汇总
  13. 运动检测与跟踪之动态背景的更新
  14. android 5.0 pie,Android各版本份额占比出炉:Android Pie仍未知
  15. 帝国cms php循环,帝国CMS listshowclass循环栏目标签
  16. 全球与中国能力和技能管理软件市场深度研究分析报告
  17. (一)BST树(二叉搜索树)
  18. 基于Golang的个人博客-goblog
  19. Maven Archetype 开发
  20. 2022美国大学生数学建模竞赛F题思路

热门文章

  1. 什么是tv域名?.tv域名不能实名吗?
  2. [转载]汇编语言程序设计第二版答案  沈美明
  3. 轴承特征频率计算公式
  4. RTX3080 Ti 怎么样 RTX3080 Ti性能相当于什么水平
  5. 【转】如何检测wifi信号强度? -- 不错
  6. logo设计的色彩颜色搭配-北泓设计
  7. 2021最新华为Android校招面试题,附答案
  8. imp导入时遇到的问题及解决方式
  9. 荣耀60 SE参数配置
  10. proteus各个版本下载