A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 恋爱不如敲代码 初级黑马   /  2018-3-30 19:16  /  1390 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  一.Shiro的简介      Shiro是一个开源的java安全控制框架,它为我们提供了认证(Authentication),授权(Authorization),会话管理(Session Management)            和加密(Cryptography)的功能,不论          对什么程序Shiro都可以提供安全管理服务。Shiro的另一个       优点就是相对于其他          的安全框架来说更简单,例如:JSecurity、Spring Security、Acegi        Security等。
  二.Shiro的主要API
     Shiro中的API主要有:Subject ,SecurityManager 和 realm。


    ① Subject:是主体,代表了当前的"用户",这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,       如网络爬虫,机器人等;是一个       抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会       委托给SecurityManager;可以把Subject认为是一个调用                   SecurityManager方法的对象。

    ② SecurityManager:是安全管理器,就是说所有与安全相关的操作都会与SecurityManager有关,而且它管理者所有的          Subject,SecurityManager是          Shiro的重要核心,也可以把它看成是springMVC 中的前端控制器。

    ③ Realm:是Shiro中获取安全数据的域,如果SecurityManager想要验证用户身份那么就需要先从realm中先获取相应的用       户进行比较来确定身份知否拥有        权限,也可以吧realm看成是一种数据库。
  三.Shiro的登录流程:
     Shiro的登录流程: 应用程序 -- Subject -- SecurityManager -- Realm -- 安全数据


  四.Shiro实现权限的四种方式
    1.通过Subject硬编码进行权限控制(在实际开发中不常用)。
2.基于UR级别的粗粒度权限控制:在web层中。
3.基于方法级别的细粒度权限控制:在Service层的方法上,基于注解开发,使用的是Cjlib动态代理。
    4.Shiro标签库:直接在页面中不显示用户没有权限的功能,基于jsp页面。
  五.Shiro的过滤器
anon未认证可以访问            authc认证后可以访问       user 需要特定用户才能访问
    perms需要特定权限才能访问     roles 需要特定角色才能访问
    port 需要特定端口才能访问  reset 根据指定 HTTP 请求访问才能访问
  六.结语
    [size=17.39130401611328px]Shiro是Apache Incubator 内的一个框架,可让您向应用程序中添加身份验证和授权。它支持不同的身份验证存储方式,     比如 LDAP,Kerberos 和 AD DS。Shiro 最小限度的依赖性再加上它相对简单的配置让它成为了应用程序内安全性框架的     一个很好的选择。

1 个回复

倒序浏览
我来占层楼啊     
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马