dubbo filter实现接口认证springboot idea

时间:2022-03-22 21:48:19

最近公司有业务需求,要对Dubbo接口调用者进行身份验证,验证通过才能调用,网上一些资料不够全面,遂整理了一下.

在provider方定义一个filter,需要实现com.alibaba.dubbo.rpc.Filter(需要引入com.alibaba.dubbo依赖):

public class AuthorizationFilter implements Filter {

@Override

public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {

String token = invocation.getAttachment("token");

if("123456".equals(token)){

return invoker.invoke(invocation);

}

return null;

}

}

在resources目录META-INF/dubbo下新建text文件com.alibaba.dubbo.rpc.Filter,内容如下:

AuthorizationFilter = com.xxx.AuthorizationFilter

修改dubbo的provider配置文件,添加如下:

<dubbo:provider filter="AuthorizationFilter" />

在consumer方采用隐式传参:RpcContext.getContext().setAttachment("token","123456");