Sentinel icon indicating copy to clipboard operation
Sentinel copied to clipboard

自定义origin后,授权规则黑名单还是不生效

Open hlcen66 opened this issue 2 years ago • 5 comments

比如我的接口是这样的: image

然后我的自定义origin是这样的: image

然后sentinel控制台配置: image

然后还是成功返回了: image

求解,有没有遇到过的?

hlcen66 avatar Jul 13 '22 08:07 hlcen66

@sczyh30

hlcen66 avatar Jul 13 '22 08:07 hlcen66

1.先用AuthorityRuleManager.getRules()查看规则是否正常加入规则管理器; 2.需要将自定义的OriginParser加入WebCallManager使其生效:WebCallManager.setRequestOriginParser()

waha613 avatar Jul 13 '22 10:07 waha613

官方文档描述:按来源限流:若希望对 HTTP 请求按照来源限流,则可以自己实现 RequestOriginParser 接口从 HTTP 请求中解析 origin 并注册至 WebCallbackManager 中。注意来源数目不能太多,若太多请自定义埋点作为参数传入并使用热点规则。 config新增如下代码: /** * 初始化sentinel相关配置 */ @PostConstruct public void init(){ WebCallbackManager.setRequestOriginParser(requestOriginParser()); }

eureka1986 avatar Jul 13 '22 10:07 eureka1986

看下你写的切面吧,进入上下文的方法,要加入origin。 ContextUtil.enter(contextName, origin); 上游要带上Header,key是S-user,不是origin

nathanchoui avatar Jul 15 '22 05:07 nathanchoui

RequestOriginParser这个类型你看下是不是引用错了,要引入springmvc那个包的不要引入servlet那个包的。

NewOrForever avatar Jul 28 '22 07:07 NewOrForever