码迷,mamicode.com
首页 > 编程语言 > 详细

Spring cloud微服务安全实战-4-10Zuul网关安全开发(三)

时间:2019-11-28 01:25:31      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:图片   处理   依赖   src   token   封装   spring   业务   就是   


首先把地址给它
技术图片

发送post请求,请求的数据就是这个entity对象。
技术图片
最后返回的值要封装到TokenInfo里面
技术图片
如果一切正常的话就会拿到一个响应的实体,实体里面就包含了TokenInfo
技术图片
打印实体到控制台。最终返回response的body
技术图片

审计日志

技术图片

技术图片
技术图片


技术图片

技术图片
跟在Oauth的过滤器后面  所以这里是2
技术图片
模拟进来的时候插入一条数据。
技术图片

授权的过滤器

技术图片

授权的过滤器稍微复杂一点。要把主干逻辑写一下
技术图片

技术图片
技术图片

技术图片

判断当前的请求是不是需要身份认证,或者是需不需要做权限的判断。
生成isNeedAuth
技术图片
技术图片



拿到tokenInfo
技术图片
之前在OAuth的Filter里面认证成功后 设置了Attribute
技术图片
不为空且是 激活状态的
技术图片
没有拿到认证的信息 就写个日志,处理错误。
技术图片
处理一个401的错误。
技术图片

能拿到用户信息,下一步就要判断权限。如果没有权限那么就报403的错误。
技术图片
技术图片

生成一个随即的整数 和2 取模,只有两种情况,一种是1 一种是0. 也就是有有50%可能被 403状态码拒掉。 50%的可能性会通过。
技术图片

handlerError

最终要返回json的ContentType
技术图片
相应的状态码
技术图片

处理小bug

token的请求不做认证,token请求永远不会有tokenInfo
如果请求的URI不是以/token开头的
技术图片
另外一个修复。这里是一个变量,而不是一个写死的字符串。
技术图片

先不写限流,限流一会单独说。

启动服务测试

启动gateway
技术图片


技术图片

启动orderAPI
技术图片

先去拿token
技术图片
技术图片
用拿到的token调用,创建订单的方法

技术图片
是有一半的几率的。
技术图片

故意把令牌改成错的
技术图片

错误的令牌报401
技术图片
不传令牌
技术图片
技术图片
50%的几率,调用正常。
技术图片
说明我们现在写的业务逻辑时生效的,我们在网关这 把权限控制了。现在就可以把订单服务里面和安全相关的逻辑去掉。包括先关的代码
这些逻辑去掉后,我们之前说的那些问题。比如说安全的逻辑和业务逻辑耦合,安全逻辑一遍导致业务逻辑重新部署,包括随着业务接节点增加,你们安全信息也在这里面。业务节点节点增加。认证服务器压力增大等等这些问题。都被解决掉了

去掉订单服务安全的相关代码

首先去掉Oauth2的依赖。

技术图片
所有和安全相关的代码都删掉。
技术图片
技术图片
当前用户的信息使用这个注解来拿到的。现在这个注解依赖都被删掉了 那么如何拿到当前用户的信息
技术图片
比如我想拿到用户名,那么用户信息从哪里来。从RequestHeader里面
技术图片

在网关授权往下走的之前 ,设置header。这里也可以传json对象,
技术图片

启动测试

启动oderApi和网关

还是调这个创建订单的服务,要多试几次,因为是50%的几率是200
技术图片



来看一下orderAPI的日志
技术图片
拿到用户信息。但是用户信息是放在请求头里传的是一个明文
技术图片
后面还会讲一些方案,在服务之间传递用户信息。

 

结束

 

Spring cloud微服务安全实战-4-10Zuul网关安全开发(三)

标签:图片   处理   依赖   src   token   封装   spring   业务   就是   

原文地址:https://www.cnblogs.com/wangjunwei/p/11946433.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!