关于swagger发起请求,获取到的url不正确导致skipurl效验不通过的问题

Blade 未结 2 992
bluerose
bluerose 2021-12-16 15:44
悬赏:10

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

1.  我所有服务准备好,现在通过swagger来访问login登录接口

2.  nacos配置了 xxx/xx/login 这个地址是开放的

3.  swagger发起登录,查看网关输出的日志,发现和通过系统登录获取到的originalUrl不一样

4.  swagger过来的会把请求参数赋值到url上,而通过ui请求过来的就只是请求的地址


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

我期待通过swagger访问和ui访问登录接口的url能一致,否则skipurl效验不通过。

实际上我看到swagger的请求把post的参数赋在了url后面


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

bladex-2.8.2.RELEASE

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


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

这个是网关输出的日志,下图为swagger请求的日志

image.png


下图为通过ui请求的日志

image.png



截图可以明细看到swagger过来的请求多了参数,导致skipurl不通过,请问如何解决。谢谢!

2条回答
  •  bluerose
    bluerose (楼主)
    2021-12-20 22:14

    老大,这个我晓得。那swagger访问的路径变为  /v1/login?username=abc了。那我的skipurl就必须要配置为 /v1/login** 这样才行了。 配为/v1/login/** 是不行的。


    根本原因还是在于我觉得很奇怪,为何swagger中进行post提交,到gateway那会把参数赋值为问号带在路径上。

提交回复