[type:fix] Fix #5332 (#5338)
Co-authored-by: xiaoyu <xiaoyu@apache.org>
diff --git a/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java b/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
index 29eacc6..30bcad8 100644
--- a/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
+++ b/shenyu-web/src/main/java/org/apache/shenyu/web/handler/ShenyuWebHandler.java
@@ -136,6 +136,9 @@
}
// copy new list
List<ShenyuPlugin> newPluginList = new ArrayList<>(plugins);
+
+ // Add extend plugin from pluginData or shenyu ext-lib
+ this.sourcePlugins.addAll(shenyuAddPlugins);
if (CollectionUtils.isNotEmpty(shenyuAddPlugins)) {
shenyuAddPlugins.forEach(plugin -> LOG.info("shenyu auto add extends plugins:{}", plugin.named()));
@@ -149,6 +152,11 @@
newPluginList.set(i, updatePlugin);
}
}
+ for (int i = 0; i < this.sourcePlugins.size(); i++) {
+ if (this.sourcePlugins.get(i).named().equals(updatePlugin.named())) {
+ this.sourcePlugins.set(i, updatePlugin);
+ }
+ }
}
}
plugins = sortPlugins(newPluginList);