shiro简介

来源:互联网 发布:聚合数据 公司苏州 编辑:程序博客网 时间:2024/06/01 19:04

apache shiro是一个java安全(权限框架)

作用:

  • 认证
  • 授权
  • 加密
  • 会话管理
  • web集成
  • 缓存

    这里写图片描述

Authentication:身份认证、登录,验证用户是否具有相应的身份
Authorization:权限验证
Session Management:会话管理
Cryptography:加密,保证数据的安全性
Web Support:web支持,非常容易的集成到web环境
Caching:缓存,用户登录后,用户拥有的角色、权限不必每次去查
Concurrency:shiro支持多线程应用的并发验证,即如在一个线程中开启另一个线程,能把权限自动传播过去
Testing:提供测试支持
Run As:允许一个用户假装为另一个用户的身份进行访问(允许情况下)
Remember Me:记住我

shiro架构
这里写图片描述

可以看到:应用代码直接交互的对象是Subject,也就是说Shiro的对外API核心就是Subject;其每个API的含义:
Subject:主体,代表了当前“用户”,这个用户不一定是一个具体的人,与当前应用交互的任何东西都是Subject,如网络爬虫,机器人等;即一个抽象概念;所有Subject都绑定到SecurityManager,与Subject的所有交互都会委托给SecurityManager;可以把Subject认为是一个门面;SecurityManager才是实际的执行者;
SecurityManager:安全管理器;即所有与安全有关的操作都会与SecurityManager交互;且它管理着所有Subject;可以看出它是Shiro的核心,它负责与后边介绍的其他组件进行交互,如果学习过SpringMVC,你可以把它看成DispatcherServlet前端控制器;
Realm:域,Shiro从从Realm获取安全数据(如用户、角色、权限),就是说SecurityManager要验证用户身份,那么它需要从Realm获取相应的用户进行比较以确定用户身份是否合法;也需要从Realm得到用户相应的角色/权限进行验证用户是否能进行操作;可以把Realm看成DataSource,即安全数据源。

这里写图片描述