|
22 | 22 | import com.jd.live.agent.governance.mcp.McpToolMethod; |
23 | 23 | import com.jd.live.agent.governance.request.AbstractHttpRequest.AbstractHttpInboundRequest; |
24 | 24 | import com.jd.live.agent.governance.request.HeaderProvider; |
| 25 | +import com.jd.live.agent.plugin.router.springweb.v6.util.CloudUtils; |
25 | 26 | import jakarta.servlet.http.Cookie; |
26 | 27 | import jakarta.servlet.http.HttpServletRequest; |
27 | 28 | import org.springframework.web.method.HandlerMethod; |
|
33 | 34 | import java.util.Map; |
34 | 35 | import java.util.function.Predicate; |
35 | 36 |
|
36 | | -import static com.jd.live.agent.core.util.type.ClassUtils.loadClass; |
37 | | - |
38 | 37 | /** |
39 | 38 | * ServletHttpInboundRequest |
40 | 39 | * |
|
43 | 42 | */ |
44 | 43 | public class ServletInboundRequest extends AbstractHttpInboundRequest<HttpServletRequest> { |
45 | 44 |
|
46 | | - private static final String CONTROLLER_TYPE = "org.springframework.web.servlet.mvc.Controller"; |
47 | | - |
48 | | - private static final Class<?> CONTROLLER_CLASS = loadClass(CONTROLLER_TYPE, HttpServletRequest.class.getClassLoader()); |
49 | | - |
50 | | - private static final String ERROR_CONTROLLER_TYPE = "org.springframework.boot.web.servlet.error.ErrorController"; |
51 | | - |
52 | | - private static final Class<?> ERROR_CONTROLLER_CLASS = loadClass(ERROR_CONTROLLER_TYPE, HttpServletRequest.class.getClassLoader()); |
53 | | - |
54 | | - private static final String RESOURCE_HANDLER_TYPE = "org.springframework.web.servlet.resource.ResourceHttpRequestHandler"; |
55 | | - |
56 | | - private static final Class<?> RESOURCE_HANDLER_CLASS = loadClass(RESOURCE_HANDLER_TYPE, HttpServletRequest.class.getClassLoader()); |
57 | | - |
58 | | - private static final String ACTUATOR_SERVLET_TYPE = "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$WebMvcEndpointHandlerMethod"; |
59 | | - |
60 | | - private static final Class<?> ACTUATOR_SERVLET_CLASS = loadClass(ACTUATOR_SERVLET_TYPE, HttpServletRequest.class.getClassLoader()); |
61 | | - |
62 | | - private static final String API_RESOURCE_CONTROLLER_TYPE = "springfox.documentation.swagger.web.ApiResourceController"; |
63 | | - |
64 | | - private static final Class<?> API_RESOURCE_CONTROLLER_CLASS = loadClass(API_RESOURCE_CONTROLLER_TYPE, HttpServletRequest.class.getClassLoader()); |
65 | | - |
66 | | - private static final String SWAGGER2_CONTROLLER_WEB_MVC_TYPE = "springfox.documentation.swagger2.web.Swagger2ControllerWebMvc"; |
67 | | - |
68 | | - private static final Class<?> SWAGGER2_CONTROLLER_WEB_MVC_CLASS = loadClass(SWAGGER2_CONTROLLER_WEB_MVC_TYPE, HttpServletRequest.class.getClassLoader()); |
69 | | - |
70 | | - private static final String OPEN_API_RESOURCE_TYPE = "org.springdoc.webmvc.api.OpenApiResource"; |
71 | | - |
72 | | - private static final Class<?> OPEN_API_RESOURCE_CLASS = loadClass(OPEN_API_RESOURCE_TYPE, HttpServletRequest.class.getClassLoader()); |
73 | | - |
74 | | - private static final String MULTIPLE_OPEN_API_RESOURCE_TYPE = "org.springdoc.webmvc.api.MultipleOpenApiResource"; |
75 | | - |
76 | | - private static final Class<?> MULTIPLE_OPEN_API_RESOURCE_CLASS = loadClass(MULTIPLE_OPEN_API_RESOURCE_TYPE, HttpServletRequest.class.getClassLoader()); |
77 | | - |
78 | | - private static final String SWAGGER_CONFIG_RESOURCE_TYPE = "org.springdoc.webmvc.ui.SwaggerConfigResource"; |
79 | | - |
80 | | - private static final Class<?> SWAGGER_CONFIG_RESOURCE_CLASS = loadClass(SWAGGER_CONFIG_RESOURCE_TYPE, HttpServletRequest.class.getClassLoader()); |
81 | | - |
82 | | - private static final String SWAGGER_UI_HOME_TYPE = "org.springdoc.webmvc.ui.SwaggerUiHome"; |
83 | | - |
84 | | - private static final Class<?> SWAGGER_UI_HOME_CLASS = loadClass(SWAGGER_UI_HOME_TYPE, HttpServletRequest.class.getClassLoader()); |
85 | | - |
86 | | - private static final String SWAGGER_WELCOME_COMMON_TYPE = "org.springdoc.webmvc.ui.SwaggerWelcomeCommon"; |
87 | | - |
88 | | - private static final Class<?> SWAGGER_WELCOME_COMMON_CLASS = loadClass(SWAGGER_WELCOME_COMMON_TYPE, HttpServletRequest.class.getClassLoader()); |
89 | | - |
90 | 45 | private final Object handler; |
91 | 46 |
|
92 | 47 | private final Object[] arguments; |
@@ -131,25 +86,7 @@ public String getClientIp() { |
131 | 86 | @Override |
132 | 87 | public boolean isSystem() { |
133 | 88 | if (handler != null) { |
134 | | - if (CONTROLLER_CLASS != null && CONTROLLER_CLASS.isInstance(handler)) { |
135 | | - // spring web mvc |
136 | | - return true; |
137 | | - } else if (RESOURCE_HANDLER_CLASS != null && RESOURCE_HANDLER_CLASS.isInstance(handler)) { |
138 | | - return true; |
139 | | - } else if (handler instanceof HandlerMethod) { |
140 | | - HandlerMethod method = (HandlerMethod) handler; |
141 | | - Object bean = method.getBean(); |
142 | | - if (ERROR_CONTROLLER_CLASS != null && ERROR_CONTROLLER_CLASS.isInstance(bean) |
143 | | - || API_RESOURCE_CONTROLLER_CLASS != null && API_RESOURCE_CONTROLLER_CLASS.isInstance(bean) |
144 | | - || SWAGGER2_CONTROLLER_WEB_MVC_CLASS != null && SWAGGER2_CONTROLLER_WEB_MVC_CLASS.isInstance(bean) |
145 | | - || SWAGGER_CONFIG_RESOURCE_CLASS != null && SWAGGER_CONFIG_RESOURCE_CLASS.isInstance(bean) |
146 | | - || OPEN_API_RESOURCE_CLASS != null && OPEN_API_RESOURCE_CLASS.isInstance(bean) |
147 | | - || MULTIPLE_OPEN_API_RESOURCE_CLASS != null && MULTIPLE_OPEN_API_RESOURCE_CLASS.isInstance(bean) |
148 | | - || SWAGGER_UI_HOME_CLASS != null && SWAGGER_UI_HOME_CLASS.isInstance(bean) |
149 | | - || SWAGGER_WELCOME_COMMON_CLASS != null && SWAGGER_WELCOME_COMMON_CLASS.isInstance(bean)) { |
150 | | - return true; |
151 | | - } |
152 | | - } else if (ACTUATOR_SERVLET_CLASS != null && ACTUATOR_SERVLET_CLASS.isInstance(handler)) { |
| 89 | + if (CloudUtils.isSystemHandler(handler)) { |
153 | 90 | return true; |
154 | 91 | } else if (arguments != null && arguments.length == 3 && arguments[2] instanceof Object[]) { |
155 | 92 | // ExceptionHandlerExceptionResolver for global @ExceptionHandler(Exception.class) |
|
0 commit comments