diff --git a/dongtai-spring-api/pom.xml b/dongtai-spring-api/pom.xml
index 31b60c350..33d39c170 100644
--- a/dongtai-spring-api/pom.xml
+++ b/dongtai-spring-api/pom.xml
@@ -25,6 +25,11 @@
5.2.8.RELEASE
provided
+
+ com.secnium.iast
+ iast-log
+ 1.2.0
+
diff --git a/dongtai-spring-api/src/main/java/cn/huoxian/iast/spring/SpringApplicationContext.java b/dongtai-spring-api/src/main/java/cn/huoxian/iast/spring/SpringApplicationContext.java
index 648116ea5..c91ea247b 100644
--- a/dongtai-spring-api/src/main/java/cn/huoxian/iast/spring/SpringApplicationContext.java
+++ b/dongtai-spring-api/src/main/java/cn/huoxian/iast/spring/SpringApplicationContext.java
@@ -1,5 +1,6 @@
package cn.huoxian.iast.spring;
+import com.secnium.iast.log.DongTaiLog;
import org.springframework.aop.support.AopUtils;
import org.springframework.beans.factory.BeanFactoryUtils;
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
@@ -24,114 +25,116 @@ public static List getAPIList(WebApplicationContext applicationCon
Map requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(applicationContext, RequestMappingHandlerMapping.class, true, false);
LocalVariableTableParameterNameDiscoverer methodParameters = new LocalVariableTableParameterNameDiscoverer();
List apiList = new ArrayList<>();
- for (RequestMappingHandlerMapping handlerMapping : requestMappings.values()) {
- if (handlerMapping != null) {
- Map methodMap = handlerMapping.getHandlerMethods();
- for (RequestMappingInfo info : methodMap.keySet()) {
- ApiDataModel apiDataModel = new ApiDataModel();
- HandlerMethod handlerMethod = methodMap.get(info);
- String clazz = handlerMethod.getBeanType().toString().substring(6);
- apiDataModel.setClazz(clazz);
- String method = info.getMethodsCondition().toString().replace("[", "").replace("]", "");
- String[] methods;
- if ("".equals(method)) {
- methods = new String[2];
- methods[0] = "GET";
- methods[1] = "POST";
- } else {
- methods = new String[1];
- methods[0] = method;
+ RequestMappingHandlerMapping handlerMapping = requestMappings.get("requestMappingHandlerMapping");
+ if (handlerMapping != null) {
+ Map methodMap = handlerMapping.getHandlerMethods();
+ for (RequestMappingInfo info : methodMap.keySet()) {
+ ApiDataModel apiDataModel = new ApiDataModel();
+ HandlerMethod handlerMethod = methodMap.get(info);
+ String clazz = handlerMethod.getBeanType().toString().substring(6);
+ apiDataModel.setClazz(clazz);
+ String method = info.getMethodsCondition().toString().replace("[", "").replace("]", "");
+ String[] methods;
+ if ("".equals(method)) {
+ methods = new String[]{"GET", "POST"};
+ }else if (method.contains(" || ")){
+ methods = method.split(" \\|\\| ");
+ } else {
+ methods = new String[]{method};
+ }
+ apiDataModel.setMethod(methods);
+ Method declaredMethod = null;
+ try {
+ HandlerMethod handlerMethodData = methodMap.get(info);
+ String beanType = handlerMethodData.getBeanType().toString().substring(6);
+ apiDataModel.setController(beanType);
+ Method methodData = handlerMethodData.getMethod();
+ String methodName = methodData.getName();
+ Parameter[] parameters = methodData.getParameters();
+ List> parameterList = new ArrayList<>();
+ for (Parameter parameter : parameters
+ ) {
+ parameterList.add(parameter.getType());
}
- apiDataModel.setMethod(methods);
- Method declaredMethod = null;
- try {
- HandlerMethod handlerMethodData = methodMap.get(info);
- String beanType = handlerMethodData.getBeanType().toString().substring(6);
- apiDataModel.setController(beanType);
- Method methodData = handlerMethodData.getMethod();
- String methodName = methodData.getName();
- Parameter[] parameters = methodData.getParameters();
- List> parameterList = new ArrayList<>();
- for (Parameter parameter : parameters
- ) {
- parameterList.add(parameter.getType());
- }
- int parameterListSize = parameterList.size();
- Class>[] classes = new Class[parameterListSize];
- for (int i = 0; i < parameterListSize; i++) {
- classes[i] = parameterList.get(i);
+ int parameterListSize = parameterList.size();
+ Class>[] classes = new Class[parameterListSize];
+ for (int i = 0; i < parameterListSize; i++) {
+ classes[i] = parameterList.get(i);
+ }
+ declaredMethod = AopUtils.getTargetClass(applicationContext.getBean(handlerMethod.getBean().toString())).getDeclaredMethod(methodName, classes);
+ parameters = declaredMethod.getParameters();
+ List