IP限制插件
IP限制插件,是一个非常简单的插件,可以设置黑名单IP,白名单IP这个很简单。
规则:
IP黑白名单,支持单个,多个,范围分段IP(满足CIDR notation规则)。多个IP之间用逗号,分隔。
CIDR notation规范如下:
10.10.10.0/24 表示10.10.10.*的都不能访问。
关于CIDR notation的规则,不在本文讨论范围内,请自行查阅https://zh.wikipedia.org/wiki/%E6%97%A0%E7%B1%BB%E5%88%AB%E5%9F%9F%E9%97%B4%E8%B7%AF%E7%94%B1
1.设置黑名单IP
在这里,我将我自己的IP设置成黑名单.
访问结果如下:
{
"message": "Your IP address is not allowed"
}
2.设置白名单
这里有个有趣的试验,假如我同时把自己的IP设置成白名单,又设置成黑名单。
那么,是黑名单会生效呢?还是白名单?
让我们动手试一试:
再次访问接口,正确返回结果了:
{
"status": "UP",
"diskSpace": {
"status": "UP",
"total": 19992150016,
"free": 15094071296,
"threshold": 10485760
},
"redis": {
"status": "UP",
"version": "3.2.5"
},
"db": {
"status": "UP",
"database": "MySQL",
"hello": 1
},
"configServer": {
"status": "UP",
"propertySources": [
"file:/opt/configServer/configs/application.yml#dev",
"file:/opt/configServer/configs/application.yml"
]
}
}
由此得出结论,假如consumer的ip,同时匹配黑白名单中的IP,那么白名单会优先生效。事实上,假如你同时设置黑白名单的IP不一致,系统会提示你you cannot set both a whitelist and a blacklist!