You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Tomcat9部署SpringBoot应用POST请求返回403如何排查?

问题说明

在Tomcat 9服务器上部署Spring Boot应用后,请求接口收到Tomcat返回的403响应,目前仅在访问日志中查到403记录,Swagger相关静态资源、v3/api-docs接口文档的GET请求均返回200/304正常状态,无法定位根因。

异常请求特征:POST /ta/calculateWithPrices 接口返回403,响应体长度为5

现存访问日志内容

0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:15 +0200] "GET /ta/swagger-ui/index.html?configUrl=/ta/v3/api-docs/swagger-config HTTP/1.1" 200 1417
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:15 +0200] "GET /ta/swagger-ui/swagger-ui.css HTTP/1.1" 200 143753
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:15 +0200] "GET /ta/swagger-ui/swagger-ui-standalone-preset.js HTTP/1.1" 200 337217
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:15 +0200] "GET /ta/swagger-ui/swagger-ui-bundle.js HTTP/1.1" 200 1091138
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:16 +0200] "GET /ta/v3/api-docs/swagger-config HTTP/1.1" 200 254
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:16 +0200] "GET /ta/swagger-ui/favicon-32x32.png HTTP/1.1" 200 628
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:16 +0200] "GET /ta/v3/api-docs HTTP/1.1" 200 1722
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:46:23 +0200] "POST /ta/calculateWithPrices HTTP/1.1" 403 5
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:48:49 +0200] "GET /ta/swagger-ui/index.html?configUrl=/ta/v3/api-docs/swagger-config HTTP/1.1" 304 -
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:48:49 +0200] "GET /ta/v3/api-docs/swagger-config HTTP/1.1" 200 254
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:48:49 +0200] "GET /ta/v3/api-docs HTTP/1.1" 200 1722
0:0:0:0:0:0:0:1 - - [15/Jun/2022:11:49:37 +0200] "POST /ta/calculateWithPrices HTTP/1.1" 403 5
排查方向
  • Tomcat日志目录下的其余日志文件
    • localhost.日期.log:记录应用部署、容器级过滤器/监听器、本地请求处理的异常信息,容器层权限拦截、CSRF拦截的报错通常会输出在此
    • catalina.日期.log:Tomcat核心运行日志,全局阀门(Valve)、安全约束、CORS规则触发的拦截会在此打印明细
    • 若配置了IP访问限制、管理端权限规则,相关拦截记录会输出在host-manager.log、manager.log中
  • Spring Boot应用自身日志
    • 检查安全框架日志:如果集成了Spring Security、Shiro等安全组件,重点排查是否是权限校验未通过、CSRF防护拦截了未携带合法token的POST请求——GET请求正常、POST请求返回403是CSRF拦截的典型特征
    • 检查自定义拦截器/过滤器日志:排查是否存在自定义的请求头校验、请求来源校验、参数校验逻辑,校验不通过直接返回403的情况
  • 配置文件校验
    • 检查Tomcat的conf/web.xml、应用WEB-INF/web.xml中是否配置了<security-constraint>安全约束,限制了对应路径的POST方法访问权限
    • 检查Tomcat的server.xml、context.xml中是否配置了远程地址过滤阀门、请求方法限制、CORS拦截规则,拦截了目标POST请求
    • 检查应用的CORS跨域配置,非允许来源的POST请求会被直接返回403
    • 检查接口的请求方法映射配置,确认目标接口是否已正确声明允许POST方法访问

内容的提问来源于stack exchange,提问作者user2023141

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 23:36:07