keycloak-aplcache

fixes

9/23/2016 11:38:49 AM

Details

diff --git a/services/src/main/java/org/keycloak/credential/hash/Pbkdf2PasswordHashProvider.java b/services/src/main/java/org/keycloak/credential/hash/Pbkdf2PasswordHashProvider.java
index b477c9c..d3d9b60 100644
--- a/services/src/main/java/org/keycloak/credential/hash/Pbkdf2PasswordHashProvider.java
+++ b/services/src/main/java/org/keycloak/credential/hash/Pbkdf2PasswordHashProvider.java
@@ -64,7 +64,7 @@ public class Pbkdf2PasswordHashProvider implements PasswordHashProviderFactory, 
 
     @Override
     public boolean policyCheck(PasswordPolicy policy, CredentialModel credential) {
-        return credential.getHashIterations() == policy.getHashIterations() && PBKDF2_ALGORITHM.equals(credential.getAlgorithm());
+        return credential.getHashIterations() == policy.getHashIterations() && ID.equals(credential.getAlgorithm());
     }
 
     @Override
diff --git a/services/src/main/java/org/keycloak/services/managers/DefaultBruteForceProtector.java b/services/src/main/java/org/keycloak/services/managers/DefaultBruteForceProtector.java
index 67d3dc9..2e809d1 100644
--- a/services/src/main/java/org/keycloak/services/managers/DefaultBruteForceProtector.java
+++ b/services/src/main/java/org/keycloak/services/managers/DefaultBruteForceProtector.java
@@ -53,19 +53,6 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
     protected LinkedBlockingQueue<LoginEvent> queue = new LinkedBlockingQueue<LoginEvent>();
     public static final int TRANSACTION_SIZE = 20;
 
-    public static volatile int markNotBefore = -1;
-    public static volatile int markCheck = -1;
-    public static volatile int testCount = 0;
-    public static volatile int clearCount = 0;
-    public static volatile int nullFailureCount = 0;
-    public static volatile int logFailureCalled = 0;
-    public static volatile int logFailure = 0;
-    public static volatile int didntWait = 0;
-    public static volatile int exception = 0;
-    public static volatile Exception exceptionObject = null;
-    public static volatile String notFoundUserId = null;
-
-
     protected abstract class LoginEvent implements Comparable<LoginEvent> {
         protected final String realmId;
         protected final String userId;
@@ -103,7 +90,6 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
 
     public void failure(KeycloakSession session, LoginEvent event) {
         logger.debug("failure");
-        logFailureCalled++;
         RealmModel realm = getRealmModel(session, event);
         logFailure(event);
 
@@ -111,7 +97,6 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
         UserModel user = session.users().getUserById(userId, realm);
         UserLoginFailureModel userLoginFailure = getUserModel(session, event);
         if (user != null) {
-            logFailure++;
             if (userLoginFailure == null) {
                 userLoginFailure = session.sessions().addUserLoginFailure(realm, userId);
             }
@@ -126,7 +111,6 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
             if (deltaTime > 0) {
                 // if last failure was more than MAX_DELTA clear failures
                 if (deltaTime > (long) realm.getMaxDeltaTimeSeconds() * 1000L) {
-                    clearCount++;
                     userLoginFailure.clearFailures();
                 }
             }
@@ -147,12 +131,8 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
                 waitSeconds = Math.min(realm.getMaxFailureWaitSeconds(), waitSeconds);
                 int notBefore = (int) (currentTime / 1000) + waitSeconds;
                 logger.debugv("set notBefore: {0}", notBefore);
-                markNotBefore = notBefore;
                 userLoginFailure.setFailedLoginNotBefore(notBefore);
             }
-        } else {
-            notFoundUserId = event.userId;
-
         }
     }
 
@@ -210,8 +190,6 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
                             }
                             session.getTransactionManager().commit();
                         } catch (Exception e) {
-                            exception++;
-                            exceptionObject = e;
                             session.getTransactionManager().rollback();
                             throw e;
                         } finally {
@@ -258,13 +236,8 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
             // wait a minimum of seconds for type to process so that a hacker
             // cannot flood with failed logins and overwhelm the queue and not have notBefore updated to block next requests
             // todo failure HTTP responses should be queued via async HTTP
-            boolean awaited =
-                    event.latch.await(5, TimeUnit.SECONDS);
-            if (!awaited) {
-                    didntWait++;
-            }
+            event.latch.await(5, TimeUnit.SECONDS);
         } catch (InterruptedException e) {
-            didntWait++;
         }
         logger.trace("sent failure event");
     }
@@ -274,19 +247,12 @@ public class DefaultBruteForceProtector implements Runnable, BruteForceProtector
         UserLoginFailureModel failure = session.sessions().getUserLoginFailure(realm, user.getId());
 
         if (failure != null) {
-            int currTime = markCheck = (int) (Time.currentTimeMillis() / 1000);
+            int currTime = (int) (Time.currentTimeMillis() / 1000);
             int failedLoginNotBefore = failure.getFailedLoginNotBefore();
-            testCount++;
             if (currTime < failedLoginNotBefore) {
                 logger.debugv("Current: {0} notBefore: {1}", currTime, failedLoginNotBefore);
                 return true;
-            } else if (failedLoginNotBefore > 0){
-                logger.debugv("failedLoginNotBefore > 0 Current: {0} notBefore: {1}", currTime, failedLoginNotBefore);
             }
-        } else {
-            logger.debugv("failure was null");
-            nullFailureCount++;
-
         }
 
 
diff --git a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BruteForceTest.java b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BruteForceTest.java
index f8fbb91..31c297f 100644
--- a/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BruteForceTest.java
+++ b/testsuite/integration-arquillian/tests/base/src/test/java/org/keycloak/testsuite/forms/BruteForceTest.java
@@ -173,7 +173,6 @@ public class BruteForceTest extends TestRealmKeycloakTest {
 
     @Test
     public void testGrantInvalidOtp() throws Exception {
-        clearVariables();
         {
             String totpSecret = totp.generateTOTP("totpSecret");
             OAuthClient.AccessTokenResponse response = getTestToken("password", totpSecret);
@@ -215,40 +214,14 @@ public class BruteForceTest extends TestRealmKeycloakTest {
 
     }
 
-    public void clearVariables() {
-        DefaultBruteForceProtector.testCount = 0;
-        DefaultBruteForceProtector.markNotBefore = -1;
-        DefaultBruteForceProtector.markCheck = -1;
-        DefaultBruteForceProtector.testCount = 0;
-        DefaultBruteForceProtector.clearCount = 0;
-        DefaultBruteForceProtector.logFailure = 0;
-        DefaultBruteForceProtector.logFailureCalled = 0;
-        DefaultBruteForceProtector.didntWait = 0;
-        DefaultBruteForceProtector.nullFailureCount = 0;
-        DefaultBruteForceProtector.notFoundUserId = null;
-    }
-
     public void assertTokenNull(OAuthClient.AccessTokenResponse response) {
-        if (response.getAccessToken() != null) {
-            if (DefaultBruteForceProtector.exceptionObject != null) {
-                DefaultBruteForceProtector.exceptionObject.printStackTrace();
-            }
-        }
-        Assert.assertNull("was mark set: " + DefaultBruteForceProtector.markNotBefore + " time test: " + DefaultBruteForceProtector.markCheck
-                        + " test count " + DefaultBruteForceProtector.testCount
-                        + " nullFailure: " + DefaultBruteForceProtector.nullFailureCount
-                        + " logFailureCalled: " + DefaultBruteForceProtector.logFailureCalled
-                        + " logFailure: " + DefaultBruteForceProtector.logFailure
-                        + " notFoundUserId: " + DefaultBruteForceProtector.notFoundUserId
-                        + " exception: " + DefaultBruteForceProtector.exception
-                , response.getAccessToken());
+        Assert.assertNull(response.getAccessToken());
     }
 
 
 
     @Test
     public void testGrantMissingOtp() throws Exception {
-        clearVariables();
         {
             String totpSecret = totp.generateTOTP("totpSecret");
             OAuthClient.AccessTokenResponse response = getTestToken("password", totpSecret);