什么是shiro? shiro是apache旗下的一个开源框架,它将软件系统的安全认证相关的功能抽取出来,实现了用户身份认证,权限授权,加密,会话管理等功能,组成了一个通用的安全认证框架。 shioro使用广泛,可以运用在web应用中,也可以运用在非web应用中,集群分布式应用中越来越多的用户开始使用shiro java领域中,spring security也是一个开源的权限管理框架,但是它依赖于spring框架,而shiro就相对独立。 相关名词解释: Subject 即主体,外部应用与subject进行交互,可能是一个通过浏览器请求的用户,也可能是一个正在运行的程序。subject在shiro中,是一个接口,外部程序通过subject进行授权认证,而subject通过SecurityManager安全管理器进行认证授权。 SecurityManager 即安全管理器,对全部的subject进行管理,是shiro的核心。实质上securityManager是通过Authenticator进行认证,通过Authorizer进行授权,通过SessionManager进行会话管理等,是一个接口,继承了这三个接口 Authenticator 即认证器,对用户身份进行认证,是一个接口,提供了ModularRealmAuthenicator实现类,也可以自定义认证器 Authorizer 即授权器,用户通过认证器认证通过后,在访问资源时通过授权器判断用户是否有访问此资源的权限操作 Realm 即领域,securityManager在进行安全认证需要通过Realm获取用户权限数据。不仅从数据源取数据,还有认证授权校验相关的代码 SessionManager 即会话管理,不依赖web容器的session,可以使用它实现单点登录 SessionDao 即会话Dao,是对session会话操作的一套接口 CacheManager 即缓存管理,将用户权限数据存储到缓存中,提高性能 Cryptography 即密码管理,shiro提供的一套加密、解密的组件 Shiro下载的地址: http://shiro.apache.org/ 架包: 与其它java开源框架类似,将shiro的jar包加入项目就可以使用shiro提供的功能了。shiro-core是核心包必须选用,还提供了与web整合的shiro-web、与spring整合的shiro-spring、与任务调度quartz整合的shiro-quartz等