小D课堂 - 新版本微服务springcloud+Docker教程_6-04 自定义Zuul过滤器实现登录
笔记
4、自定义Zuul过滤器实现登录鉴权实战
简介:自定义Zuul过滤器实现登录鉴权实战
1、新建一个filter包
2、新建一个类,实现ZuulFilter,重写里面的方法
3、在类顶部加注解,@Component,让Spring扫描
开始
比如下单接口,用户一定要登陆。要传一个token过来判断是否登陆,再去访问对应的接口
登陆的过滤器肯定在整个流程肯定里面最先处理。这里的pre Filters这里最先进行拦截。如果没登陆返回一个403。如果已经登陆,继续访问请求的接口

只需要对需要登陆的接口做限制和过滤即可。
新建Filter.在zuul的项目里。
先建个filter的包

自定义LoginFilter

首先需要继承ZuulFilter,

然后实现里面的方法



给这个类加上@Component注解让spring去扫描这个类

FilterType是过滤器的类型,登陆需要的是前置过滤器

所以设置为PRE_TYPE

order越小越先执行。

order设置为4

设置为true使这个过滤器生效

在这里我们获取到context对象,输出url地址。先测试一下

重启应用。访问测试。输出了URI和url

把常量放在前面,因为常量不可能为空。request.getRequestURI可能为空


这里改成/order/save


什么都没有打印

访问下单接口



访问product接口

没有被拦截
拦截到的操作

Unauthorized是401未授权

可以去搜索下jwt springboot的应用

重启应用测试,请求的时候一定要带token过来。
这里是不带token的测试

到断点这里。token是null值


最终返回null

页面返回了401状态码

在参数后面加上token的值

token可以获取到不为空了。

放行,最终把数据返回来了

把token放在header里面


最终放行

最终返回数据。

以上就是在网关里面做 用户登陆的鉴权
回顾
匹配的地址可以放在一个本地的缓存里面。

大项目用ACL的方式去做。小项目直接在代码里面写if else判断。多判断几个地址


然后我们就在zuulException里面定义校验逻辑
小D课堂 - 新版本微服务springcloud+Docker教程_6-04 自定义Zuul过滤器实现登录的更多相关文章
- 小D课堂 - 新版本微服务springcloud+Docker教程_汇总
小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介 小D课堂 - 新版本微服务springcloud+Docker教程_1_02技术选型 小D课堂 - 新版本微服务s ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_1_01课程简介
笔记 ============================================= SpringCloud课程笔记.txt 第一章 课程介绍和学习路线 1.微服务架构SpringClou ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响
笔记 4.SpringCloud微服务核心组件Eureka介绍和闭源后影响 简介: SpringCloud体系介绍 官方地址:http://projec ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-01 什么是微服务的注册中心
笔记 第三章 SpringCloud核心组件注册中心 1.什么是微服务的注册中心 简介:讲解什么是注册中心,常用的注册中心有哪些 (画图) 理解注册中心:服务 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_04微服务下电商项目基础模块设计
笔记 4.微服务下电商项目基础模块设计 简介:微服务下电商项目基础模块设计 分离几个模块,课程围绕这个基础项目进行学习 小而精的方式学习微服务 1.用户服务 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_03常见的微服务框架
笔记 3.常见的微服务框架 简介:讲解常用的微服务框架 consumer: 调用方 provider: 被调用方 一个接口一般都会充当两个角色(不是同时充当) ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-06 zuul微服务网关集群搭建
笔记 6.Zuul微服务网关集群搭建 简介:微服务网关Zull集群搭建 1.nginx+lvs+keepalive https://www.cnblogs.com/liuyisai/ ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-02 springcloud网关组件zuul
笔记 2.SpringCloud的网关组件zuul基本使用 简介:讲解zuul网关基本使用 1.加入依赖 2.启动类加入注解 @EnableZuulProxy 默认集成断路器 ...
- 小D课堂 - 新版本微服务springcloud+Docker教程_6-01 微服务网关介绍和使用场景
笔记 第六章 微服务网关zuul开发实战 1.微服务网关介绍和使用场景 简介:讲解网关的作用和使用场景 (画图) 1)什么是网关 API Gateway,是系 ...
随机推荐
- Java&Selenium&TestNG&ZTestReport 自动化测试并生成HTML自动化测试报告
一.摘要 本篇博文将介绍如何借助ZTestReport和HTML模版,生成HTML测试报告的ZTestReport 源码Clone地址为 https://github.com/zhangfei1984 ...
- [Nx] Note for learning Nx
Proxy configuration: When we have already fews applications running in the workspace, and we want to ...
- [Svelte 3] Use an onMount lifecycle method to fetch and render data in Svelte 3
Every Svelte component has a lifecycle that starts when it is created, and ends when it is destroyed ...
- For 循环的嵌套与九九乘法表
㈠通过程序,在页面中输入如下图形 * * * * * * * * * * * * * * * * * * * * * * * * * 代码如下: //向body中输入一个内容 //document. ...
- linux 安装go环境
https://golang.google.cn/dl/ 进入这个地址选择一个版本下载 wget https://dl.google.com/go/go1.13.4.linux-amd64.tar.g ...
- hdu 4998 Rotate 点的旋转 银牌题
Rotate Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- noi 统计前k大的数
描述 给定一个数组,统计前k大的数并且把这k个数从大到小输出. 输入 第一行包含一个整数n,表示数组的大小.n < 100000. 第二行包含n个整数,表示数组的元素,整数之间以一个空格分开.每 ...
- logstash6.5.4同步mysql数据到elasticsearch 6.4.1
下载logstash-6.5.4 ZIP解压和es 放到es根目录下 下载mysql jdbc的驱动 mysql-connector-java-8.0.12 放在任意目录下 以下方式采用动态模板,还有 ...
- Win10 下载 masmplus
一.下载: masmplus链接: http://www.aogosoft.com/masmplus/
- HDU 2176 取(m堆)石子游戏 —— (Nim博弈)
如果yes的话要输出所有情况,一开始觉得挺难,想了一下也没什么. 每堆的个数^一下,答案不是0就是先取者必胜,那么对必胜态显然至少存在一种可能性使得当前局势变成必败的.只要任意选取一堆,把这堆的数目变 ...