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)) {

Reply via email to