背景.一般公司都有外接别的组件,比如报表,以及其他的,例如:我们使用了帆软的报表,开始使用很好,使用后发现,我们访问报表时不需要登录即可访问(垂直越权),于是我们看了官网,发现解决方案是可以同步信息至帆软的报表决策平台.于是解决了一个,后面公司的测试又发现了一个问题,只要有这个报表链接的用户都可以访问这个报表(水平越权),于是仔细看了看官网解决方案,大致是我们需要使用它们的决策平台去添加用户,添加报表,鉴权和认证都由帆软去完成,我们后续考虑了以下,我们还是自己定制网关,采用http转发,httpclient即可,我选择了vertx全异步.下面只是简单的例子,需要自己去具体实现,或者使用openresty,zuul等 做网关也可以
思路:
转发http请求
开始 :用户请求 ->nginx ->帆软报表
之后:用户请求->nginx->网关->帆软报表
在网关层做鉴权和认证
贴一下httclient 代码
一句话:我们只转发请求到帆软,原封不动的返回用户(前提通过的认证和鉴权)
1.创建filter (认证和鉴权即可)