window访问不到linux的activemq_springboot整合开源项目测试拦截接口访问的频率
本节目标
本篇文章主要是介绍以下springboot整合开源项目,实现反爬虫接口防刷的demo,额外的介绍一下axios的基本用法;所以本篇文章阅读起来相对轻松。OK,下面开始整合.
引入项目依赖
cn.keking.project kk-anti-reptile 1.0.0-RELEASEorg.redisson redisson 3.13.5
依赖这里遇到了坑,按照它里面的文档说明,如果项目不用redisson,是不需要引入redison的依赖的,只需要配置下redisson的连接就可以的,但是启动会报redis的连接错误,但是貌似也能访问。不过,有错误就得解决,所以我又引入了redisson 的依赖,并且配置了本地的redisson地址,这才没报错。
配置文件
spring: thymeleaf: mode: HTML prefix: classpath:/templates/ encoding: UTF-8 redisson: address: redis://127.0.0.1:6379anti: reptile: manager: enabled: true# 启用反爬插件 ip-rule: expiration-time: 60000 #时间窗口,单位ms request-max-size: 3 #时间窗口内最大请求数enabled: true # 启用IP rule规则
所有配置都以anti.reptile.manager为前缀,具体配置如下:
![](/assets/blank.gif)
数据来源此项目作者:kekingcn
这里需要说明的是,里面有些配置项不能自由配置,例如 ip-rule.lock-expire ,在配置文件中是找不到这个配置项的,刚开始我还以为看漏了,确实配置不了,而且它的默认值是10天,不过我大概看了下,代码中给的是1天,不知道是不是写错了。
反爬虫组件使用
使用还是比较简单的,只需要在需要反爬的接口上加一个注解就行了,如下
@Controllerpublic class TestController { @AntiReptile @GetMapping("/test/anti") @ResponseBody public String test() { return "hello world!!!"; }}
测试
在配置的时间窗口内连续访问,达到访问的最大值,命中规则,就会出现下面的验证规则。这个验证页面我也发现了个问题,就是输入验证信息后,直接按enter,会跳到报错页面,可能它这个enter的监听事件没有做。
![](/assets/blank.gif)
验证页面
axios使用
项目中我们是不可能直接这么访问接口的,一般都是从页面点击某个元素然后发起请求,那么就需要对这种命中规则后统一进行拦截,让其输验证码。我这里就cdn 引入了,这里的测试我就不贴出来了,需要的可以私信。配置如下:
//你的baseurlaxios.defaults.baseUrl = 'http://localhost:8080';// 添加响应拦截器axios.interceptors.response.use(function (response) { // to do something console.log('拦截:' + response) return response;}, function (error) { console.log("进来了。。。。。。。"); // to do something if (error.response.status === 509) {// 命中规则会返回509状态码 var html = error.response.data; //console.log('509错误' + html) var verifyWindow = window.open("","_blank","height=400,width=560"); verifyWindow.document.write(html); verifyWindow.document.getElementById("baseUrl").value = baseUrl; }});
如果你是前端大神,请跳过此处。作为一名后端猿人,对这个axios的基本用法也应了解一些。下面是常用的方法,帮你罗列出来了。
// 发送 POST 请求axios({ method: 'post', url: '/user/12345', data: { firstName: 'Fred', lastName: 'Flintstone' }}); //无后续//发送POST, 后续处理axios.post('user',{firstName: 'Fred'}).then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });// 为给定 ID 的 user 创建请求axios.get('/user?ID=12345') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });// 上面的请求也可以这样做axios.get('/user', { params: { ID: 12345 } }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });//并发请求function getUserAccount() { return axios.get('/user/12345');}function getUserPermissions() { return axios.get('/user/12345/permissions');}axios.all([getUserAccount(), getUserPermissions()]) .then(axios.spread(function (acct, perms) { // 两个请求现在都执行完成 }));
更多用法详见:http://www.axios-js.com/zh-cn/docs/#axios-API
总结
目前感觉这个开源项目还需要再沉淀一下,需要更多的人测试优化,今天只是简单的使用了其中一两个配置,其他的配置还没有测试,大家感兴趣的,可以自己去试下。喜欢小编的朋友可以关注下小编,评论里留下你的见解。最后,点赞+转发,私信小编【anti】,获取源码地址。
window访问不到linux的activemq_springboot整合开源项目测试拦截接口访问的频率相关推荐
- 腾讯Angel升级:加入图算法,支持十亿节点、千亿边规模!中国首个毕业于Linux AI基金会的开源项目...
出品 | AI科技大本营(ID:rgznai100) [导语]Angel 是腾讯的首个AI开源项目,于 2016 年底推出.2017年开源.近日,快速发展的 Angel 完成了从 2.0 版本到 3 ...
- linux下tomcat的访问权限,关于Linux权限引起的Tomcat项目404问题
今天遇到了一个很奇怪的问题,搞了半天原来是Linux权限造成的 介绍一下问题,一个订单详情页面请求,如下图,应该正常显示页面 今天遇到的问题是,依然是这么一个url,访问时候却成了404页面了. 乖乖 ...
- linux系统能够ping通却无法访问,win7与linux虚拟机可互相ping通,却无法访问linux下的tomcat服务...
原因:linux防火墙屏蔽了访问 解决方法:关闭防火墙 方法一: 以root身份执行setup命令; 使用上下键选择firewall configuration 会看到Firewall:[*]Enab ...
- 利用笔记本电脑给只能访问内网linux服务器共享网络,使其也能访问外网
第一步: 打开你的VPN的LAN功能(局域网),允许局域网电脑连接你的网络.(一般vpn都自带开启局域网的功能,所以请自备vpn) 第二步:依次在服务器的命令行中输入 export http_prox ...
- linux开源项目github,GitHub 上的优质 Linux 开源项目,真滴牛逼!
作为一名互联网人,提起 Linux 大家都不陌生,尤其是日常跟 Linux 操作系统打交道最多的,最熟悉不过了.互联网上关于 Linux 相关的教程和资料也非常的多,但是当你从中筛选出真正对自己有帮助 ...
- 项目众包 开源项目_改善8个开源项目的可访问性
项目众包 开源项目 自四年前改用Linux以来,我一直从事开源工作,有时是代码贡献者,有时只是提交错误和改进文档. 而且,正如你们中某些人可能已经知道的那样,我在视觉上有缺陷. 因此,我参与的大多数开 ...
- GitHub 上的优质 Linux 开源项目,真滴牛逼!
作为一名互联网人,提起 Linux 大家都不陌生,尤其是日常跟 Linux 操作系统打交道最多的,最熟悉不过了.互联网上关于 Linux 相关的教程和资料也非常的多,但是当你从中筛选出真正对自己有帮助 ...
- Linux 开源项目
Linux 领域的优质开源项目 linux-command 这个开源项目是 Linux 命令大全搜索工具,当前搜集了 570 多个 Linux 命令,主要内容包含:Linux 基础命令分类.Lin ...
- Linux(CentOS)安装apache(httpd),其他电脑无法访问的原因 【iptables打开某端口】
今天试了下在虚拟机上利用CentOS系统的yum命令安装好了httpd(apache2.2), 然后在windows系统下访问此虚拟机的ip地址,却访问不了. 因为前段时间有知道过iptable的 ...
最新文章
- 深度无盘 连接服务器失败,深度无盘服务器配置
- sqlaction 更新至 v0.2.1.0,自动生成 JDBC 代码的数据库持久层工具
- 5个酷毙的Python神器工具
- .NET 请求、事件 处理流程
- 第三十九期:原生图数据库的15条规则
- 2014年考研英语二作文PartB图表题
- php 非侵入式,Tideways和xhgui打造PHP非侵入式监控平台
- 自学前端,一天学4个小时左右,能到什么水平?
- 二进制数据与16进制字符串相互转化方法
- pcb文件转成原理图_电子设计基础教学-PCB板制作之 AD(Altium Designer)的工程建立过程...
- Java基础算法--排序
- soapUI简介、安装使用教程、接口(性能)测试
- AI领域最有影响力100人,Hinton只排31、Bengio竟然没有上榜?
- 计算机后端维护,机房智能交通后台系统运行维护内容.doc
- AsyncTask异步加载给视频截取第一帧图片
- 组合数学 | 递推关系和母函数
- 阿里云服务搭建微信小程序开发环境
- Ptyhon 入门:通过高德地图获取经纬度
- Microbiome杂志和主编介绍
- Algebra:Chapter 0 - 引言
热门文章
- 五、QPushButton按钮和QLineEdit控件操作
- SpringBoot部署项目到Linux上传文件路径问题
- discuz的ajax,discuz分页函数改成基于jqueryd的ajax分页函数
- python字典返回键值对列表_返回列表Python dict dictionaries Python 数据结构——字典 返回列表...
- 00600 ora 关闭oracle_Oracle集群高可用故障切换
- 进入虚拟化服务器,服务器虚拟化即将进入3.0时代
- java smp_什么是SMP系统
- python中config命令_【Python】 配置解析ConfigParser 命令行参数解析optparser
- vue实现查询多条记录_vue.js 实现天气查询
- java泛型和类型通配符,java – 泛型,类型参数和通配符