SpringSecurity3无法拦截连续多次点击出起的请求
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringSecurity3无法拦截连续多次点击出起的请求相关的知识,希望对你有一定的参考价值。
单次点击一个连接时,springsecurity可以拦截到,每隔一下子再点击也可以拦截到。但是当我连续快速多次点击一个链接时,spring security就无法拦截住所有请求了,至少有一次请求会被漏掉。请问这是为什么呢?
参考技术A 如果有一个以上的过滤器,过滤器配置在配置文件中顺子过滤器链(FilterChain的),所有的奥秘在筛选FilterChain的。根据与该过滤器在web.xml定义的服务器的顺序组装成链,然后再一次的doFilter()方法的实施。 chain.doFilter之前执行的第一个过滤器的执行顺序()的代码,代码在第二个过滤器chain.doFilter()之前,请求的资源,第二个的chain.doFilter过滤器(代码),之后的第一个过滤器chain.doFilter ()的代码,最后返回响应。 在这里,我们应该明白chain.doFilter()的代码过滤器之前实施的过程中,执行滤镜 - >第二个过滤器chain.doFilter()的代码 - > ... - > n个过滤器chain.doFilter()之前的代码 - >请求servlet的service()方法中的代码 - >请求的servlet的doGet(代码)或doPost()方法中的代码 - > n个过滤器chain.doFilter( ) - > ... - >第二个过滤器chain.doFilter()的代码 - >第一个过滤器chain.doFilter()的代码。在这里,我们应该了解的过程中,执行滤镜:实施前过滤器chain.doFilter()的代码 - >在第二个过滤器chain.doFilter()之前的代码 - >; ...... - > N过滤器chain.doFilter()之前的代码 - >请求的servlet的service()方法中的代码 - >请求的servlet的doGet()或doPost方法(代码后的代码后的代码) - > n个过滤器chain.doFilter () - > ...... - >第二个过滤器的chain.doFilter() - >第一过滤器chain.doFilter(')的代码之后。 参考技术B 用Token可以解决这个问题本回答被提问者采纳解决使用click事件苹果手机连续点击多次出现的Bug
参考技术A 测试时,使用苹果手机的点击事件会慢300ms,并且连续点击评论框底部会出现多余空白。评论框应该固定在底部的。为什么会延迟300ms,谷歌是这样说的:在移动浏览器中,当你点击按钮的单击事件时,将会等待大约300ms的时间。这是因为,浏览器是等着看,如果你是真正执行双击。
Android 设备上的 google浏览器 (Chrome) 32+ 版本,在meta头信息中设置 width=device-width 没有300毫秒的延时,所以也无需使用本插件。
出现底部留白是由于延迟又多次点击出现的,只需要解决延迟问题,防止多次点击即可。
在页面中引入https://cdn.bootcss.com/fastclick/1.0.6/fastclick.min.js,再加入FastClick.attach(document.body);即可解决。完美!
以上是关于SpringSecurity3无法拦截连续多次点击出起的请求的主要内容,如果未能解决你的问题,请参考以下文章
iOS UIButton 禁止连续点击问题/快速点击/重复点击/多次点击 2021-12-03