为什么你的插件设置了消费者后就无效了

编程

疑惑

在Konga管理页面添加插件,第一个字段都是消费者。理论上这里配置的是插件的schema,但是在插件的官方文档中以及源码中,其schema没有消费者id字段,那么这个地方是干什么用的呢?按照schema文档不理它,空着不写?konga ui管理工具的作者有毛病?为什么填写上之后会导致一些插件不生效了?

原因

查找官方文档admin api中增加插件的文档,描述如下:

其实在这里设置消费者的id ,本质上和先创建一个消费者,再给这个消费者绑定插件是一样的,就是把插件附加在这个消费者上使用。

基础知识

在官方文档中,消费者的概念出现在认证章节中,“消费者的核心原则是可以将插件附加到他们,从而自定义请求行为”。

所以消费者是配合认证插件使用的,在使用认证插件时必须配置消费者的凭证。使用认证插件,就可以识别出是哪个消费者发起的请求,

而消费者又可以绑定插件,从而实现根据不同的消费者执行自定义请求行为。

解释原因

假设现在有一个key认证插件,在增加并且配置好消费者之后,在插件里设置了消费者。那么相当于,这个插件是作用在这个消费者上的,首先要识别到这个消费者,才会有作用。但是认证插件只有key认证这一个,并没有额外的认证插件来验证识别到消费者,此时就是无效的。所以除非要多次认证,针对具体消费者做认证,不然不可以给认证插件设置消费者。

再比如增加一个限流插件,设置了消费者,此时却没有设置认证插件,这样还是没有识别到这个消费者啊,所以限流没用的。

以上是 为什么你的插件设置了消费者后就无效了 的全部内容, 来源链接: utcz.com/z/517291.html

回到顶部