[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