--- container/catalina/src/share/org/apache/catalina/realm/DataSourceRealm.java	2007-03-05 16:27:44.000000000 +0100
+++ container/catalina/src/share/org/apache/catalina/realm/DataSourceRealm.java	2009-06-09 18:37:04.000000000 +0200
@@ -270,8 +270,9 @@
      */
     public Principal authenticate(String username, String credentials) {
     	
-    	// No user - can't possibly authenticate, don't bother the database then
-    	if (username == null) {
+    	// No user or no credentials
+        // Can't possibly authenticate, don't bother the database then
+    	if (username == null || credentials == null) {
     		return null;
     	}
         
--- container/catalina/src/share/org/apache/catalina/realm/JDBCRealm.java	2007-03-05 16:27:44.000000000 +0100
+++ container/catalina/src/share/org/apache/catalina/realm/JDBCRealm.java	2009-06-09 18:37:04.000000000 +0200
@@ -392,9 +392,10 @@
                                                String username,
                                                String credentials) {
 
-        // No user - can't possibly authenticate
-        if (username == null) {
-            return (null);
+        // No user or no credentials
+        // Can't possibly authenticate, don't bother the database then
+        if (username == null || credentials == null) {
+            return null;
         }
 
         // Look up the user's credentials
--- container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java	2007-03-05 16:27:44.000000000 +0100
+++ container/catalina/src/share/org/apache/catalina/realm/MemoryRealm.java	2009-06-09 18:37:04.000000000 +0200
@@ -147,7 +147,7 @@
             (GenericPrincipal) principals.get(username);
 
         boolean validated = false;
-        if (principal != null) {
+        if (principal != null && credentials != null) {
             if (hasMessageDigest()) {
                 // Hex hashes should be compared case-insensitive
                 validated = (digest(credentials)
