nacos配置接口放行不生效

Blade 未结 1 368

一、该问题的重现步骤是什么?

1. nacos配置了放行,但是不生效,其他放行配置都生效,唯独/iotapi/**不生效,而且测试环境没问题,生产环境就说请求未授权,生产环境是由nginx反向代理给后端的网关

2. 

3.


二、你期待的结果是什么?实际看到的又是什么?


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex商业版的cloud版本,liunx操作系统


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。


这是nginx反向代理配置:

image.png


 这是生产环境配置:

   image.png



这是测试环境:

image.png




这是生产环境:                image.png


1条回答
  • 2025-02-27 11:01

    iotapi是服务名还是真实的controllerkey

    如果是服务名,配置了也没有用,因为他是虚拟路由,不存在用spring体系的controller目录下,配置了是匹配不到的。


    比如原版的 /blade-auth前缀,在cloud里他对应的是blade-auth服务,所以 /blade-auth/oauth2/token接口配置放行的时候,需要配置 /oauth2/** ,直接配置 /blade-auth/** 就不会生效。


    你的具体场景是怎样的?如果不是controllerkey的话,就单独配置每个接口把,比如 /authorize/** /token/**这样

    作者追问:2025-02-27 11:13

    iotapi是接口,现在别的平台要调用我们平台的接口,因为对面要求鉴权字段请求头中的authorization,bladex用的是blade-auth,所以我就去nacos配置,先把iotapi下的所有请求放行,然后写个拦截器单独鉴权,场景就是这样,但现在是我本地测试的时候确实放行了,但是生产环境还是提示请求未授权

    image.png

    回答: 2025-02-27 11:16

    saber调用的时候是要有一个/api前缀作为反向代理才能调用到token接口

    CleanShot20250227111503@2x.png


    我看你的工程里iotapi是在blade-tx服务,访问的时候你连blade-tx的前缀也去掉了么?


    正常部署后的地址应该是这个 http://xx.com/api/blade-tx/iotapi/xx 

    但你现在的地址是 http://xx.com/iotapi/xx 

    所以不知道你具体是怎么配置的

    作者追问:2025-02-27 11:28

    我使用过nginx配置的,请求http://localhost:nginx端口/iotapi/**,然后我用nginx重写这个请求,请求就变成了http://localhost:nginx端口/blade-tx/iotapi/**发到网关,而且微服务也能收到

    image.png

    作者追问:2025-02-27 15:05


    最重要是我看日志网关已经放行了,难道还有其他地方鉴权吗?


    image.png




    image.png


    然后这个是具体微服务的日志:

    image.png

    0 讨论(0)
代码语言
提交回复