diff --git a/ng-appserver/src/main/java/ng/appserver/NGApplication.java b/ng-appserver/src/main/java/ng/appserver/NGApplication.java index 5d847486..b9a9d95f 100644 --- a/ng-appserver/src/main/java/ng/appserver/NGApplication.java +++ b/ng-appserver/src/main/java/ng/appserver/NGApplication.java @@ -13,6 +13,8 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.Optional; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -461,19 +463,29 @@ public NGActionResults defaultResponse( final NGRequest request ) { */ private void cleanupWOURL( final NGRequest request ) { - String woStart = "/Apps/WebObjects/%s.woa/1".formatted( properties().propWOApplicationName() ); + final Pattern pattern = Pattern.compile( "^/(cgi-bin|Apps)/WebObjects/" + properties().propWOApplicationName() + ".woa(/[0-9])?" ); + final Matcher matcher = pattern.matcher( request.uri() ); + + if( matcher.find() ) { + request.setURI( request.uri().substring( matcher.group().length() ) ); + logger.info( "Rewrote WO URI to {}", request.uri() ); + } + /* + String woStart = "/Apps/WebObjects/%s.woa/1".formatted( properties().propWOApplicationName() ); + if( request.uri().startsWith( woStart ) ) { request.setURI( request.uri().substring( woStart.length() ) ); logger.info( "Rewrote WO URI to {}", request.uri() ); } - + woStart = "/cgi-bin/WebObjects/%s.woa".formatted( properties().propWOApplicationName() ); - + if( request.uri().startsWith( woStart ) ) { request.setURI( request.uri().substring( woStart.length() ) ); logger.info( "Rewrote WO URI to {}", request.uri() ); } + */ } /**