shiro自定义logout filter

Posted 凝荷

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shiro自定义logout filter相关的知识,希望对你有一定的参考价值。

虽然shiro有自己默认的logout过滤器,但是,有些时候,我们需要自己定义一下操作,比如说loutgout后,进入指定页面,或者logout后写入日志操作,这个时候,我们可以通过自定义logout filter来实现:

1,自定义一个systemLogout继承字logout filter,并重写preHandle方法

/**
 * @author:lyy
 * @Date: 2014/10/14 9:33
 * @version:
 * @Description:
 */
@Service
public class SystemLogout extends LogoutFilter{
    @Autowired
    LogManDataInf logManDataInfImpl;
    @Override
   @Override
    protected boolean preHandle(ServletRequest request, ServletResponse response) throws Exception {
        //在这里执行退出系统前需要清空的数据
     Subject subject = getSubject(request, response);
        String redirectUrl = getRedirectUrl(request, response, subject);
        try {
            subject.logout();
        } catch (SessionException ise) {
           ise.printStackTrace();
        }
//跳转到登录页面
        issueRedirect(request, response, redirectUrl);
     //返回false表示不执行后续的过滤器,直接返回跳转到登录页面
        return false;
    }
}

 

2,在配置自定义的filter进入filter chain中

<!-- Shiro 的Web过滤器 -->
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
    <property name="securityManager" ref="securityManager" />
    <property name="loginUrl" value="/login" />
    <property name="filters">
        <map>
            <entry key="logout" value-ref="systemLogout" />
        </map>
    </property>
    <!-- 过虑器链定义,从上向下顺序执行,一般将/**放在最下边 -->
    <property name="filterChainDefinitions">
        <value>
            <!-- 对静态资源设置匿名访问 -->
            /resources/** = anon
            /taglib/** = anon
            <!-- 请求 logout地址,shiro去清除session-->
            /logout = logout
            /login = anon
            <!--/** = anon-->
            /** = authc
        </value>
    </property>
</bean>

 

以上是关于shiro自定义logout filter的主要内容,如果未能解决你的问题,请参考以下文章

spring 集成shiro 之 自定义过滤器

shiroauthc与logout

Spring Boot环境下自定义shiro过滤器会过滤所有的url的问题

全栈编程系列SpringBoot整合Shiro(含KickoutSessionControlFilter并发在线人数控制以及不生效问题配置启动异常No SecurityManager...)(代码片段

如何将 Wordpress 注销重定向到自定义 URL

Shiro logout 302重定向,shiro 302解决方案