1.利用dubbo框架中的authToken实现p端c端鉴权。
p端
provider指定filter=authrpc,并正常对外暴露dubbo服务
<dubbo:provider filter="traceFilter,providerFilter,authrpc" registry="zk"/>
<dubbo:service interface="com.*.DubboAuthDemoService"
ref="dubboAuthDemoService" validation="true">
<dubbo:method name="methodDemo" timeout="3000"/>
</dubbo:service>
方式1:在dubbo配置文件中配置p端token信息
pToken_com.*.DubboAuthDemoService.methodDemo=37c8a24f8c6d4a3d88c32c7dc6c19617
方式2:注解形式
@Slf4j
@Service("dubboAuthDemoService")
public class DubboAuthDemoServiceImpl implements DubboAuthDemoService {
@Override
@AuthToken(pToken = "${auth.token:37c8a24f8c6d4a3d88c32c7dc6c19617}")
public boolean methodDemo() {
return true;
}
}
c端
consumer指定filter=authrpc
<dubbo:consumer filter="traceFilter,consumerFilter,authrpc" registry="zk"/>
方式1:在dubbo配置文件中配置c端token信息
cToken_com.*.DubboAuthDemoService.methodDemo=37c8a24f8c6d4a3d88c32c7dc6c19617
方式2:注解实现
@Autowired
private DubboAuthDemoService dubboAuthDemoService;
@AuthToken(cToken = "${auth.token:37c8a24f8c6d4a3d88c32c7dc6c19617}")
public void consumerMethod() {
boolean res = dubboAuthDemoService.methodDemo();
}