From d7a8a7e69831cab86a82bfb6deaaf0358d86d5b0 Mon Sep 17 00:00:00 2001 From: Arnaud Roques Date: Fri, 21 Apr 2017 22:38:08 +0200 Subject: [PATCH] Running PlantUML as ROOT.war --- .../sourceforge/plantuml/servlet/PlantUmlServlet.java | 5 +++-- .../plantuml/servlet/UmlDiagramService.java | 10 ++++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlServlet.java b/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlServlet.java index ed04b66..961b156 100644 --- a/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlServlet.java +++ b/src/main/java/net/sourceforge/plantuml/servlet/PlantUmlServlet.java @@ -62,7 +62,7 @@ public class PlantUmlServlet extends HttpServlet { // Last part of the URL public static final Pattern URL_PATTERN = Pattern.compile("^.*[^a-zA-Z0-9\\-\\_]([a-zA-Z0-9\\-\\_]+)"); - private static final Pattern RECOVER_UML_PATTERN = Pattern.compile("/\\w+/uml/(.*)"); + private static final Pattern RECOVER_UML_PATTERN = Pattern.compile("/uml/(.*)"); @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { @@ -131,7 +131,8 @@ public class PlantUmlServlet extends HttpServlet { private String getTextFromUrl(HttpServletRequest request, String text) throws IOException { String url = request.getParameter("url"); - final Matcher recoverUml = RECOVER_UML_PATTERN.matcher(request.getRequestURI()); + final Matcher recoverUml = RECOVER_UML_PATTERN.matcher(request.getRequestURI().substring( + request.getContextPath().length())); // the URL form has been submitted if (recoverUml.matches()) { final String data = recoverUml.group(1); diff --git a/src/main/java/net/sourceforge/plantuml/servlet/UmlDiagramService.java b/src/main/java/net/sourceforge/plantuml/servlet/UmlDiagramService.java index c663b66..2481201 100644 --- a/src/main/java/net/sourceforge/plantuml/servlet/UmlDiagramService.java +++ b/src/main/java/net/sourceforge/plantuml/servlet/UmlDiagramService.java @@ -45,7 +45,7 @@ public abstract class UmlDiagramService extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // build the UML source from the compressed request parameter - final String[] sourceAndIdx = getSourceAndIdx(request.getRequestURI()); + final String[] sourceAndIdx = getSourceAndIdx(request); final String uml; try { uml = UmlExtractor.getUmlSource(sourceAndIdx[0]); @@ -67,7 +67,7 @@ public abstract class UmlDiagramService extends HttpServlet { dr = null; } - private static final Pattern RECOVER_UML_PATTERN = Pattern.compile("/\\w+/\\w+/(\\d+/)?(.*)"); + private static final Pattern RECOVER_UML_PATTERN = Pattern.compile("/\\w+/(\\d+/)?(.*)"); /** * Extracts the compressed UML source from the HTTP URI. @@ -76,8 +76,10 @@ public abstract class UmlDiagramService extends HttpServlet { * the complete URI as returned by request.getRequestURI() * @return the compressed UML source */ - public final String[] getSourceAndIdx(String uri) { - final Matcher recoverUml = RECOVER_UML_PATTERN.matcher(uri); + public final String[] getSourceAndIdx(HttpServletRequest request) { + final Matcher recoverUml = RECOVER_UML_PATTERN.matcher( + request.getRequestURI().substring( + request.getContextPath().length())); // the URL form has been submitted if (recoverUml.matches()) { final String data = recoverUml.group(2);