java-在使用Spring Security注销用户之前调用一些逻辑?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在使用Spring Security注销用户之前调用一些逻辑?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1635字,纯文字阅读大概需要3分钟。
内容图文
![java-在使用Spring Security注销用户之前调用一些逻辑?](/upload/InfoBanner/zyjiaocheng/658/bc4e6d4b4df64f4999b5a1d406ad4c93.jpg)
这个问题已经在这里有了答案: > spring custom logout filter to perform some action before logs out? 1个
我正在使用spring-security3.x.我有一个要求,在用户注销之前,我要执行一些逻辑.我写了一个过滤器来扩展spring提供的LogoutFilter,如下所示.
public class MyFilter extends LogoutFilter{
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
//Perform some logic
super.doFilter(req,res,chain);
}
}
当用户单击注销按钮时,如何调用自己的过滤器?
解决方法:
您不需要自定义的LogoutFilter,需要将以下其中一项插入标准过滤器中:
>任意数量的自定义LogoutHandlers(javadoc here)
>自定义LogoutSuccessHandler(javadoc here)
请注意,在LogoutSuccessHandler之前调用LogoutHandlers,但是允许后者引发异常,而不应允许前者.
还要注意,如果您使用自定义LogoutHandler,则需要将它们提供给/注入LogoutFilter和ConcurrentSessionFilter(如果使用)中.
如果您在XML配置中使用安全名称空间(即xmlns =“ http://www.springframework.org/schema/security”),则可以通过以下方式轻松添加自定义LogoutSuccessHandler
<http>
...
<logout success-handler-ref="yourBeanId"/>
</http>
不确定如何使用名称空间插入自定义LogoutHandlers.
否则,它将看起来像这样:
<bean id="logoutFilter" class="org.springframework.security.web.authentication.logout.LogoutFilter">
<constructor-arg ref="logoutSuccessHandler"/>
<constructor-arg ref="logoutHandlers"/>
...
</bean>
<bean id="logoutSuccessHandler" class="your.custom.LogoutSuccessHandler"/>
<bean id="logoutHandlers" class="java.util.Arrays" factory-method="asList">
<constructor-arg>
<array>
<bean class="your.custom.LogoutHandler"/>
...
</array>
</constructor-arg>
</bean>
内容总结
以上是互联网集市为您收集整理的java-在使用Spring Security注销用户之前调用一些逻辑?全部内容,希望文章能够帮你解决java-在使用Spring Security注销用户之前调用一些逻辑?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。