shiro 框架的学习总结
shiro 框架的核心功能:认证,授权,加密,会话管理;
框架调用流程:ApplicatonCode(程序代码)->Subject(接口)->SecurityManager(安全管理器)->realm(用于操作数据类似于DAO);
使用shiro框架首先应用第三发放jar包,如果是使用maven引入坐标即可;
1.首先在web-info中配置shiro的过滤器(注意要配置在struts过滤器的前面)filter-name:自己定义,filter-class:org.springframework.web.filter.DelegatingFilterProxy,过滤路径配置为所有(/*);
2.使用SSH框架时在Sping容器中配置一个bean,id和filter-name一致 class:org.apache.shiro.spring.web.ShiroFilterFactoryBean 注入其class属性:
a.安全管理器securityManager
b.配置认证失败转发页面loginUrl
c.配置认证成功转发页面successUrl
d.配置认证权限不足页面unauthorizedUrl
e.配置校验规则filterChainDefinitions
校验规则例子如下:<value>
/login.html = anon
/js/** = anon
/css/** = anon
/images/** = anon
/validatecode.jsp* = anon
/userAction_login.action = anon
/pages/base/courier.jsp=perms["courier"]
/pages/base/standard.jsp=perms["standard"]
/** = authc
</value>
/login.html = anon
/js/** = anon
/css/** = anon
/images/** = anon
/validatecode.jsp* = anon
/userAction_login.action = anon
/pages/base/courier.jsp=perms["courier"]
/pages/base/standard.jsp=perms["standard"]
/** = authc
</value>
authc代表shiro框架提供的一个过滤器,检验用户是否完成登陆;anno代表可以匿名访问;
安全管理器的配置:id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager
其属性配置<property name="realm" ref="bosLoginRealm"></property>
还包括缓存<property name="cacheManager" ref="cacheManager"></property>以为我们不用每次都查询数据库;
具体的登陆授权认证代码课参考一下代码:
对于shiro框架调用的流程还缺少realm进行认证授权的过程;
认证:
授权: