[jboss-cvs] jboss-seam/src/main/org/jboss/seam/servlet ...
Shane Bryzak
Shane_Bryzak at symantec.com
Thu Feb 8 23:13:07 EST 2007
User: sbryzak2
Date: 07/02/08 23:13:07
Modified: src/main/org/jboss/seam/servlet MultipartFilter.java
SeamExceptionFilter.java SeamFilter.java
SeamRedirectFilter.java SeamServletFilter.java
Added: src/main/org/jboss/seam/servlet BaseFilter.java
Log:
different base class for filters to reduce confusion
Revision Changes Path
1.3 +1 -2 jboss-seam/src/main/org/jboss/seam/servlet/MultipartFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: MultipartFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/MultipartFilter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- MultipartFilter.java 8 Feb 2007 23:43:22 -0000 1.2
+++ MultipartFilter.java 9 Feb 2007 04:13:07 -0000 1.3
@@ -24,7 +24,7 @@
@Name("org.jboss.seam.servlet.multipartFilter")
@Install(precedence = BUILT_IN)
@Intercept(NEVER)
-public class MultipartFilter extends SeamFilter
+public class MultipartFilter extends BaseFilter
{
public static final String MULTIPART = "multipart/";
@@ -58,7 +58,6 @@
this.maxRequestSize = maxFileSize;
}
- @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
1.27 +1 -2 jboss-seam/src/main/org/jboss/seam/servlet/SeamExceptionFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamExceptionFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamExceptionFilter.java,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -b -r1.26 -r1.27
--- SeamExceptionFilter.java 8 Feb 2007 23:43:22 -0000 1.26
+++ SeamExceptionFilter.java 9 Feb 2007 04:13:07 -0000 1.27
@@ -39,11 +39,10 @@
@Name("org.jboss.seam.servlet.exceptionFilter")
@Install(precedence = BUILT_IN)
@Intercept(NEVER)
-public class SeamExceptionFilter extends SeamFilter
+public class SeamExceptionFilter extends BaseFilter
{
private static final LogProvider log = Logging.getLogProvider(SeamExceptionFilter.class);
- @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
1.4 +5 -93 jboss-seam/src/main/org/jboss/seam/servlet/SeamFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamFilter.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- SeamFilter.java 8 Feb 2007 23:43:22 -0000 1.3
+++ SeamFilter.java 9 Feb 2007 04:13:07 -0000 1.4
@@ -12,7 +12,6 @@
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
import org.jboss.seam.contexts.Context;
import org.jboss.seam.contexts.WebApplicationContext;
@@ -23,16 +22,6 @@
private Set<Filter> filters = new HashSet<Filter>();
- /**
- * By default the filter is enabled
- */
- private boolean disabled = false;
-
- /**
- * By default match all requests
- */
- private String urlPattern = "/*";
-
private class FilterChainImpl implements FilterChain
{
private FilterChain chain;
@@ -51,10 +40,10 @@
{
Filter filter = iter.next();
- if (filter instanceof SeamFilter)
+ if (filter instanceof BaseFilter)
{
- SeamFilter sf = (SeamFilter) filter;
- if (sf.getUrlPattern() == null || sf.matchesRequestPath(request))
+ BaseFilter bf = (BaseFilter) filter;
+ if (bf.getUrlPattern() == null || bf.matchesRequestPath(request))
{
filter.doFilter(request, response, this);
}
@@ -111,89 +100,12 @@
protected boolean addFilter(Filter filter, FilterConfig filterConfig)
throws ServletException
{
- if (filter instanceof SeamFilter && ((SeamFilter) filter).isDisabled())
+ if (filter instanceof BaseFilter && ((BaseFilter) filter).isDisabled())
return false;
filter.init(filterConfig);
return filters.add(filter);
}
- public String getUrlPattern()
- {
- return urlPattern;
- }
-
- public void setUrlPattern(String urlPattern)
- {
- this.urlPattern = urlPattern;
- }
-
- public boolean isDisabled()
- {
- return disabled;
- }
-
- public void setDisabled(boolean disabled)
- {
- this.disabled = disabled;
- }
-
- /**
- * Pattern matching code, adapted from Tomcat. This method checks to see if
- * the specified path matches the specified pattern.
- *
- * @param request ServletRequest The request containing the path
- * @return boolean True if the path matches the pattern, false otherwise
- */
- private boolean matchesRequestPath(ServletRequest request)
- {
- if (!(request instanceof HttpServletRequest))
- return true;
-
- String path = ((HttpServletRequest) request).getServletPath();
- String pattern = getUrlPattern();
-
- if (path == null || "".equals(path)) path = "/";
- if (pattern == null || "".equals(pattern)) pattern = "/";
-
- // Check for an exact match
- if (path.equals(pattern)) return true;
-
- // Check for path prefix matching
- if (pattern.startsWith("/") && pattern.endsWith("/*"))
- {
- pattern = pattern.substring(0, pattern.length() - 2);
- if (pattern.length() == 0) return true;
-
- if (path.endsWith("/")) path = path.substring(0, path.length() - 1);
-
- while (true)
- {
- if (pattern.equals(path)) return true;
- int slash = path.lastIndexOf('/');
- if (slash <= 0) break;
- path = path.substring(0, slash);
- }
- return false;
- }
-
- // Check for suffix matching
- if (pattern.startsWith("*."))
- {
- int slash = path.lastIndexOf('/');
- int period = path.lastIndexOf('.');
- if ((slash >= 0) && (period > slash) && path.endsWith(pattern.substring(1)))
- {
- return true;
- }
- return false;
- }
-
- // Check for universal mapping
- if (pattern.equals("/")) return true;
-
- return false;
- }
-
public void destroy() {}
}
1.17 +1 -2 jboss-seam/src/main/org/jboss/seam/servlet/SeamRedirectFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamRedirectFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamRedirectFilter.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- SeamRedirectFilter.java 8 Feb 2007 23:43:22 -0000 1.16
+++ SeamRedirectFilter.java 9 Feb 2007 04:13:07 -0000 1.17
@@ -29,9 +29,8 @@
@Name("org.jboss.seam.servlet.redirectFilter")
@Install(precedence = BUILT_IN)
@Intercept(NEVER)
-public class SeamRedirectFilter extends SeamFilter
+public class SeamRedirectFilter extends BaseFilter
{
- @Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
1.14 +1 -2 jboss-seam/src/main/org/jboss/seam/servlet/SeamServletFilter.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: SeamServletFilter.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/servlet/SeamServletFilter.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- SeamServletFilter.java 8 Feb 2007 23:43:22 -0000 1.13
+++ SeamServletFilter.java 9 Feb 2007 04:13:07 -0000 1.14
@@ -30,7 +30,7 @@
@Name("org.jboss.seam.servlet.servletFilter")
@Install(precedence = BUILT_IN)
@Intercept(NEVER)
-public class SeamServletFilter extends SeamFilter
+public class SeamServletFilter extends BaseFilter
{
private static final LogProvider log = Logging.getLogProvider(SeamServletFilter.class);
private boolean explicitDisabled = false;
@@ -57,7 +57,6 @@
if (disabled) explicitDisabled = true;
}
- @Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException
{
1.1 date: 2007/02/09 04:13:07; author: sbryzak2; state: Exp;jboss-seam/src/main/org/jboss/seam/servlet/BaseFilter.java
Index: BaseFilter.java
===================================================================
package org.jboss.seam.servlet;
import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
public abstract class BaseFilter implements Filter
{
private ServletContext servletContext;
/**
* By default the filter is enabled
*/
private boolean disabled = false;
/**
* By default match all requests
*/
private String urlPattern = "/*";
public void init(FilterConfig filterConfig) throws ServletException
{
servletContext = filterConfig.getServletContext();
}
protected ServletContext getServletContext()
{
return servletContext;
}
public String getUrlPattern()
{
return urlPattern;
}
public void setUrlPattern(String urlPattern)
{
this.urlPattern = urlPattern;
}
public boolean isDisabled()
{
return disabled;
}
public void setDisabled(boolean disabled)
{
this.disabled = disabled;
}
/**
* Pattern matching code, adapted from Tomcat. This method checks to see if
* the specified path matches the specified pattern.
*
* @param request ServletRequest The request containing the path
* @return boolean True if the path matches the pattern, false otherwise
*/
boolean matchesRequestPath(ServletRequest request)
{
if (!(request instanceof HttpServletRequest))
return true;
String path = ((HttpServletRequest) request).getServletPath();
String pattern = getUrlPattern();
if (path == null || "".equals(path)) path = "/";
if (pattern == null || "".equals(pattern)) pattern = "/";
// Check for an exact match
if (path.equals(pattern)) return true;
// Check for path prefix matching
if (pattern.startsWith("/") && pattern.endsWith("/*"))
{
pattern = pattern.substring(0, pattern.length() - 2);
if (pattern.length() == 0) return true;
if (path.endsWith("/")) path = path.substring(0, path.length() - 1);
while (true)
{
if (pattern.equals(path)) return true;
int slash = path.lastIndexOf('/');
if (slash <= 0) break;
path = path.substring(0, slash);
}
return false;
}
// Check for suffix matching
if (pattern.startsWith("*."))
{
int slash = path.lastIndexOf('/');
int period = path.lastIndexOf('.');
if ((slash >= 0) && (period > slash) && path.endsWith(pattern.substring(1)))
{
return true;
}
return false;
}
// Check for universal mapping
if (pattern.equals("/")) return true;
return false;
}
public void destroy() { }
}
More information about the jboss-cvs-commits
mailing list