发布时间:2025-06-01
浏览次数:0
在app成功完成登录请求之后,后续尝试访问其他接口时,系统反馈了401错误信息。
二、部署逻辑图:

三、排查过程:
1、使用nginx,模拟第三方代理:

2、我方nginx,监听8084端口, 直接用根目录接收:

3、模拟请求登录接口:
禁止访问该链接,地址为http://127.0.0.1:8085,路径包含/api/login,查询参数aaa和abc。
正常返回:

访问业务接口:

问题重现:正常登录后,访问业务接口报错401??!!
起初误以为问题出在nginx未正确配置intellij idea tomcat配置,致使会话信息丢失intellij idea tomcat配置,因此决定在nginx的日志记录中添加$
查看日志情况,是有的:
对两次服务端反馈进行对比分析,发现会话路径并非为根目录符号“/”,而是双斜杠“//”,这表明成功登录后的会话路径为“//”,而后续请求的路径则是“/”。因此,服务端误判为用户未登录,并返回了401错误信息。

四、解决:
第一种方法:
在\conf\.xml文件中进行路径调整,将会话路径的默认设置从项目名称更改为根目录“/”。

再次测试,可以正常返回:

此次登录接口的会话路径为/

第二种方法:
采用jar包方式部署,这种原理和第一种一样,亲测可以。
第三种方法:
修改nginx配置,增加如下行,则可以将/的输出到/上。

重启nginx
再次测试可以

再次查看登录接口返回的,会话路径变为/,问题解决。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码