文档章节

通过 Zuul 代理控制报表访问权限

YorkeCao
 YorkeCao
发布于 2017/07/17 11:48
字数 720
阅读 134
收藏 0

通过 Zuul 代理控制报表访问权限

在将 BI 报表集成到我们自己的门户网站时,可能需要根据登录门户用户的不同,让报表展示不同的数据。

很多 BI 报表工具支持通过 URL 参数为报表过滤器赋值,从而控制报表内容。

对于这类 BI 工具,可以使用该项目提供的思路进行控制。

这样做的动机可能是:

  • 不想在门户和报表工具中维护两套用户信息
  • 购买的 License 数量不足以和门户用户一一对应

项目地址: http://git.oschina.net/yorkecao/bi-proxy

主要技术

Spring Cloud Zuul。

Zuul 是 Netflix 开源出来的一个框架,提供动态路由、监控、弹性、安全等边缘服务。

Zuul 也被吸纳为 Spring Cloud 的一部分,可以与其他 Spring Cloud 组件轻松结合,携手解决微服务架构中的治理问题。

在本项目中,我们使用 Zuul 作报表工具的反向代理服务器,并在代理层执行权限控制逻辑。

项目架构

如图:

  • 报表工具所在的域不对外开放,只对 Zuul 反向代理服务器开放;用户要访问报表,必须经过代理器。
  • 代理器接收到报表请求后,先调用门户提供的权限控制接口,鉴权成功后拼上返回的过滤器参数,再进行转发动作。
  • 通过代理 URL 访问报表时,需同时将用户信息以 URL 参数的形式添加到链接中(key 为 token,在报表链接后加上 &token=usertoken)。代理会将报表 URL 及 token 传递给权限控制接口。
  • 权限控制接口负责自定义的权限管控逻辑,例如:先根据 token 获取用户信息;根据用户信息判断是否有报表访问权限;如果有报表访问权限则获取其需要设置的报表过滤器键值对(通过过滤器控制报表显示的内容)。

配置项

resources/ 目录下的 application.yml 文件中,配置 proxy 条目:

  • proxy.web-service-interface:权限控制接口

    由门户提供的 RESTful 接口,用于权限控制。

  • proxy.error-page-url:错误页面地址

    可选。当鉴权失败时重定向到的地址。没有配置时则显示文字提示。

  • proxy.bi-server-url:BI 服务器

    报表服务器地址。

  • proxy.bi-prefix:BI 报表前缀

    报表地址的前缀。代理只会对这些链接做过滤。

权限控制接口

Map<String, String> getFilterParams(String token, String reportUrl);

传入参数:

  • token:用户 token
  • reportUrl:要访问的报表 URL

返回值:

  • 过滤器 URL 参数的键值对

© 著作权归作者所有

共有 人打赏支持
YorkeCao
粉丝 6
博文 21
码字总数 9252
作品 0
绍兴
程序员
私信 提问
[亲测]SpringCloud之网关Zuul

一.Zuul网关 为什么要学习网关? 答:作为网站的唯一入口,控制权限,保证网站安全 功能:控制权限(鉴权)、分发请求(动态路由) 使用Spring Cloud实现微服务的架构基本成型,大致是这样的...

Armymans
2018/12/10
0
0
Spring Cloud学习:04路由网关(Zuul)

1 Zuul介绍 通过前几个核心组件,可以构建一个简略(不完善)的微服务架构: 在该架构中,我们的服务集群包含:内部服务Service A和Service B,他们都会注册与订阅服务至Eureka Server,而O...

寒武没有纪
2017/11/06
0
0
【微服务】之七:轻松搞定SpringCloud微服务-API权限控制

【微服务】之七:轻松搞定SpringCloud微服务-API权限控制 Harries Blog™2017-12-210 阅读 httpSpringAppcatbeanAPIhttps 【微服务】轻松搞定SpringCloud微服务 目录 本系列为连载 文章 ,阅...

Harries Blog™
2017/12/21
0
0
springCloud(14):使用Zuul构建微服务网关-路由端点与路由配置详解

一、Zuul的路由端点 当@EnableZuulProxy与SpringBoot Actuator配合使用时,Zuul会暴露一个路由管理端点/routes。借助这个端点,可以方便、直观地查看以及管理Zuul的路由。 /routes端点的使用...

我爱大金子
2017/08/22
0
0
白话SpringCloud | 第九章:路由网关(Zuul)的使用

前言 介绍完分布式配置中心,结合前面的文章。我们已经有了一个微服务的框架了,可以对外提供api接口服务了。但现在试想一下,在微服务框架中,每个对外服务都是独立部署的,对外的api或者服...

oKong
2018/10/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
7
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
7
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
8
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
5
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部