[jboss-cvs] jboss-seam/src/main/org/jboss/seam/web ...
Peter Muir
peter at bleepbleep.org.uk
Tue Jan 15 07:30:12 EST 2008
User: pmuir
Date: 08/01/15 07:30:12
Modified: src/main/org/jboss/seam/web AbstractFilter.java
Log:
JBSEAM-2494
Revision Changes Path
1.10 +51 -2 jboss-seam/src/main/org/jboss/seam/web/AbstractFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: AbstractFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/AbstractFilter.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- AbstractFilter.java 14 Jan 2008 16:33:56 -0000 1.9
+++ AbstractFilter.java 15 Jan 2008 12:30:12 -0000 1.10
@@ -1,5 +1,7 @@
package org.jboss.seam.web;
+import java.util.regex.Pattern;
+
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
@@ -26,6 +28,10 @@
private String urlPattern;
+ private String regexUrlPattern;
+
+ private Pattern pattern;
+
private boolean disabled;
public void init(FilterConfig filterConfig) throws ServletException
@@ -48,6 +54,26 @@
this.urlPattern = urlPattern;
}
+ public String getRegexUrlPattern()
+ {
+ return this.regexUrlPattern;
+ }
+
+ public void setRegexUrlPattern(String regexUrlPattern)
+ {
+ this.regexUrlPattern = regexUrlPattern;
+ pattern = null;
+ }
+
+ private Pattern getPattern()
+ {
+ if (pattern == null && getRegexUrlPattern() != null)
+ {
+ pattern = Pattern.compile(getRegexUrlPattern());
+ }
+ return pattern;
+ }
+
public boolean isDisabled()
{
return disabled;
@@ -68,10 +94,33 @@
public boolean isMappedToCurrentRequestPath(ServletRequest request)
{
if (!(request instanceof HttpServletRequest))
+ {
return true;
-
+ }
String path = ((HttpServletRequest) request).getServletPath();
- String pattern = getUrlPattern();
+ String urlPattern = getUrlPattern();
+ Pattern regexPattern = getPattern();
+ if (urlPattern != null)
+ {
+ return matchesTomcatPattern(path, urlPattern);
+ }
+ else if (regexPattern != null)
+ {
+ return matchesRegexPattern(path, regexPattern);
+ }
+ else
+ {
+ return true;
+ }
+ }
+
+ private static boolean matchesRegexPattern(String path, Pattern pattern)
+ {
+ return pattern.matcher(path).matches();
+ }
+
+ private static boolean matchesTomcatPattern(String path, String pattern)
+ {
if (pattern==null) return true;
More information about the jboss-cvs-commits
mailing list