博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小D课堂 - 新版本微服务springcloud+Docker教程_6-04 自定义Zuul过滤器实现登录
阅读量:4325 次
发布时间:2019-06-06

本文共 967 字,大约阅读时间需要 3 分钟。

笔记

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里面定义校验逻辑

转载于:https://www.cnblogs.com/wangjunwei/p/11455702.html

你可能感兴趣的文章
RobotFramework自动化2-自定义关键字
查看>>
[置顶] 【cocos2d-x入门实战】微信飞机大战之三:飞机要起飞了
查看>>
BABOK - 需求分析(Requirements Analysis)概述
查看>>
第43条:掌握GCD及操作队列的使用时机
查看>>
Windows autoKeras的下载与安装连接
查看>>
CMU Bomblab 答案
查看>>
微信支付之异步通知签名错误
查看>>
2016 - 1 -17 GCD学习总结
查看>>
linux安装php-redis扩展(转)
查看>>
Vue集成微信开发趟坑:公众号以及JSSDK相关
查看>>
技术分析淘宝的超卖宝贝
查看>>
i++和++1
查看>>
react.js
查看>>
P1313 计算系数
查看>>
NSString的长度比较方法(一)
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>
生产订单“生产线别”带入生产入库单
查看>>
crontab导致磁盘空间满问题的解决
查看>>