[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