【技术实现步骤摘要】
一种基于Spring的防止重复访问RestfulAPI的方法
本专利技术涉及RestfulAPI访问
,具体涉及一种基于Spring的防止重复访问RestfulAPI的方法。
技术介绍
近年来,随着前后端分离思想的兴起,RestfulAPI的使用越来越广泛。然而在前端调用后端的过程中,发现RestfulAPI都有可能会被重复请求。譬如人为主动连续点击前端功能,或者因鼠标性能问题导致的前端功能重复触发。无论是人为或者无意,都会导致在短时间内重复请求RestfulAPI,而这些操作对于系统来说,都是认为是不可控的操作。特别一些对数据有修改的RestfulAPI,譬如表单添加功能,重复请求极可能会出现多条重复的数据;甚至一些操作重要数据的功能,极其有可能令系统出现不可控的问题。上述问题主要体现在前端触发重复请求,对于前端技术的解决方案,可以通过控制功能按钮来实现防重复请求。具体的,可以在用户点击了按钮后,通过JS把功能按钮的disabled属性改成true(灰色,不可能点击),然后再发送请求,待请求返回,再把功能按钮 ...
【技术保护点】
1.一种基于Spring的防止重复访问Restful API的方法,其特征在于,包括:/nS1,定义防止重复访问的注解,并定义其有效标记,/nS2,继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter类以定义拦截器;重写preHandle方法,以在请求前实现拦截验证;并在拦截器定义用于存储请求数据的缓存对象;/nS3,在需要防止重复访问的API接口使用@DuplicateSubmitToken添加注解,激活防止重复访问功能。/n
【技术特征摘要】
1.一种基于Spring的防止重复访问RestfulAPI的方法,其特征在于,包括:
S1,定义防止重复访问的注解,并定义其有效标记,
S2,继承org.springframework.web.servlet.handler.HandlerInterceptorAdapter类以定义拦截器;重写preHandle方法,以在请求前实现拦截验证;并在拦截器定义用于存储请求数据的缓存对象;
S3,在需要防止重复访问的API接口使用@DuplicateSubmitToken添加注解,激活防止重复访问功能。
2.根据权利要求1所述的基于Spring的防止重复访问RestfulAPI的方法,其特征在于,在步骤S2中,定义缓存对象使用谷歌的com.google.common.cache缓存组件实现,设置缓存对象在1秒后自动清除。
3.根据权利要求1所述的基于Spring的防止重复访问RestfulAPI的方法,其特征在于,重写preHandle方法包括:
S21,判断preHandle的参数handler对像是否属于org.springframework.web.method.HandlerMethod的子类或接口;若是,则执行步骤S22,若否,则跳过重复访问拦截验证逻辑并且进入下一个拦截器;
S22,从参数handler获取重复访问的注解对象,将注解对象强制转换成HandlerMethod对象;并从参数handler获取防止重复访问的注解对象的DuplicateSubmitToken对象,判断其是否有效标记,...
【专利技术属性】
技术研发人员:植挺生,陈建生,冼永乐,刘勇,庄广壬,
申请(专利权)人:广东广宇科技发展有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。