zeppelin使用shiro进行权限控制,默认情况下是anonymous,即不用登录即可使用。如果要增加登录验证,可以按照下列步骤操作。修改配置后需要重启才能生效。

cd ${zeppelin}
./bin/zeppelin-daemon.sh restart

1.禁止匿名访问

如果没有conf/zeppelin-site.xml,那么执行

cd $(zeppelin)/conf
cp zeppelin-site.xml.template zeppelin-site.xml
vim zeppelin-site.xml

修改zeppelin.anonymous.allowed属性为false

<property><name>zeppelin.anonymous.allowed</name><value>false</value><description>Anonymous user allowed by default</description>
</property>

2.设置用户密码登录

如果没有conf/shiro.ini,那么执行

cd ${zeppelin}/conf
cp shiro.ini.template shiro.ini
vim shiro.ini

其中的[users]部分,即登录时的账号。等号前是用户名,等号后是密码,逗号后是用户的角色。账号可以不定义角色,也可以定义多个角色。比如用户名user1,对应密码password2,拥有角色role1和role2。

[users]
admin = password1, admin
user1 = password2, role1, role2
user2 = password3, role3
user3 = password4

[roles]配置用户的角色,[urls]部分配置不同web接口的认证方式和需要的角色,/**表示任意路径,验证时按照定义顺序匹配,所以/**一般放在最后一行。比如,下面的配置定义了4种角色。接口version验证方式anon,即不需要验证,不用登录就能访问。接口interperter需要表格形式的验证,且用户具有admin角色才能访问。/** = authc表示其他接口只需要登录验证即可访问,不需要用户有额外的角色。

[roles]
admin = *
role1 = *
role2 = *
role3 = *[urls]
# anon means the access is anonymous.
# authcBasic means Basic Auth Security
# authc means Form based Auth Security
/api/version = anon
/api/interpreter/** = authc, roles[admin]
/api/credentail/** = authc, roles[role1]
/api/configurations/** = authc, roles[role2]
/** = authc

3. ldap验证

shiro允许使用ldap或AD进行用户验证,配置在[main]部分中,一旦使用这项验证,[users]部分的账号就无法登录。下面是使用ldap的配置,其中userDnTemplate中的{0}表示登录时输入的用户名。

[main]
ldapRealm = org.apache.zeppelin.server.LdapGroupRealm
## search base for ldap groups (only relevant for LdapGroupRealm):
ldapRealm.contextFactory.environment[ldap.searchBase] = dc=company,dc=com
ldapRealm.contextFactory.url = ldap://ldap.company.com
ldapRealm.userDnTemplate = cn={0},ou=people,dc=company,dc=com
ldapRealm.contextFactory.authenticationMechanism = SIMPLE
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
securityManager.sessionManager = $sessionManager
# 86,400,000 milliseconds = 24 hour
securityManager.sessionManager.globalSessionTimeout = 86400000
shiro.loginUrl = /api/login
securityManager.realms = $ldapRealm

上面的配置对应zeppelin-0.6.2版本。使用ldap进行验证时,获取用户的角色需要在ldap中配置objectClass=groupOfNames,具体参见源码(https://github.com/apache/zeppelin/blob/24922e1036c5e410b676fd9b513d008cb046424e/zeppelin-server/src/main/java/org/apache/zeppelin/server/LdapGroupRealm.java#L64)。如果没有获取用户角色,那么[urls]部分配置的需要角色的接口,就没有权限访问。

4. 会话保存

main部分中,以下设置会保存登录会话。如果注释或删除,那么登录后,一旦刷新浏览器,账号就会自动登出。所以建议保留。

[main]
sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager
securityManager.sessionManager = $sessionManager
## 86,400,000 milliseconds = 24 hour
securityManager.sessionManager.globalSessionTimeout = 86400000
shiro.loginUrl = /api/login

zeppelin使用shiro进行权限验证相关推荐

  1. 简单扩展shiro 实现NOT、AND、OR权限验证(支持复杂一点的表达式)

    2019独角兽企业重金招聘Python工程师标准>>> 简单扩展shiro 实现NOT.AND.OR权限验证(支持复杂一点的表达式) .https://my.oschina.net/ ...

  2. 权限验证框架Shiro

    权限验证框架Shiro: Shiro简介 什么是Shiro: shiro是一个强大易用的Java安全框架,提供了认证,授权,加密,回话管理等功能: 认证(Authentication):用户身份识别, ...

  3. java shiro做页面显示_Java-Shiro(八):Shiro集成SpringMvc、Themeleaf,如何实现Themeleaf视图引擎下解析*.html中shiro权限验证...

    我们知道如果是采用jsp视图引擎,直接在jsp中加入shiro的tag就可以,然而在thymeleaf视图引擎下,并未有shiro的tag lib.实际上目前shiro+Thymeleaf的html页 ...

  4. springboot+shiro+jwt实现登录+权限验证

    目录 一.简介: JWT优点: JWT缺点: shiro: JWT: 1.JWT头 2.有效载荷 3.签名哈希 4.Base64URL算法 二.实现 1.引入maven依赖 2.编写shiro配置类 ...

  5. SpringBoot+jwt+shiro实现登录验证及接口权限校验

    SpringBoot+jwt+shiro+token实现对接口权限校验 最近在一个项目上实现登录模块,就想到了权限验证功能,了解了Spring Security和Shiro之后,决定使用Shiro来实 ...

  6. SpringMvc 集成 shiro 实现权限角色管理-maven

    2019独角兽企业重金招聘Python工程师标准>>> SpringMvc 集成 shiro 实现权限角色管理 1.项目清单展示 2.项目源码解析  1)spring-context ...

  7. spring boot整合shiro继承redis_spring-boot-plus集成Shiro+JWT权限管理

    SpringBoot+Shiro+JWT权限管理 Shiro Apache Shiro是一个强大且易用的Java安全框架,执行身份验证.授权.密码和会话管理. 使用Shiro的易于理解的API,您可以 ...

  8. SpringBoot + Redis + Shiro 实现权限管理

    文章主要是针对shiro进行权限配置,只针对角色进行了权限过滤. GitHub:https://github.com/stevencxb/blog 数据库脚本 -- ----------------- ...

  9. 基于vue(element ui) + ssm + shiro 的权限框架

    zhcc 基于vue(element ui) + ssm + shiro 的权限框架 引言 心声 现在的Java世界,各种资源很丰富,不得不说,从分布式,服务化,orm,再到前端控制,权限等等玲琅满目 ...

最新文章

  1. 一个缓存穿透引发的血案
  2. windows下 Qt 静态编译
  3. mysql 迭代更新_MySQL、MongoDB、Redis 数据库之间的区别与使用(本章迭代更新)
  4. s5-11 距离矢量路由选择协议
  5. Servlet底层原理、Servlet实现方式、Servlet生命周期
  6. FCoE 不是×××
  7. 前端框架Bootstrap简单介绍
  8. CodeForces 580A Kefa and First Steps
  9. 【华为云技术分享】三大前端技术(React,Vue,Angular)探密(上)
  10. Harris角点检测和Shi-Tomasi角点检测
  11. 了解编译原理-笔记小结
  12. c语言数码管共阳极动态显示,编程实现共阳极八个数码管依次显示12345678
  13. python webdriver 登录163邮箱发邮件加附件, 外加数据和程序分离,配置文件的方式...
  14. 配置JDK环境变量(详细图文教程)
  15. python爬取京东商品_Python爬取京东的商品分类与链接
  16. ipython 安装
  17. win7安装JDK并配置
  18. SAP PI SLD RZ70 系统架构目录数据提供者 HTTP(S) 配置
  19. FPGA内部资源结构——以Altera CycloneⅣ 为例
  20. 存储简单数据——Preferences

热门文章

  1. 电源的环路补偿、功率级补偿、Vout的波形对应的响应速度-运放环路补偿
  2. 多种好看好玩的词云例子Example
  3. linux symlink 函数,详解C语言中symlink()函数和readlink()函数的使用
  4. SQL2008使用with求余额表,流水账方式
  5. 【List】个人 常用学习工作软件清单
  6. 数字新基建指南|数据智能如何赋能文旅新增长
  7. 【Unity3d Shader】景深效果
  8. Kernel panic - not syncing: Attempted to kill init
  9. 初探富文本之编辑器引擎
  10. 知识产权代理行业公司竞争分析