Merge pull request #3720 from hmlnarik/KEYCLOAK-4091-Possible-NullPointerExceptions-with-disabled-cache
KEYCLOAK-4091 Prevent NPE with disabled cache
This commit is contained in:
commit
7eeebff874
7 files changed
+42
-9
No files matched your search
@@ -25,6 +25,7 @@ import org.keycloak.models.UserCredentialModel;
|
||||
import org.keycloak.models.UserModel;
|
||||
import org.keycloak.models.cache.CachedUserModel;
|
||||
import org.keycloak.models.cache.OnUserCache;
|
||||
import org.keycloak.models.cache.UserCache;
|
||||
import org.keycloak.models.utils.HmacOTP;
|
||||
import org.keycloak.models.utils.TimeBasedOTP;
|
||||
|
||||
@@ -102,7 +103,10 @@ public class OTPCredentialProvider implements CredentialProvider, CredentialInpu
|
||||
} else {
|
||||
getCredentialStore().updateCredential(realm, user, model);
|
||||
}
|
||||
session.userCache().evict(realm, user);
|
||||
UserCache userCache = session.userCache();
|
||||
if (userCache != null) {
|
||||
userCache.evict(realm, user);
|
||||
}
|
||||
return true;
|
||||
|
||||
|
||||
@@ -138,7 +142,10 @@ public class OTPCredentialProvider implements CredentialProvider, CredentialInpu
|
||||
|
||||
}
|
||||
if (disableTOTP || disableHOTP) {
|
||||
session.userCache().evict(realm, user);
|
||||
UserCache userCache = session.userCache();
|
||||
if (userCache != null) {
|
||||
userCache.evict(realm, user);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ import org.keycloak.models.UserCredentialModel;
|
||||
import org.keycloak.models.UserModel;
|
||||
import org.keycloak.models.cache.CachedUserModel;
|
||||
import org.keycloak.models.cache.OnUserCache;
|
||||
import org.keycloak.models.cache.UserCache;
|
||||
import org.keycloak.policy.PasswordPolicyManagerProvider;
|
||||
import org.keycloak.policy.PolicyError;
|
||||
|
||||
@@ -96,7 +97,10 @@ public class PasswordCredentialProvider implements CredentialProvider, Credentia
|
||||
newPassword.setCreatedDate(createdDate);
|
||||
hash.encode(cred.getValue(), policy, newPassword);
|
||||
getCredentialStore().createCredential(realm, user, newPassword);
|
||||
session.userCache().evict(realm, user);
|
||||
UserCache userCache = session.userCache();
|
||||
if (userCache != null) {
|
||||
userCache.evict(realm, user);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -205,7 +209,10 @@ public class PasswordCredentialProvider implements CredentialProvider, Credentia
|
||||
|
||||
hash.encode(cred.getValue(), policy, password);
|
||||
getCredentialStore().updateCredential(realm, user, password);
|
||||
session.userCache().evict(realm, user);
|
||||
UserCache userCache = session.userCache();
|
||||
if (userCache != null) {
|
||||
userCache.evict(realm, user);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -35,6 +35,7 @@ import org.keycloak.models.UserModel;
|
||||
import org.keycloak.models.UserProvider;
|
||||
import org.keycloak.models.cache.CachedUserModel;
|
||||
import org.keycloak.models.cache.OnUserCache;
|
||||
import org.keycloak.models.cache.UserCache;
|
||||
import org.keycloak.storage.federated.UserFederatedStorageProvider;
|
||||
import org.keycloak.storage.user.ImportedUserValidation;
|
||||
import org.keycloak.storage.user.UserBulkUpdateProvider;
|
||||
@@ -260,7 +261,10 @@ public class UserStorageManager implements UserProvider, OnUserCache {
|
||||
protected void deleteInvalidUser(final RealmModel realm, final UserModel user) {
|
||||
String userId = user.getId();
|
||||
String userName = user.getUsername();
|
||||
session.userCache().evict(realm, user);
|
||||
UserCache userCache = session.userCache();
|
||||
if (userCache != null) {
|
||||
userCache.evict(realm, user);
|
||||
}
|
||||
runJobInTransaction(session.getKeycloakSessionFactory(), new KeycloakSessionTask() {
|
||||
|
||||
@Override
|
||||
|
||||
Reference in new issue
Block a user