Apache Shiro 总结1

 1.Shiro的架构

Shiro官网架构图如下:


Shiro核心三部分是Subject, SecurityMnager, Realm.


(1) Subject:与当前软件交互的任何事物,可以是第三方服务;

(2) SecurityMnager:轻量级的容器组件;

(3) Realm:在shiro和安全数据之间充当桥梁或者连接器;

(4) SessionManager:创建管理用户的session生命周期;默认情况下shiro使用当前环境下的session机制(servlet或者EJB容器),若没有的话会使用shiro嵌入的企业级session管理机制;

(5) SessionDao:持久化当前session数据;

(6) Cachemanager:创建管理cache实例生命周期,

SecurityMnager包括:

(1) Authentication:验证

(2) Authorization:授权

(3) Session Management

(4) Cache Mangement

(5) Realm Coordination:realm调度

(6) Event Propagation:事件传播

(7) Remember Me Service

AuthenticationToken implements org.apache.shiro.auth.RememberMeAuthenticationToken{
    boolean isRememberMe(){
        return true;
    }
}

或者使用UserNamePasswordToken,这个类已经实现上面的接口;返回true会记住当前token。

(8) Subject Creation

(9) Logout and more

SecurityMnager是一个兼容Javabeans的轻量级容器,它几乎将所有的行为委托给其他包装的组件。因此,通过Spring,Guice,JBOSS等为SecurityMnager配置自定义的组件是可行的。

下图是我理解的shiro运行流程:




2. Shiro配置

(1) [main]

Shiro配置中main部分主要配置filterchain,sessionManager等;filter可以是shiro自有的filter也可以是自定义的。

Shiro自有的filter有:

anonorg.apache.shiro.web.filter.authc.AnonymousFilter
authcorg.apache.shiro.web.filter.authc.FormAuthenticationFilter
authBasicorg.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
logoutorg.apache.shiro.web.filter.authc.LogoutFilter
noSessionCreationorg.apache.shiro.web.filter.session.NoSessionCreationFilter
permsorg.apache.shiro.web.filter.authz.PermissionsAuthorizationFilter
portorg.apache.shiro.web.filter.authz.PortFilter
restorg.apache.shiro.web.filter.authz.HttpMethodPermissionFilter
rolesorg.apache.shiro.web.filter.authz.RolesAuthorizationFilter
sslorg.apache.shiro.web.filter.authz.SslFilter
iserorg.apache.shiro.web.filter.authc.UserFilter

(2) [urls]

urls配置url地址对应哪种filter, filter可以是shiro自有的也可以是main中配置的filter。等号左边是url模式,右边是filter。

例如: /index.html = anon


Shiro官方文档地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值