Author: markt
Date: Fri Jul  3 20:08:18 2015
New Revision: 1689082

URL: http://svn.apache.org/r1689082
Log:
Extracted saved authentication handling to separate method 
Patch by fjodorver

Modified:
    
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java

Modified: 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java?rev=1689082&r1=1689081&r2=1689082&view=diff
==============================================================================
--- 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
 (original)
+++ 
tomcat/trunk/java/org/apache/catalina/authenticator/jaspic/provider/modules/FormAuthModule.java
 Fri Jul  3 20:08:18 2015
@@ -106,32 +106,8 @@ public class FormAuthModule extends Tomc
         Request request = (Request) messageInfo.getRequestMessage();
         HttpServletResponse response = (HttpServletResponse) 
messageInfo.getResponseMessage();
 
-        // Have we authenticated this user before but have caching disabled?
-        if (!cachePrincipalsInSession) {
-            Session session = request.getSessionInternal(true);
-            if (log.isDebugEnabled()) {
-                log.debug("Checking for reauthenticate in session " + session);
-            }
-            String username = (String) 
session.getNote(Constants.SESS_USERNAME_NOTE);
-            String password = (String) 
session.getNote(Constants.SESS_PASSWORD_NOTE);
-            if ((username != null) && (password != null)) {
-                if (log.isDebugEnabled()) {
-                    log.debug("Reauthenticating username '" + username + "'");
-                }
-                Principal principal = realm.authenticate(username, password);
-                if (principal == null) {
-                    forwardToErrorPage(request, response);
-                    return AuthStatus.FAILURE;
-                }
-
-                session.setNote(Constants.FORM_PRINCIPAL_NOTE, principal);
-                if (isMatchingSavedRequest(request)) {
-                    return submitSavedRequest(clientSubject, request, 
response);
-                }
-
-                handlePrincipalCallbacks(clientSubject, principal);
-                return AuthStatus.SUCCESS;
-            }
+        if (!cachePrincipalsInSession && isUserAuthenicatedBefore(request)) {
+            return handleSavedCredentials(clientSubject, request, response);
         }
 
         // Is this the re-submit of the original request URI after
@@ -149,6 +125,43 @@ public class FormAuthModule extends Tomc
     }
 
 
+    private AuthStatus handleSavedCredentials(Subject clientSubject, Request 
request,
+            HttpServletResponse response) throws IOException, 
UnsupportedCallbackException {
+        Session session = request.getSessionInternal(true);
+        if (log.isDebugEnabled()) {
+            log.debug("Checking for reauthenticate in session " + session);
+        }
+
+        String username = (String) 
session.getNote(Constants.SESS_USERNAME_NOTE);
+        String password = (String) 
session.getNote(Constants.SESS_PASSWORD_NOTE);
+        if (log.isDebugEnabled()) {
+            log.debug("Reauthenticating username '" + username + "'");
+        }
+
+        Principal principal = realm.authenticate(username, password);
+        if (principal == null) {
+            forwardToErrorPage(request, response);
+            return AuthStatus.FAILURE;
+        }
+
+        session.setNote(Constants.FORM_PRINCIPAL_NOTE, principal);
+        if (isMatchingSavedRequest(request)) {
+            return submitSavedRequest(clientSubject, request, response);
+        }
+
+        handlePrincipalCallbacks(clientSubject, principal);
+        return AuthStatus.SUCCESS;
+    }
+
+
+    private boolean isUserAuthenicatedBefore(Request request) {
+        Session session = request.getSessionInternal(true);
+        String username = (String) 
session.getNote(Constants.SESS_USERNAME_NOTE);
+        String password = (String) 
session.getNote(Constants.SESS_PASSWORD_NOTE);
+        return username != null && password != null;
+    }
+
+
     private AuthStatus submitSavedRequest(Subject clientSubject, Request 
request,
             HttpServletResponse response) throws IOException, 
UnsupportedCallbackException {
         Session session = request.getSessionInternal(true);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to