一、该问题的重现步骤是什么?
1. nacos配置了放行,但是不生效,其他放行配置都生效,唯独/iotapi/**不生效,而且测试环境没问题,生产环境就说请求未授权,生产环境是由nginx反向代理给后端的网关
2.
3.
二、你期待的结果是什么?实际看到的又是什么?
三、你正在使用的是什么产品,什么版本?在什么操作系统上?
bladex商业版的cloud版本,liunx操作系统
四、请提供详细的错误堆栈信息,这很重要。
五、若有更多详细信息,请在下面提供。
这是nginx反向代理配置:
这是生产环境配置:
这是测试环境:
这是生产环境:
iotapi是服务名还是真实的controllerkey
如果是服务名,配置了也没有用,因为他是虚拟路由,不存在用spring体系的controller目录下,配置了是匹配不到的。
比如原版的 /blade-auth前缀,在cloud里他对应的是blade-auth服务,所以 /blade-auth/oauth2/token接口配置放行的时候,需要配置 /oauth2/** ,直接配置 /blade-auth/** 就不会生效。
你的具体场景是怎样的?如果不是controllerkey的话,就单独配置每个接口把,比如 /authorize/** /token/**这样
iotapi是接口,现在别的平台要调用我们平台的接口,因为对面要求鉴权字段请求头中的authorization,bladex用的是blade-auth,所以我就去nacos配置,先把iotapi下的所有请求放行,然后写个拦截器单独鉴权,场景就是这样,但现在是我本地测试的时候确实放行了,但是生产环境还是提示请求未授权
saber调用的时候是要有一个/api前缀作为反向代理才能调用到token接口
我看你的工程里iotapi是在blade-tx服务,访问的时候你连blade-tx的前缀也去掉了么?
正常部署后的地址应该是这个 http://xx.com/api/blade-tx/iotapi/xx
但你现在的地址是 http://xx.com/iotapi/xx
所以不知道你具体是怎么配置的
我使用过nginx配置的,请求http://localhost:nginx端口/iotapi/**,然后我用nginx重写这个请求,请求就变成了http://localhost:nginx端口/blade-tx/iotapi/**发到网关,而且微服务也能收到
最重要是我看日志网关已经放行了,难道还有其他地方鉴权吗?
然后这个是具体微服务的日志:
扫一扫访问 Blade技术社区 移动端