1.在shiro文件中加入bean,类关联为
org.apache.shiro.web.filter.authc.LogoutFilter,取名要和下面的对应,重定向的名字要和对应的一样
<bean id="logoutFilter" class="org.apache.shiro.web.filter.authc.LogoutFilter">
<property name="redirectUrl" value="/admin" />
</bean>
2.在shiro配置文件中加入logoutFilter,这个名字是可以随便取的,我这里取名adminlogout
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<!-- loginUrl认证提交地址,如果没有认证将会请求此地址进行认证,请求此地址将由formAuthenticationFilter进行表单认证 -->
<property name="loginUrl" value="/login.action" />
<!-- 认证成功统一跳转到first.action,建议不配置,shiro认证成功自动到上一个请求路径 -->
<!-- <property name="successUrl" value="/first.action"/> -->
<!-- 通过unauthorizedUrl指定没有权限操作时跳转页面-->
<property name="unauthorizedUrl" value="/refuse.jsp" />
<property name="filters">
<map>
<!-- 将自定义 的FormAuthenticationFilter注入shiroFilter中-->
<entry key="authc" value-ref="myFormAuthenticationFilte" />
<entry key="adminlogout" value-ref="logoutFilter" />
</map>
</property>
3.在
property
名字为
filterChainDefinitions中加入
/adminlogout.action = adminlogout
<property name="filterChainDefinitions">
<value>
<!-- 对静态资源设置匿名访问 -->
<!-- 请求 logout.action地址,shiro去清除session-->
/logout.action = logout
/adminlogout.action = adminlogout
<!--权限静态数据进行测试,取消url拦截配置,使用注解授权方式 -->
<!-- /** = authc 所有url都必须认证通过才可以访问-->
/** = authc
<!--/** = authc -->
<!-- /** = anon所有url都可以匿名访问 -->
</value>
</property>
4。在springmvc中的Controller类中加入
@RequestMapping("admin")
// @RequiresPermissions("admin:admin")
public String adminLogin(){
return "admin/login";
}