标签:图片 处理 依赖 src token 封装 spring 业务 就是
首先把地址给它
发送post请求,请求的数据就是这个entity对象。
最后返回的值要封装到TokenInfo里面
如果一切正常的话就会拿到一个响应的实体,实体里面就包含了TokenInfo
打印实体到控制台。最终返回response的body
跟在Oauth的过滤器后面 所以这里是2
模拟进来的时候插入一条数据。
授权的过滤器稍微复杂一点。要把主干逻辑写一下
判断当前的请求是不是需要身份认证,或者是需不需要做权限的判断。
生成isNeedAuth
拿到tokenInfo
之前在OAuth的Filter里面认证成功后 设置了Attribute
不为空且是 激活状态的
没有拿到认证的信息 就写个日志,处理错误。
处理一个401的错误。
能拿到用户信息,下一步就要判断权限。如果没有权限那么就报403的错误。
生成一个随即的整数 和2 取模,只有两种情况,一种是1 一种是0. 也就是有有50%可能被 403状态码拒掉。 50%的可能性会通过。
最终要返回json的ContentType
相应的状态码
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