给dubbo接口添加白名单——dubbo Filter的使用
1.新增类ValidationFilter继承阿里巴巴的Filter
package com.filter;import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;import com.alibaba.dubbo.rpc.*;/*** Description:* author: LinQin* date: 2018/06/08*/
public class ValidationFilter implements Filter {@Overridepublic Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {Properties prop = new Properties();InputStream in = ValidationFilter.class.getResourceAsStream("/ipwhitelist.properties");String clientIp = RpcContext.getContext().getRemoteHost();//客户端iptry {prop.load(in);String ipwhitelist = prop.getProperty("ipwhitelist");//ip白名单if (ipwhitelist.contains(clientIp)) {return invoker.invoke(invocation);} else {return new RpcResult(new Exception("ip地址:"+ clientIp + "没有访问权限"));}} catch (IOException e) {e.printStackTrace();} catch (RpcException e) {throw e;} catch (Throwable t) {throw new RpcException(t.getMessage(), t);}return invoker.invoke(invocation);}
}
2.安装阿里巴巴的约定新建配置文件,指定上面的类
注意:路径和配置文件名称必须一致
com.alibaba.dubbo.rpc.Filter
validation=com.filter.ValidationFilter
3.配置ip白名单
resource 目录
ipwhitelist.properties
ipwhitelist=192.168.1.19,192.168.1.158
4.配置服务端dubbo配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans.xsdhttp://code.alibabatech.com/schema/dubbohttp://code.alibabatech.com/schema/dubbo/dubbo.xsd"
><!-- 提供方应用信息,用于计算依赖关系 --><dubbo:application name="common-service" /><!-- 使用zookeeper注册中心暴露服务地址 --><dubbo:registry protocol="zookeeper" address="193.112.76.194:2181" /><!-- 用dubbo协议在20880端口暴露服务 --><dubbo:protocol name="dubbo" port="20880" /><dubbo:provider filter="validation" delay="-1" timeout="6000" retries="0"/><!-- 用户服务接口 --><dubbo:service interface="com.service.UserService" ref="userService" /><bean id="userService" class="com.service.UserServiceImpl"></bean></beans>
filter="validation"
表示开启拦截。
启动流程:
启动会先读取dubbo的配置filter的值,对应METE-INF里面的配置的值,找到class进行过滤。
测试:
启动服务,由其他ip的消费者调用,报错
这个错误刚好是我们Fileter类抛出的信息。
不过一般会使用自定义异常进行出来,然后抛出自定义异常。spring框架统一对这类的权限进行特有的页面提示。或者是json返回。
--------------------- 作者:精确而优雅 来源:CSDN 原文:https://blog.csdn.net/qq_35830949/article/details/80626027?utm_source=copy 版权声明:本文为博主原创文章,转载请附上博文链接!白名单
给dubbo接口添加白名单——dubbo Filter的使用相关推荐
- IP暴露接口IP白名单设置
暴露接口IP白名单设置 暴露接口IP白名单设置 CrazyL- 2018-01-03 14:36:15 4797 收藏 1 展开 String realIp = IPUtil.getIpAddr( ...
- 怎么将服务器加入系统白名单,服务器怎么添加白名单
服务器怎么添加白名单 内容精选 换一换 防护域名开启WEB基础防护之后,访问网站如果出现500,502,504等报错,并且显示Web应用防火墙和网站连接失败,如图1所示.可能的原因比较多,如防火墙拦截 ...
- Android 5.1.1源码修改添加白名单和静默安装功能
最近弄项目都是些要改源码才能实现的,像静默安装和白名单功能. 静默安装: 1:在源码的AndroidMainfest.xml中添加权限 --- a/frameworks/base/core/res/A ...
- HTTP代理如何添加白名单?
1.接口描述 接口地址:https://proxy.qg.net/whitelist/add 本接口用于添加IP的白名单. 该接口单个Key的请求频率限制为:20次/分钟: 方法:HTTP.GET,需 ...
- 企业微信 添加白名单_企业微信群为什么只能加200人?企业微信群怎么申请扩容?...
使用企业微信的过程中,很多人都会接触到这样一个说法,那就是企业微信群人数上限是200人,但这个说法是不太准确的.下面我们就来看看具体是怎样的吧!1 企业微信群人数上限是多少 企业微信群分为内部群与外部 ...
- eas-dep添加白名单
打开需要添加白名单的业务单据的编辑界面 1做完之后,不要在该客户端上做任何操作,打开客户端安装目录eas\client\logs\log4j.log,拉到最后一行.找到EDITUI结尾的UI.例如下: ...
- 【公众号技能+】添加白名单,允许其他公众号转载文章
1.登录微信公众号 2.在首页左侧的菜单栏中点击原创管理 3.点击全局可转载账号 4.点击全局可转载账号页面中的添加 5.在搜索框输入需要添加为白名单的公众号名称 6.点击搜索框下的公众号 7.设置白 ...
- haproxy 客户端真实IP地址添加白名单
haproxy 客户端真实IP地址添加白名单 haproxy 添加白名单的方法网上有了就不重复了: 我们的架构如下,haproxy 不是直接对外的,所以在haproxy添加ip地址白名单会限制所有交易 ...
- Linux防火墙iptables添加白名单
iptables 在linux系统中安装yum install iptables-services 重启防火墙的命令:service iptables restart 保存到配置中:service i ...
最新文章
- HTML超出部分滚动效果 HTML滚动 HTML下拉 附效果图
- cvCreateMat函数
- 马斯克称特斯拉AutoPilot方案宛如“超人”,首要任务是“不撞车”;网友:???...
- Java对象的序列化与反序列化
- 工作99:任务加1逻辑
- Win10安装 WSL Ubuntu Linux系统,非双系统,完美兼容超详细版本
- 【李宏毅2020 ML/DL】P110-111 Policy Gradient Proximal Policy Optimization
- 使用VC获取字符串的长度
- SEO高级|移动站搭建
- 油管上如何带中文字幕看Peoplesoft最新视频
- linux中ifi_info的英文全称,linux下里面如何获取网卡的实时网速
- JAVA扫码点餐(2)-项目过程
- char[]和char* 输出长度不同
- 引用echarts报错Cannot read property ‘init‘ of underfined
- 加密就像玩魔方----图文详解对称加密(DES、AES)
- 一周疫情对行业影响观察 | 中国资产或成避险资产;亚太旅游零售业呼吁政府财政支持...
- PPT文件不能编辑怎么回事?
- nodejs实现分解质因数的算法
- 免Root卸载系统预装应用
- 线程同步与互斥:互斥锁
热门文章
- ctf里的拼图工具_CTF比赛工具pwntools介绍
- 102份深圳炒房材料曝光 网友举报千人炒房大会
- RVC使用指南(二)-集群管理
- Java基础学习总结(104)——多线程、并发、工具类相关的面试题
- 拍照尺寸 ios_iOS 14照片和相机:QuickTake快捷键,照片标题,镜像自拍照等
- 微软取消Windows10强制更新
- Tomcat可以实现Session共享方案
- Android ActionBarSherlock使用教程
- 静默安装Oracle12.2数据库
- 博为峰Java技术文章 ——JavaSE Swing 如何使用进度条组件JProgressBarⅡ