fix(filter): 修复App-Version参数缺失导致的接口访问问题

- 添加白名单配置,排除部分遗漏App-Version参数的前端接口
- 对getTicket、uploadSingleFile、getInfoById接口跳过版本校验
- 解决iOS打包重新审核期间的接口兼容性问题
- 保留原有版本校验逻辑,仅对白名单接口进行特殊处理
This commit is contained in:
曹鹏飞 2026-01-15 15:15:30 +08:00
parent 7db9d6ef8e
commit 7cf1dfcf9f
1 changed files with 24 additions and 16 deletions

View File

@ -18,6 +18,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.Set;
@Slf4j @Slf4j
@Order(0) @Order(0)
@ -26,10 +27,16 @@ public class AppVersionFilter extends OncePerRequestFilter {
private static final ObjectMapper objectMapper = new ObjectMapper(); private static final ObjectMapper objectMapper = new ObjectMapper();
/**
* 因前端部分接口遗漏App-Version参数ios打包重新审核需要很久所以需要排除掉否则会导致接口无法访问
*/
private static final Set<String> WHITE_LIST = Set.of("getTicket", "uploadSingleFile", "getInfoById");
private static final String MIN_SUPPER_VERSION = "1.0.9"; private static final String MIN_SUPPER_VERSION = "1.0.9";
@Override @Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException { protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws IOException, ServletException {
if (WHITE_LIST.stream().noneMatch(path -> request.getRequestURI().endsWith(path))) {
String appPlatform = request.getHeader("App-Platform"); String appPlatform = request.getHeader("App-Platform");
response.setStatus(HttpServletResponse.SC_OK); response.setStatus(HttpServletResponse.SC_OK);
if (StrUtil.isBlank(appPlatform)) { if (StrUtil.isBlank(appPlatform)) {
@ -52,6 +59,7 @@ public class AppVersionFilter extends OncePerRequestFilter {
} }
} }
} }
}
private void out(HttpServletResponse response, ApiResult result) throws IOException { private void out(HttpServletResponse response, ApiResult result) throws IOException {
response.setContentType(MediaType.APPLICATION_JSON_VALUE); response.setContentType(MediaType.APPLICATION_JSON_VALUE);