[jboss-cvs] jboss-seam/src/main/org/jboss/seam/web ...

Gavin King gavin.king at jboss.com
Wed Jun 13 17:07:34 EDT 2007


  User: gavin   
  Date: 07/06/13 17:07:34

  Modified:    src/main/org/jboss/seam/web   AuthenticationFilter.java
                        ContextFilter.java
  Log:
  refactor
  
  Revision  Changes    Path
  1.4       +19 -28    jboss-seam/src/main/org/jboss/seam/web/AuthenticationFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AuthenticationFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/AuthenticationFilter.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -b -r1.3 -r1.4
  --- AuthenticationFilter.java	13 Jun 2007 16:43:03 -0000	1.3
  +++ AuthenticationFilter.java	13 Jun 2007 21:07:34 -0000	1.4
  @@ -9,6 +9,7 @@
   import java.util.Map;
   
   import javax.faces.event.PhaseId;
  +import javax.security.auth.login.LoginException;
   import javax.servlet.FilterChain;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
  @@ -16,6 +17,7 @@
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   
  +import org.jboss.seam.Seam;
   import org.jboss.seam.annotations.Filter;
   import org.jboss.seam.annotations.Install;
   import org.jboss.seam.annotations.Intercept;
  @@ -24,6 +26,7 @@
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Startup;
   import org.jboss.seam.contexts.Context;
  +import org.jboss.seam.contexts.ContextualHttpServletRequest;
   import org.jboss.seam.contexts.Lifecycle;
   import org.jboss.seam.contexts.SessionContext;
   import org.jboss.seam.core.ConversationPropagation;
  @@ -188,8 +191,7 @@
               HttpServletResponse response, FilterChain chain)
         throws IOException, ServletException
      {
  -      Context ctx = new SessionContext( new ServletRequestSessionMap(request) );
  -      Identity identity = (Identity) ctx.get(Identity.class);
  +      Identity identity = (Identity) request.getSession().getAttribute( Seam.getComponentName(Identity.class) );
         
         boolean requireAuth = false;    
         boolean nonceExpired = false;
  @@ -207,7 +209,6 @@
               headerMap.put(vals[0].trim(), vals[1].replace("\"", "").trim());
            }
            
  -         identity.setUsername(headerMap.get("username"));
   
            DigestRequest digestRequest = new DigestRequest();
            digestRequest.setHttpMethod(request.getMethod());
  @@ -224,8 +225,8 @@
            try
            {
               digestRequest.validate();
  -            ctx.set(DigestRequest.DIGEST_REQUEST, digestRequest);
  -            authenticate(request, identity);
  +            request.getSession().setAttribute(DigestRequest.DIGEST_REQUEST, digestRequest);
  +            authenticate( request, headerMap.get("username") );
            }
            catch (DigestValidationException ex)
            {
  @@ -281,35 +282,25 @@
         }             
      }
      
  -   private void authenticate(HttpServletRequest request, Identity identity)
  -      throws Exception
  +   private void authenticate(HttpServletRequest request, final String username)
  +      throws ServletException, IOException
      {
  -      try
  +      new ContextualHttpServletRequest(request, getServletContext())
         {
  -         Lifecycle.setPhaseId(PhaseId.INVOKE_APPLICATION);
  -         Lifecycle.setServletRequest(request);
  -         Lifecycle.beginRequest( getServletContext(), request );
  -         ConversationPropagation.instance().restoreConversationId( request.getParameterMap() );
  -         Manager.instance().restoreConversation();
  -         Lifecycle.resumeConversation(request);
  -         Manager.instance().handleConversationPropagation( request.getParameterMap() );   
  -         identity.authenticate();
  -      }
  -      catch (Exception ex) 
  +         @Override
  +         public void process() throws ServletException, IOException, LoginException
         {
  -         Lifecycle.endRequest();
  -         throw ex;
  -      }      
  -      finally
  -      {
  -         Lifecycle.setServletRequest(null);
  -         Lifecycle.setPhaseId(null);
  +            Identity identity = Identity.instance();
  +            identity.setUsername(username);
  +            identity.authenticate();
         }      
  +      }.run();  
      }
      
      private String[] split(String toSplit, String delimiter) 
      {
  -      if (delimiter.length() != 1) {
  +      if (delimiter.length() != 1) 
  +      {
             throw new IllegalArgumentException("Delimiter can only be one character in length");
         }
   
  
  
  
  1.8       +9 -36     jboss-seam/src/main/org/jboss/seam/web/ContextFilter.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ContextFilter.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/web/ContextFilter.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -b -r1.7 -r1.8
  --- ContextFilter.java	13 Jun 2007 16:43:03 -0000	1.7
  +++ ContextFilter.java	13 Jun 2007 21:07:34 -0000	1.8
  @@ -6,7 +6,6 @@
   
   import java.io.IOException;
   
  -import javax.faces.event.PhaseId;
   import javax.servlet.FilterChain;
   import javax.servlet.ServletException;
   import javax.servlet.ServletRequest;
  @@ -19,12 +18,7 @@
   import org.jboss.seam.annotations.Name;
   import org.jboss.seam.annotations.Scope;
   import org.jboss.seam.annotations.Startup;
  -import org.jboss.seam.contexts.Lifecycle;
  -import org.jboss.seam.core.ConversationPropagation;
  -import org.jboss.seam.core.Manager;
  -import org.jboss.seam.log.LogProvider;
  -import org.jboss.seam.log.Logging;
  -import org.jboss.seam.servlet.ServletRequestSessionMap;
  +import org.jboss.seam.contexts.ContextualHttpServletRequest;
   
   /**
    * Manages the Seam contexts associated with a request to any servlet.
  @@ -39,38 +33,17 @@
   @Filter(within="org.jboss.seam.web.ajax4jsfFilter")
   public class ContextFilter extends AbstractFilter 
   {
  -   private static final LogProvider log = Logging.getLogProvider(ContextFilter.class);
    
  -   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) 
  +   public void doFilter(final ServletRequest request, final ServletResponse response, final FilterChain chain) 
          throws IOException, ServletException 
      {
  -      log.debug("beginning request");
  -      HttpServletRequest hsr = (HttpServletRequest) request;
  -      Lifecycle.setPhaseId(PhaseId.INVOKE_APPLICATION);
  -      Lifecycle.setServletRequest(request);
  -      Lifecycle.beginRequest(getServletContext(), hsr);
  -      ConversationPropagation.instance().restoreConversationId( request.getParameterMap() );
  -      Manager.instance().restoreConversation();
  -      Lifecycle.resumeConversation(hsr);
  -      Manager.instance().handleConversationPropagation( request.getParameterMap() );
  -      try
  +      new ContextualHttpServletRequest( (HttpServletRequest) request, getServletContext() )
         {
  -         chain.doFilter(request, response);
  -         //TODO: conversation timeout
  -         Manager.instance().endRequest( new ServletRequestSessionMap(hsr)  );
  -         Lifecycle.endRequest(hsr);
  -      }
  -      catch (Exception e)
  +         @Override
  +         public void process() throws ServletException, IOException
         {
  -         Lifecycle.endRequest();
  -         log.error("ended request due to exception", e);
  -         throw new ServletException(e);
  -      }
  -      finally
  -      {
  -         Lifecycle.setServletRequest(null);
  -         Lifecycle.setPhaseId(null);
  -         log.debug("ended request");
  +            chain.doFilter(request, response);
         }
  +      }.run();
      }
   }
  
  
  



More information about the jboss-cvs-commits mailing list