More cleanup and logging
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Sat, 12 Jan 2008 09:28:26 +0000 (09:28 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Sat, 12 Jan 2008 09:28:26 +0000 (09:28 +0000)
git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/trunk@2567 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/edu/internet2/middleware/shibboleth/idp/authn/AuthenticationEngine.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml1/ShibbolethSSOProfileHandler.java
src/edu/internet2/middleware/shibboleth/idp/profile/saml2/SSOProfileHandler.java

index 948dda8..a49aba8 100644 (file)
@@ -106,6 +106,7 @@ public class AuthenticationEngine extends HttpServlet {
     public static void returnToProfileHandler(LoginContext loginContext, HttpServletRequest httpRequest,
             HttpServletResponse httpResponse) {
         LOG.debug("Returning control to profile handler at: {}", loginContext.getProfileHandlerURL());
+        httpRequest.getSession().removeAttribute(LoginContext.LOGIN_CONTEXT_KEY);
         httpRequest.setAttribute(LoginContext.LOGIN_CONTEXT_KEY, loginContext);
         forwardRequest(loginContext.getProfileHandlerURL(), httpRequest, httpResponse);
     }
@@ -146,9 +147,6 @@ public class AuthenticationEngine extends HttpServlet {
             // The authn engine attaches it to the session to allow the handlers to do any number of
             // request/response pairs without maintaining or losing the login context
             loginContext = (LoginContext) httpRequest.getSession().getAttribute(LoginContext.LOGIN_CONTEXT_KEY);
-        } else {
-            // Clean out any old state that might be lying around
-            httpRequest.getSession().removeAttribute(LoginContext.LOGIN_CONTEXT_KEY);
         }
 
         if (loginContext == null) {
@@ -396,10 +394,9 @@ public class AuthenticationEngine extends HttpServlet {
             loginContext.setAuthenticationMethod(actualAuthnMethod);
         }
 
-        updateUserSession(loginContext, httpRequest, httpResponse);
-
-        LOG.debug("User {} authentication with authentication method {}", loginContext.getPrincipalName(), loginContext
+        LOG.debug("User {} authenticated with method {}", loginContext.getPrincipalName(), loginContext
                 .getAuthenticationMethod());
+        updateUserSession(loginContext, httpRequest, httpResponse);
         returnToProfileHandler(loginContext, httpRequest, httpResponse);
     }
 
index 12f13a1..c1b2e55 100644 (file)
@@ -110,14 +110,10 @@ public class ShibbolethSSOProfileHandler extends AbstractSAML1ProfileHandler {
         LoginContext loginContext = (LoginContext) httpRequest.getAttribute(LoginContext.LOGIN_CONTEXT_KEY);
 
         if (loginContext == null) {
-            log.debug("User session does not contain a login context, processing as first leg of request");
-            performAuthentication(inTransport, outTransport);
-        } else if (!loginContext.isPrincipalAuthenticated() && !loginContext.getAuthenticationAttempted()) {
-            log
-                    .debug("User session contained a login context but user was not authenticated, processing as first leg of request");
+            log.debug("Incoming request does not contain a login context, processing as first leg of request");
             performAuthentication(inTransport, outTransport);
         } else {
-            log.debug("User session contains a login context, processing as second leg of request");
+            log.debug("Incoming request contains a login context, processing as second leg of request");
             completeAuthenticationRequest(inTransport, outTransport);
         }
     }
index c25653c..5d1a2ab 100644 (file)
@@ -126,17 +126,13 @@ public class SSOProfileHandler extends AbstractSAML2ProfileHandler {
     /** {@inheritDoc} */
     public void processRequest(HTTPInTransport inTransport, HTTPOutTransport outTransport) throws ProfileException {
         HttpServletRequest servletRequest = ((HttpServletRequestAdapter) inTransport).getWrappedRequest();
+        
         LoginContext loginContext = (LoginContext) servletRequest.getAttribute(LoginContext.LOGIN_CONTEXT_KEY);
-
         if (loginContext == null) {
-            log.debug("User session does not contain a login context, processing as first leg of request");
-            performAuthentication(inTransport, outTransport);
-        } else if (!loginContext.isPrincipalAuthenticated() && !loginContext.getAuthenticationAttempted()) {
-            log
-                    .debug("User session contained a login context but user was not authenticated, processing as first leg of request");
+            log.debug("Incoming request does not contain a login context, processing as first leg of request");
             performAuthentication(inTransport, outTransport);
         } else {
-            log.debug("User session contains a login context, processing as second leg of request");
+            log.debug("Incoming request contains a login context, processing as second leg of request");
             completeAuthenticationRequest(inTransport, outTransport);
         }
     }