c++ 实现一个object类_一个Java类就能实现微服务架构的权限认证

之前在《每天10分钟玩转Spring Cloud基础》课程中介绍了Zuul实现API Gateway。通过对Zuul的配置来将请求路由到指定的微服务。课程中也提到,微服务框架中的权限和服务的限流等都需要在网关层来实现,让具体的服务可以更加专注其业务的开发。本篇介绍Zuul实现权限认证的功能。

03ae2ba0be9076a1706dce03f6a94459.png

目前开源的安全认证产品中以Spring Security和Apache Shiro最为常用,其中Shiro比Spring Security更加轻量级一些。但如果业务场景并不复杂,也无需复杂的架构,那么手写一个ZuulFitler也可以解决很多的问题。

通过继承com.netflix.zuul.ZuulFilter这个抽象类,实现其中的抽象方法就可以完成微服务框架的权限认证。

创建LoginFilter

1、 新建LoginFilter类,继承ZuulFilter。并实现其中的filterType、filterOrder、shouldFilter、run方法

c74a2c64ccbd3a0b5961e09b3599e232.png
efd16ec9c2a2b2bc3d6380bfd0022a53.png

2、 filterType中的存在4中过滤类型

2.1、pre:在请求被路由之前调用。

2.2、route:将请求路由到微服务。

2.3、post:在请求被路由到微服务之后调用。

2.4、error:在发生错误时被调用。

3、 filterOrder中的数字是过滤器的执行顺序,数字越小执行顺序越靠前。

4、 shouldFilter返回布尔值,返回true是需要权限校验,反之不需要。

5、 run是具体的过滤器的规则,本例中使用从header或parameter中获取token字符串来判断校验是否通过。

测试

启动Eureka Server、workflow-service和gateway-zuul三个服务,使用postman进行测试。

1、 先不输入token。

a33161e28f1967a6e7d901db0be04426.png

2、 输入token。

83e0722591bb0c5331459b8f871a10a7.png

输入token后,请求被路由到了/workflow/getWorkflow这个地址上。实现了权限验证的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值