韩源-末日生存手册

shiro框架概念及原理

一 shiro的简介

shiro是apache的一个开源框架,是一个权限管理的框架,实现 用户认证、用户授权。

二 shiro的架构图

public interface SessionDAO {

/*如DefaultSessionManager在创建完session后会调用该方法;
  如保存到关系数据库/文件系统/NoSQL数据库;即可以实现会话的持久化;
  返回会话ID;主要此处返回的ID.equals(session.getId());  
*/  
Serializable create(Session session);  

//根据会话ID获取会话  
Session readSession(Serializable sessionId) throws UnknownSessionException;  

//更新会话;如更新会话最后访问时间/停止会话/设置超时时间/设置移除属性等会调用  
void update(Session session) throws UnknownSessionException;  

//删除会话;当会话过期/会话停止(如用户退出时)会调用  
void delete(Session session);  

//获取当前所有活跃用户,如果用户量多此方法影响性能  
Collection<Session> getActiveSessions();

三个核心组件:Subject, SecurityManager 和 Realms.

从这个意义上讲,Realm实质上是一个安全相关的DAO:它封装了数据源的连接细节,并在需要时将相关数据提供给Shiro。当配置Shiro时,你必须至少指定一个Realm,用于认证和(或)授权。配置多个Realm是可以的,但是至少需要一个。

Shiro内置了可以连接大量安全数据源(又名目录)的Realm,如LDAP、关系数据库(JDBC)、类似INI的文本配置资源以及属性文件等。如果缺省的Realm不能满足需求,你还可以插入代表自定义数据源的自己的Realm实现。

三 shiro提供的功能

当前页面是本站的「Google AMP」版。查看和发表评论请点击:完整版 »