Shiro框架学习
一、前言
目前在开发我们专业的工作室网站,需要用的一些权限管理的知识,在了解到Java EE拥有一个十分流行的安全权限框架——Shiro后,我觉得开始学习此框架。
二、Shiro简介
Apache Shiro是Java的一个安全权限框架
Shiro可以运行在Java SE和Java EE环境下
Shiro可以完成:认证、授权、加密、会话管理、与Web集成、缓存等功能
Shiro官网:http://shiro.apache.org/
Authentication:认证(登录、密码匹配)
Authorization:授权(用户的哪些操作可以执行,哪些操作不能执行)
Session Management:会话管理
Cryptography:加密
Web Support:支持Web
Caching:缓存,比如用户登录后,其用户信息、拥有的角色不必每次去查,以提高效率
Concurrency:在多线程并发进行授权和认证,即如在一个线程中开启另一个线程,能够把权限传播出去
Testing:提供测试支持
Run As:允许一个用户假装为另一个用户的身份进行访问
Remember Me:记住我
Subject:应用代码直接交互的对象是Subject,Shiro的对外API核心是Subject,Subject代表当前用户。与subject的所有交互都会委托给SecurityManager;
SecurityManager:安全管理器:所有与安全有关的操作都会与SecurityManager有关,类似于SpringMVC的DispatcherServlet
Realm:Shiro从Realm获取安全数据(如用户、角色、权限),类似于Dao