1.思路分析
- 利用dubbo的SPI机制,写一个Filter继承Dubbo的Filter。
- 在invoke方法里面通过invoker获取到服务消费者的ip和服务名
- 拿到ip和服务名之后和白名单进行比对。
- 关于服务名的获取,通过dubbo上下文,Attachment。
2.代码实现
1.创建文件org.apache.dubbo.rpc.Filter
validation=com.filter.ValidationFilter
2.配置文件配置
validation.ips=121.199.31.160,192.168.0.1
validation.names=consumer1,consumer2
3.白名单映射类
@Data
@Component
@ConfigurationProperties(prefix = "validation")
class ValidationConfig {
private List<String> ips = new