ApacheShiro权限控制

一、首先什么是Shiro?

Shiro是JAVA世界中新近出现的权限框架,较之JAAS和Spring Security,Shiro在保持强大功能的同时,还在简单性和灵活性方面拥有巨大优势。

shiro是apache下面的一个开源项目,下面是其网站上对其的一段说明:

Apache Shiro is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and  session management. With Shiro’s easy-to-understand API, you can quickly and easily secure any application – from the smallest  mobile applications to the largest web and enterprise applications.

弱弱的翻译一下:apache shiro是一个强大且易于使用的java安全框架,使 用它可以进行

1:认证

2:鉴权

3:加密

4:会话管理

通过shiro简单易懂的api,可以简单快速的为任何应用程序提供安全保护。 

二、Apache shiro 能做什么?

支持认证跨一个或多个数据源(LDAP,JDBC,kerberos身份等)

执行授权,基于角色的细粒度的权限控制。

增强的缓存的支持。

支持web或者非web环境,可以在任何单点登录(SSO)或集群分布式会话中 使用。

主要功能是:认证,授权,会话管理和加密。 

三、Shiro 主要有四个组件 

·SecurityManager

典型的 Facade,Shiro 通过它对外提供安全管理的各种服务。 ·

Authenticator

对“Who are you ?”进行核实。通常涉及用户名和密码。

这 个组件负责收集 principals 和 credentials,并将它们提交给应用系 统。如果提交的 credentials 跟应用系统中提供的  credentials 吻合,就能够 继续访问,否则需要重新提交 principals 和 credentials, 或者直接终止访 问。 ·

Authorizer

身份份验证通过后,由这个组件对登录人员进行访问控制的筛查,比如 “who can do what”, 或者“who can do which actions”。 Shiro 采用“基于 Realm”的方法,即用户(又称 Subject)、用户组、角 色和 permission 的聚 合体。 ·

Session Manager

这个组件保证了异构客户端的访问,配置简单。它是基于 POJO/J2SE 的,不跟任何的客户端或者协议绑定。

四、Shiro运行原理

       Application Code:应用程序代码,就是我们自己的编码,如果在程序中需 要进行权限控制,需要调用Subject的API.                     Subject:主体,代表的了当前用户。所有的Subject都绑定到 SecurityManager,与Subject的所有交互都会委托给SecurityManager,可以将 Subject当成一个门面,而真正执行者是SecurityManager.

       SecurityManage:安全管理器,所有与安全有关的操作都会与 SecurityManager交互,并且它管理所有的Subject.

        Realm:域 shiro是从Realm来获取安全数据(用户,角色,权限)。就是 说 SecurityManager 要验证用户身份, 那么它需要从 Realm 获取相应的用户进行比较以确定 用户身份是否合法;也需要从 Realm 得到用户相应的角色/权限进行验证用户 是否能进行操作; 可以把 Realm 看成 DataSource,即安全数据源 


 五、Shiro为程序共提供了四种权限控制方式

url级别权限控制 
 
方法注解权限控制 
 
代码级别权限控制 
 
页面标签权限控制 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值