1、导入依赖
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-all</artifactId>
<version>1.2.2</version>
</dependency>
2、在web.xml配置代理过滤器(要放到struts2前面)
<!-- spring提供整合shiro代理过滤器 -->
<filter>
<filter-name>shiroFliter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>shiroFliter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3、配置一个Realm,这个类要继承org.apache.shiro.realm.AuthorizingRealm
<bean id="bosRealm" class="cn.itcast.bos.web.realms.BosRealm"></bean>
4、配置安全管理器,把刚才的Realm注入到按软管理器
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="bosRealm"></property>
</bean>
5、配置过滤工厂
<!-- apache提供过滤器工厂 -->
<bean id="shiroFliter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- 注入安全管理器 -->
<property name="securityManager" ref="securityManager"></property>
<!-- 配置登录页面,没有登录的时候自动跳转 -->
<property name="loginUrl" value="/login.jsp"></property>
<!-- 配置没有权限页面,没有权限的时候跳转 -->
<property name="unauthorizedUrl" value="/unauthorized.jsp"></property>
<!-- 配置拦截规则 -->
<!-- /**: 所有请求 包括项目根目录下文件夹
authc:认证过滤器;必须当前用户经过认证
anon:匿名过滤器 不需要认证,不需要任何权限
perms:权限过滤器 有对应的权限才可以访问
roles:角色过滤器 有对应的角色才可以访问
-->
<property name="filterChainDefinitions">
<value>
/login.jsp = anon
/validatecode.jsp* = anon
/css/** = anon
/images/** = anon
/js/** = anon
/userAction_login.action = anon
/pages/base/standard.jsp = perms["standard_page"]
/pages/base/courier.jsp = roles["admin"]
/** = authc
</value>
</property>
</bean>