Author: schultz
Date: Sat Aug 27 11:47:09 2016
New Revision: 1757997

URL: http://svn.apache.org/viewvc?rev=1757997&view=rev
Log:
Align Realm.authenticate(String,String) code to work the same way across all 
appropriate realms: logging, order of operations, code comments, etc.

Modified:
    tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java
    tomcat/trunk/java/org/apache/catalina/realm/JDBCRealm.java
    tomcat/trunk/java/org/apache/catalina/realm/MemoryRealm.java
    tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java

Modified: tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java?rev=1757997&r1=1757996&r2=1757997&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/DataSourceRealm.java Sat Aug 27 
11:47:09 2016
@@ -287,16 +287,26 @@ public class DataSourceRealm extends Rea
      * @return the associated principal, or <code>null</code> if there is none.
      */
     protected Principal authenticate(Connection dbConnection,
-                                               String username,
-                                               String credentials) {
+                                     String username,
+                                     String credentials) {
+        // No user or no credentials
+        // Can't possibly authenticate, don't bother the database then
+        if (username == null || credentials == null) {
+            if (containerLog.isTraceEnabled())
+                
containerLog.trace(sm.getString("dataSourceRealm.authenticateFailure",
+                                                username));
+            return null;
+        }
 
+        // Look up the user's credentials
         String dbCredentials = getPassword(dbConnection, username);
 
-        if (credentials == null || dbCredentials == null) {
+        if(dbCredentials == null) {
+            // User was not found in the database.
+
             if (containerLog.isTraceEnabled())
-                containerLog.trace(
-                    sm.getString("dataSourceRealm.authenticateFailure",
-                                 username));
+                
containerLog.trace(sm.getString("dataSourceRealm.authenticateFailure",
+                                                username));
             return null;
         }
 
@@ -305,15 +315,13 @@ public class DataSourceRealm extends Rea
 
         if (validated) {
             if (containerLog.isTraceEnabled())
-                containerLog.trace(
-                    sm.getString("dataSourceRealm.authenticateSuccess",
-                                 username));
+                
containerLog.trace(sm.getString("dataSourceRealm.authenticateSuccess",
+                                                username));
         } else {
             if (containerLog.isTraceEnabled())
-                containerLog.trace(
-                    sm.getString("dataSourceRealm.authenticateFailure",
-                                 username));
-            return (null);
+                
containerLog.trace(sm.getString("dataSourceRealm.authenticateFailure",
+                                                username));
+            return null;
         }
 
         ArrayList<String> list = getRoles(dbConnection, username);

Modified: tomcat/trunk/java/org/apache/catalina/realm/JDBCRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/JDBCRealm.java?rev=1757997&r1=1757996&r2=1757997&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/JDBCRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/JDBCRealm.java Sat Aug 27 
11:47:09 2016
@@ -370,10 +370,12 @@ public class JDBCRealm
     public synchronized Principal authenticate(Connection dbConnection,
                                                String username,
                                                String credentials) {
-
         // No user or no credentials
         // Can't possibly authenticate, don't bother the database then
         if (username == null || credentials == null) {
+            if (containerLog.isTraceEnabled())
+                
containerLog.trace(sm.getString("jdbcRealm.authenticateFailure",
+                                                username));
             return null;
         }
 
@@ -381,6 +383,8 @@ public class JDBCRealm
         String dbCredentials = getPassword(username);
 
         if (dbCredentials == null) {
+            // User was not found in the database.
+
             if (containerLog.isTraceEnabled())
                 
containerLog.trace(sm.getString("jdbcRealm.authenticateFailure",
                                                 username));
@@ -398,14 +402,13 @@ public class JDBCRealm
             if (containerLog.isTraceEnabled())
                 
containerLog.trace(sm.getString("jdbcRealm.authenticateFailure",
                                                 username));
-            return (null);
+            return null;
         }
 
         ArrayList<String> roles = getRoles(username);
 
         // Create and return a suitable Principal for this user
         return (new GenericPrincipal(username, credentials, roles));
-
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/realm/MemoryRealm.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/MemoryRealm.java?rev=1757997&r1=1757996&r2=1757997&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/MemoryRealm.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/MemoryRealm.java Sat Aug 27 
11:47:09 2016
@@ -114,30 +114,35 @@ public class MemoryRealm  extends RealmB
     @Override
     public Principal authenticate(String username, String credentials) {
 
+        // No user or no credentials
+        // Can't possibly authenticate, don't bother the database then
+        if (username == null || credentials == null) {
+            if (log.isDebugEnabled())
+                log.debug(sm.getString("memoryRealm.authenticateFailure", 
username));
+            return null;
+        }
+
         GenericPrincipal principal = principals.get(username);
 
-        boolean validated;
-        if (principal == null) {
-            validated = false;
-        } else {
-            if (credentials == null || principal.getPassword() == null) {
-                if (log.isDebugEnabled())
-                    log.debug(sm.getString("memoryRealm.authenticateFailure", 
username));
-                return (null);
-            }
-            validated = getCredentialHandler().matches(credentials, 
principal.getPassword());
+        if(principal == null || principal.getPassword() == null) {
+            // User was not found in the database of the password was null
+
+            if (log.isDebugEnabled())
+                log.debug(sm.getString("memoryRealm.authenticateFailure", 
username));
+            return null;
         }
 
+        boolean validated = getCredentialHandler().matches(credentials, 
principal.getPassword());
+
         if (validated) {
             if (log.isDebugEnabled())
                 log.debug(sm.getString("memoryRealm.authenticateSuccess", 
username));
-            return (principal);
+            return principal;
         } else {
             if (log.isDebugEnabled())
                 log.debug(sm.getString("memoryRealm.authenticateFailure", 
username));
-            return (null);
+            return null;
         }
-
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1757997&r1=1757996&r2=1757997&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Sat Aug 27 
11:47:09 2016
@@ -329,10 +329,22 @@ public abstract class RealmBase extends
      */
     @Override
     public Principal authenticate(String username, String credentials) {
+        // No user or no credentials
+        // Can't possibly authenticate, don't bother doing anything.
+        if(username == null || credentials == null) {
+            if (containerLog.isTraceEnabled()) {
+                
containerLog.trace(sm.getString("realmBase.authenticateFailure",
+                                                username));
+            }
+            return null;
+        }
 
+        // Look up the user's credentials
         String serverCredentials = getPassword(username);
 
-        if (credentials == null || serverCredentials == null) {
+        if (serverCredentials == null) {
+            // User was not found
+
             if (containerLog.isTraceEnabled()) {
                 
containerLog.trace(sm.getString("realmBase.authenticateFailure",
                                                 username));
@@ -341,19 +353,20 @@ public abstract class RealmBase extends
         }
 
         boolean validated = getCredentialHandler().matches(credentials, 
serverCredentials);
-        if (!validated) {
+
+        if (validated) {
+            if (containerLog.isTraceEnabled()) {
+                
containerLog.trace(sm.getString("realmBase.authenticateSuccess",
+                                                username));
+            }
+            return getPrincipal(username);
+        } else {
             if (containerLog.isTraceEnabled()) {
                 
containerLog.trace(sm.getString("realmBase.authenticateFailure",
                                                 username));
             }
             return null;
         }
-        if (containerLog.isTraceEnabled()) {
-            containerLog.trace(sm.getString("realmBase.authenticateSuccess",
-                                            username));
-        }
-
-        return getPrincipal(username);
     }
 
     /**



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

Reply via email to