This is an automated email from the ASF dual-hosted git repository.
Aias00 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shenyu.git
The following commit(s) were added to refs/heads/master by this push:
new 5aa8aeffd3 [type: bug] Fix RewritePlugin placeholder drops first
character and StringIndexOutOfBounds (#6883) (#7013)
5aa8aeffd3 is described below
commit 5aa8aeffd378c26fb76697cd6552c149e4a6d253
Author: Arvin <[email protected]>
AuthorDate: Wed Sep 2 11:03:57 2026 +0800
[type: bug] Fix RewritePlugin placeholder drops first character and
StringIndexOutOfBounds (#6883) (#7013)
Signed-off-by: zhang-arvin <[email protected]>
Co-authored-by: aias00 <[email protected]>
---
.../src/main/java/org/apache/shenyu/plugin/rewrite/RewritePlugin.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
a/shenyu-plugin/shenyu-plugin-rewrite/src/main/java/org/apache/shenyu/plugin/rewrite/RewritePlugin.java
b/shenyu-plugin/shenyu-plugin-rewrite/src/main/java/org/apache/shenyu/plugin/rewrite/RewritePlugin.java
index 3f0616fbcc..486764f1e7 100644
---
a/shenyu-plugin/shenyu-plugin-rewrite/src/main/java/org/apache/shenyu/plugin/rewrite/RewritePlugin.java
+++
b/shenyu-plugin/shenyu-plugin-rewrite/src/main/java/org/apache/shenyu/plugin/rewrite/RewritePlugin.java
@@ -74,9 +74,9 @@ public class RewritePlugin extends AbstractShenyuPlugin {
final Integer percentage =
Optional.ofNullable(rewriteHandle.getPercentage()).orElse(100);
if (StringUtils.isNoneBlank(rewriteHandle.getRegex(),
rewriteHandle.getReplace())
&& ThreadLocalRandom.current().nextInt(100) < percentage) {
- rewriteUri = rewriteHandle.getReplace().contains("{")
+ rewriteUri = rewriteHandle.getReplace().contains("{") &&
rewriteHandle.getRegex().contains("{")
? PathMatchUtils.replaceAll(rewriteHandle.getReplace(),
rewriteHandle.getRegex().substring(rewriteHandle.getRegex().indexOf("{")),
-
rewriteUri.substring(rewriteHandle.getRegex().indexOf("{") + 1))
+
rewriteUri.substring(rewriteHandle.getRegex().indexOf("{")))
: rewriteUri.replaceAll(rewriteHandle.getRegex(),
rewriteHandle.getReplace());
Map<String, Object> attributes = exchange.getAttributes();
if
(Optional.ofNullable(rewriteHandle.getRewriteMetaData()).orElse(false)) {