fix:【framework 框架】兼容 SpringBoot 2.X 版本的 API 加解密

pull/206/head
YunaiV 2025-08-20 13:22:15 +08:00
parent 2573a98f72
commit caa75004fb
1 changed files with 7 additions and 0 deletions

View File

@ -23,6 +23,7 @@ import org.springframework.http.HttpMethod;
import org.springframework.web.method.HandlerMethod; import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerExecutionChain; import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping;
import org.springframework.web.util.ServletRequestPathUtils;
import java.io.IOException; import java.io.IOException;
@ -131,6 +132,12 @@ public class ApiEncryptFilter extends ApiRequestFilter {
@SuppressWarnings("PatternVariableCanBeUsed") @SuppressWarnings("PatternVariableCanBeUsed")
private ApiEncrypt getApiEncrypt(HttpServletRequest request) { private ApiEncrypt getApiEncrypt(HttpServletRequest request) {
try { try {
// 特殊:兼容 SpringBoot 2.X 版本会报错的问题 https://t.zsxq.com/kqyiB
if (!ServletRequestPathUtils.hasParsedRequestPath(request)) {
ServletRequestPathUtils.parseAndCache(request);
}
// 解析 @ApiEncrypt 注解
HandlerExecutionChain mappingHandler = requestMappingHandlerMapping.getHandler(request); HandlerExecutionChain mappingHandler = requestMappingHandlerMapping.getHandler(request);
if (mappingHandler == null) { if (mappingHandler == null) {
return null; return null;