Add a bit of logging
authorlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 27 Nov 2008 09:53:31 +0000 (09:53 +0000)
committerlajoie <lajoie@ab3bd59b-922f-494d-bb5f-6f0a3c29deca>
Thu, 27 Nov 2008 09:53:31 +0000 (09:53 +0000)
Fix NPE that could occur when a login handler overrides the actual authentication method used

git-svn-id: https://subversion.switch.ch/svn/shibboleth/java-idp/branches/REL_2@2811 ab3bd59b-922f-494d-bb5f-6f0a3c29deca

src/main/java/edu/internet2/middleware/shibboleth/idp/authn/AuthenticationEngine.java

index 38327f6..5a43443 100644 (file)
@@ -511,6 +511,9 @@ public class AuthenticationEngine extends HttpServlet {
                     .getAttribute(LoginHandler.AUTHENTICATION_METHOD_KEY));
             if (actualAuthnMethod == null) {
                 actualAuthnMethod = loginContext.getAttemptedAuthnMethod();
                     .getAttribute(LoginHandler.AUTHENTICATION_METHOD_KEY));
             if (actualAuthnMethod == null) {
                 actualAuthnMethod = loginContext.getAttemptedAuthnMethod();
+            } else {
+                LOG.debug("Authentication method overriden by LoginHandler.  It was {} and is now {}", loginContext
+                        .getAttemptedAuthnMethod(), actualAuthnMethod);
             }
 
             // Get the Subject from the request. If force authentication was required then make sure the
             }
 
             // Get the Subject from the request. If force authentication was required then make sure the
@@ -546,7 +549,7 @@ public class AuthenticationEngine extends HttpServlet {
     protected void validateSuccessfulAuthentication(LoginContext loginContext, HttpServletRequest httpRequest)
             throws AuthenticationException {
         LOG.debug("Validating authentication was performed successfully");
     protected void validateSuccessfulAuthentication(LoginContext loginContext, HttpServletRequest httpRequest)
             throws AuthenticationException {
         LOG.debug("Validating authentication was performed successfully");
-        
+
         String errorMessage = DatatypeHelper.safeTrimOrNullString((String) httpRequest
                 .getAttribute(LoginHandler.AUTHENTICATION_ERROR_KEY));
         if (errorMessage != null) {
         String errorMessage = DatatypeHelper.safeTrimOrNullString((String) httpRequest
                 .getAttribute(LoginHandler.AUTHENTICATION_ERROR_KEY));
         if (errorMessage != null) {
@@ -653,7 +656,7 @@ public class AuthenticationEngine extends HttpServlet {
 
         LOG.debug("Recording authentication and service information in Shibboleth session for principal: {}",
                 authenticationPrincipal.getName());
 
         LOG.debug("Recording authentication and service information in Shibboleth session for principal: {}",
                 authenticationPrincipal.getName());
-        LoginHandler loginHandler = handlerManager.getLoginHandlers().get(authenticationMethod);
+        LoginHandler loginHandler = handlerManager.getLoginHandlers().get(loginContext.getAttemptedAuthnMethod());
         AuthenticationMethodInformation authnMethodInfo = new AuthenticationMethodInformationImpl(idpSession
                 .getSubject(), authenticationPrincipal, authenticationMethod, new DateTime(), loginHandler
                 .getAuthenticationDuration());
         AuthenticationMethodInformation authnMethodInfo = new AuthenticationMethodInformationImpl(idpSession
                 .getSubject(), authenticationPrincipal, authenticationMethod, new DateTime(), loginHandler
                 .getAuthenticationDuration());