shiro数据权限_Shiro安全框架学习

shiro是apache 下的一个为Java开发的安全框架,用于身份验证,授权,密码加密和会话管理。

功能介绍

Authentication: 身份认证/登入。验证身份是否拥有某种相应的身份。

Authorization:授权及权限的管理,验证某用户是否拥有某种权限。

SessionManager: 会话管理,即一个用户在登入后的一次会话,在用户没有推出之前的所有信息都会保存在这个会话中。会话可以时javase环境,也可以是web环境。

Cryptography: 加密,用户数据的安全,在数据库中的信息是不是用明文密码显示,而是经过加密后的密码。

caching: 缓存,如用户再登入后其中的角色/权限不用再去查询,这样可以提高效率。

Testing:支持测试。

Run as: 允许一个用户假装另一个用户使用另一个用户的权限进行访问。

Remember me: 记住我,下次可以免登入。

在shiro的外部来看shiro

0b2eb350e871427ae6374f0d3d202288.png

Subject: 主体,代表一个用户,这个用户不一定是一个真的用户,与之前应用交互的任何东西都可以是这个主体

SecurityManager: 安全管理器, 所有与安全相关的操作都与SecurityManager进行交互。是shiro的核心,可以将他看成是springmvc中的dispatchservlet前端控制器。

Realm:域,shiro从realm中获取安全信息(如用户,角色,权限)用于权限管理。可以看成是数据源datasource

shiro 不提供维护用户/权限,而是通过realm让其注入。

从shiro的内部来看

6760c65af273a1aa84e16f2c44cb3b3e.png

Subject:是用户主体,与应用程序进行交互。

SecurityManager: 是shiro的主体,类似于springmvc中的dispatchservlet。进行着一系列的控制,其中包含着验证,授权,会话管理等操作。

Authentication:验证,验证用户信息。

Authorizer:授权,验证用户是否具有某种权限。授权用户能够使用应用中的哪些功能。

Realm: 域,是获取安全信息的地方,常用的有三种,iniRealm,jdbcRealm,自定义Realm。

SessionManager:会话管理,用户的会话信息在这里存储。

SessionDao: Dao大家都用过,数据访问对象,用于会话的 CRUD,比如我们想把 Session 保存到数据库,那么可以实现自己的 SessionDAO,通过如 JDBC 写到数据库;比如想把 Session 放到 Memcached 中,可以实现自己的 Memcached SessionDAO;另外 SessionDAO 中可以使用 Cache 进行缓存,以提高性能;

CacheManager:缓存管理。来管理如用户、角色、权限等的缓存的。

Cryptography:密码模块,Shiro 提高了一些常见的加密组件用于如密码加密 / 解密的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值