首先把地址给它

发送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的日志

拿到用户信息。但是用户信息是放在请求头里传的是一个明文

后面还会讲一些方案,在服务之间传递用户信息。

结束

最新文章

  1. 使用PowerShell找出具体某个站点所使用的模板(Web Template)名称?
  2. webform 文件上传(头像上传) 隐藏FileUpload
  3. 10大html5前端框架
  4. apache开源项目--dbutils
  5. Eclipse 安装FindBugs插件
  6. DateADD日期Sql
  7. vagrant 配置文件简析
  8. 强制杀oracle进程
  9. php架构之路
  10. python 决策树
  11. redis 配置命令
  12. android 权限动态申请
  13. JavaSE学习总结(十六)—— 泛型与泛型应用
  14. 数学集合:N Z Q R C
  15. 20170528xlVBA凑数一例
  16. 《Linux多线程服务端编程——使用muduo C++网络库》读书笔记
  17. python issubclass 和 isinstance函数
  18. ios 线程同步
  19. U19464 山村游历(Wander) LCT维护子树大小
  20. http://t.cn/xxxxx的短链接如何生成?

热门文章

  1. LG4762 Virus synthesis
  2. LG2664 树上游戏
  3. zentaopms - 禅道项目管理系统部署
  4. Fiddler——如何抓取PHP的curl请求
  5. 从GITHUB下载源码
  6. Go语言 - 数组 | 多维数组
  7. js select 默认回显判断
  8. Django --- 查询优化,ajax
  9. linux 下查看进程占用端口和端口号占用进程命令
  10. TPC-H 下载参考