diff options
Diffstat (limited to 'jetty-rewrite/src/main/java/org/eclipse/jetty')
4 files changed, 88 insertions, 2 deletions
diff --git a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyPatternRule.java b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyPatternRule.java new file mode 100644 index 0000000000..73a513babc --- /dev/null +++ b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyPatternRule.java @@ -0,0 +1,40 @@ +// +// ======================================================================== +// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.rewrite.handler; + +import java.io.IOException; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.eclipse.jetty.rewrite.handler.RedirectPatternRule; + +/** + * Issues a 301 Moved Permanently Redirects to location if pattern matches + */ +public class MovedPermanentlyPatternRule extends RedirectPatternRule +{ + @Override + public String apply(String target, HttpServletRequest request, HttpServletResponse response) throws IOException + { + response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); + response.setHeader("Location",response.encodeRedirectURL(_location)); + return target; + } +}
\ No newline at end of file diff --git a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyRegexRule.java b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyRegexRule.java new file mode 100644 index 0000000000..0f463a8ef8 --- /dev/null +++ b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/MovedPermanentlyRegexRule.java @@ -0,0 +1,46 @@ +// +// ======================================================================== +// Copyright (c) 1995-2015 Mort Bay Consulting Pty. Ltd. +// ------------------------------------------------------------------------ +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// and Apache License v2.0 which accompanies this distribution. +// +// The Eclipse Public License is available at +// http://www.eclipse.org/legal/epl-v10.html +// +// The Apache License v2.0 is available at +// http://www.opensource.org/licenses/apache2.0.php +// +// You may elect to redistribute this code under either of these licenses. +// ======================================================================== +// + +package org.eclipse.jetty.rewrite.handler; + +import java.io.IOException; +import java.util.regex.Matcher; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +/** + * Issues a 301 Moved Permanently Redirects to location if pattern matches + */ +public class MovedPermanentlyRegexRule extends RedirectRegexRule +{ + @Override + protected String apply(String target, HttpServletRequest request, HttpServletResponse response, Matcher matcher) throws IOException + { + target = _replacement; + for (int g = 1; g <= matcher.groupCount(); g++) + { + String group = matcher.group(g); + target = target.replaceAll("\\$" + g,group); + } + + response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY); + response.setHeader("Location",response.encodeRedirectURL(target)); + return target; + } +}
\ No newline at end of file diff --git a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectPatternRule.java b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectPatternRule.java index de434a08fa..08223f2e4d 100644 --- a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectPatternRule.java +++ b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectPatternRule.java @@ -28,7 +28,7 @@ import javax.servlet.http.HttpServletResponse; */ public class RedirectPatternRule extends PatternRule { - private String _location; + protected String _location; /* ------------------------------------------------------------ */ public RedirectPatternRule() diff --git a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectRegexRule.java b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectRegexRule.java index b734e7d9b8..b1a20e8ce5 100644 --- a/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectRegexRule.java +++ b/jetty-rewrite/src/main/java/org/eclipse/jetty/rewrite/handler/RedirectRegexRule.java @@ -30,7 +30,7 @@ import javax.servlet.http.HttpServletResponse; */ public class RedirectRegexRule extends RegexRule { - private String _replacement; + protected String _replacement; public RedirectRegexRule() { |