shiro三大核心模块:Subject(用户)、SecurityManager(框架心脏)、Realm(Shiro与应用安全数据间的“桥梁”)
shiro重要的一个组件:SecurityManager
spring整合Shiro的配置:
1.导入相应的jar包;
2.在web.xml中配置shiro的过滤器;
3.配置spring-shiro的配置文件:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd" default-lazy-init="false"> <description>shiro项目安全配置</description>
<!-- 继承自AuthorizingRealm的自有Realm --> <!-- 内存缓冲 --> <!-- 安全管理器 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="realm"> <bean class="" /> </property> <property name="cacheManager"> <bean class="" /> </property> </bean> <!-- 保证实现了Shiro内部lifecycle函数的bean执行 --> <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" /> <!-- AOP式方法级权限检查,启用注解 --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager" /> </bean> <!-- Shiro Filter --> <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean" depends-on="securityManager"> <property name="securityManager" ref="securityManager" /> <property name="loginUrl" value="/login" /> <property name="successUrl" value="/main" /> <property name="unauthorizedUrl" value="/login.jsp" /> <property name="filterChainDefinitions"> <value> /login = authc /logout = logout /res/** = anon /login.jsp = anon /nav/** = anon /files/** = anon /interface/** = anon /capture/** = anon /flow/** = anon /brand/** = anon /weather/** = anon /** = authc </value> </property> </bean> </beans>
配置相关的参数:
①.securityManager:这个属性是必须的。
②.loginUrl:没有登录的用户请求需要登录的页面时自动跳转到登录页面,不是必须的属性,不输入地址的话会自动寻找项目web项目的根目录下的”/login.jsp”页面。
③.successUrl:登录成功默认跳转页面,不配置则跳转至”/”。如果登陆前点击的一个需要登录的页面,则在登录自动跳转到那个需要登录的页面。不跳转到此。
④.unauthorizedUrl:没有权限默认跳转的页面。
⑤.filterChainDefinitions:
4.在spring配置文件中添加spring-shiro的配置:
<!-- 支持 Shiro对Controller的方法级AOP安全控制 begin --> <bean class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor"> <property name="proxyTargetClass" value="true" /> </bean> <bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor"> <property name="securityManager" ref="securityManager"/> </bean> <!-- Shiro end -->
5.在xml中引入spring-shiro的配置文件和spring的相关配置文件。
等待补充。。。。。。