KEYCLOAK-1187
This commit is contained in:
parent
a9ed193826
commit
9c6e6c8284
12 changed files with 64 additions and 69 deletions
|
@ -3,7 +3,7 @@ package org.keycloak.models.cache.infinispan;
|
||||||
import org.infinispan.Cache;
|
import org.infinispan.Cache;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.models.cache.RealmCache;
|
import org.keycloak.models.cache.RealmCache;
|
||||||
import org.keycloak.models.cache.entities.CachedApplication;
|
import org.keycloak.models.cache.entities.CachedClient;
|
||||||
import org.keycloak.models.cache.entities.CachedRealm;
|
import org.keycloak.models.cache.entities.CachedRealm;
|
||||||
import org.keycloak.models.cache.entities.CachedRole;
|
import org.keycloak.models.cache.entities.CachedRole;
|
||||||
|
|
||||||
|
@ -77,19 +77,19 @@ public class InfinispanRealmCache implements RealmCache {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CachedApplication getApplication(String id) {
|
public CachedClient getApplication(String id) {
|
||||||
if (!enabled) return null;
|
if (!enabled) return null;
|
||||||
return get(id, CachedApplication.class);
|
return get(id, CachedClient.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidateApplication(CachedApplication app) {
|
public void invalidateApplication(CachedClient app) {
|
||||||
logger.tracev("Removing application {0}", app.getId());
|
logger.tracev("Removing application {0}", app.getId());
|
||||||
cache.remove(app.getId());
|
cache.remove(app.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addCachedApplication(CachedApplication app) {
|
public void addCachedClient(CachedClient app) {
|
||||||
if (!enabled) return;
|
if (!enabled) return;
|
||||||
logger.tracev("Adding application {0}", app.getId());
|
logger.tracev("Adding application {0}", app.getId());
|
||||||
cache.put(app.getId(), app);
|
cache.put(app.getId(), app);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import org.keycloak.models.ProtocolMapperModel;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.RoleContainerModel;
|
import org.keycloak.models.RoleContainerModel;
|
||||||
import org.keycloak.models.RoleModel;
|
import org.keycloak.models.RoleModel;
|
||||||
import org.keycloak.models.cache.entities.CachedApplication;
|
import org.keycloak.models.cache.entities.CachedClient;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
|
@ -24,9 +24,9 @@ public class ClientAdapter implements ClientModel {
|
||||||
protected RealmCache cache;
|
protected RealmCache cache;
|
||||||
|
|
||||||
protected ClientModel updated;
|
protected ClientModel updated;
|
||||||
protected CachedApplication cached;
|
protected CachedClient cached;
|
||||||
|
|
||||||
public ClientAdapter(RealmModel cachedRealm, CachedApplication cached, CacheRealmProvider cacheSession, RealmCache cache) {
|
public ClientAdapter(RealmModel cachedRealm, CachedClient cached, CacheRealmProvider cacheSession, RealmCache cache) {
|
||||||
this.cachedRealm = cachedRealm;
|
this.cachedRealm = cachedRealm;
|
||||||
this.cache = cache;
|
this.cache = cache;
|
||||||
this.cacheSession = cacheSession;
|
this.cacheSession = cacheSession;
|
||||||
|
|
|
@ -6,8 +6,8 @@ import org.keycloak.models.KeycloakTransaction;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.RealmProvider;
|
import org.keycloak.models.RealmProvider;
|
||||||
import org.keycloak.models.RoleModel;
|
import org.keycloak.models.RoleModel;
|
||||||
import org.keycloak.models.cache.entities.CachedApplication;
|
import org.keycloak.models.cache.entities.CachedClient;
|
||||||
import org.keycloak.models.cache.entities.CachedApplicationRole;
|
import org.keycloak.models.cache.entities.CachedClientRole;
|
||||||
import org.keycloak.models.cache.entities.CachedRealm;
|
import org.keycloak.models.cache.entities.CachedRealm;
|
||||||
import org.keycloak.models.cache.entities.CachedRealmRole;
|
import org.keycloak.models.cache.entities.CachedRealmRole;
|
||||||
import org.keycloak.models.cache.entities.CachedRole;
|
import org.keycloak.models.cache.entities.CachedRole;
|
||||||
|
@ -235,7 +235,7 @@ public class DefaultCacheRealmProvider implements CacheRealmProvider {
|
||||||
if (model == null) return null;
|
if (model == null) return null;
|
||||||
if (roleInvalidations.contains(id)) return model;
|
if (roleInvalidations.contains(id)) return model;
|
||||||
if (model.getContainer() instanceof ClientModel) {
|
if (model.getContainer() instanceof ClientModel) {
|
||||||
cached = new CachedApplicationRole(((ClientModel) model.getContainer()).getId(), model, realm);
|
cached = new CachedClientRole(((ClientModel) model.getContainer()).getId(), model, realm);
|
||||||
} else {
|
} else {
|
||||||
cached = new CachedRealmRole(model, realm);
|
cached = new CachedRealmRole(model, realm);
|
||||||
}
|
}
|
||||||
|
@ -254,7 +254,7 @@ public class DefaultCacheRealmProvider implements CacheRealmProvider {
|
||||||
@Override
|
@Override
|
||||||
public ClientModel getClientById(String id, RealmModel realm) {
|
public ClientModel getClientById(String id, RealmModel realm) {
|
||||||
if (!cache.isEnabled()) return getDelegate().getClientById(id, realm);
|
if (!cache.isEnabled()) return getDelegate().getClientById(id, realm);
|
||||||
CachedApplication cached = cache.getApplication(id);
|
CachedClient cached = cache.getApplication(id);
|
||||||
if (cached != null && !cached.getRealm().equals(realm.getId())) {
|
if (cached != null && !cached.getRealm().equals(realm.getId())) {
|
||||||
cached = null;
|
cached = null;
|
||||||
}
|
}
|
||||||
|
@ -263,8 +263,8 @@ public class DefaultCacheRealmProvider implements CacheRealmProvider {
|
||||||
ClientModel model = getDelegate().getClientById(id, realm);
|
ClientModel model = getDelegate().getClientById(id, realm);
|
||||||
if (model == null) return null;
|
if (model == null) return null;
|
||||||
if (appInvalidations.contains(id)) return model;
|
if (appInvalidations.contains(id)) return model;
|
||||||
cached = new CachedApplication(cache, getDelegate(), realm, model);
|
cached = new CachedClient(cache, getDelegate(), realm, model);
|
||||||
cache.addCachedApplication(cached);
|
cache.addCachedClient(cached);
|
||||||
} else if (appInvalidations.contains(id)) {
|
} else if (appInvalidations.contains(id)) {
|
||||||
return getDelegate().getClientById(id, realm);
|
return getDelegate().getClientById(id, realm);
|
||||||
} else if (managedApplications.containsKey(id)) {
|
} else if (managedApplications.containsKey(id)) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.keycloak.models.cache;
|
package org.keycloak.models.cache;
|
||||||
|
|
||||||
import org.keycloak.models.cache.entities.CachedApplication;
|
import org.keycloak.models.cache.entities.CachedClient;
|
||||||
import org.keycloak.models.cache.entities.CachedRealm;
|
import org.keycloak.models.cache.entities.CachedRealm;
|
||||||
import org.keycloak.models.cache.entities.CachedRole;
|
import org.keycloak.models.cache.entities.CachedRole;
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ public class MemoryRealmCache implements RealmCache {
|
||||||
|
|
||||||
protected ConcurrentHashMap<String, CachedRealm> realmCache = new ConcurrentHashMap<String, CachedRealm>();
|
protected ConcurrentHashMap<String, CachedRealm> realmCache = new ConcurrentHashMap<String, CachedRealm>();
|
||||||
protected ConcurrentHashMap<String, CachedRealm> realmCacheByName = new ConcurrentHashMap<String, CachedRealm>();
|
protected ConcurrentHashMap<String, CachedRealm> realmCacheByName = new ConcurrentHashMap<String, CachedRealm>();
|
||||||
protected ConcurrentHashMap<String, CachedApplication> applicationCache = new ConcurrentHashMap<String, CachedApplication>();
|
protected ConcurrentHashMap<String, CachedClient> applicationCache = new ConcurrentHashMap<String, CachedClient>();
|
||||||
protected ConcurrentHashMap<String, CachedRole> roleCache = new ConcurrentHashMap<String, CachedRole>();
|
protected ConcurrentHashMap<String, CachedRole> roleCache = new ConcurrentHashMap<String, CachedRole>();
|
||||||
protected volatile boolean enabled = true;
|
protected volatile boolean enabled = true;
|
||||||
|
|
||||||
|
@ -72,18 +72,18 @@ public class MemoryRealmCache implements RealmCache {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public CachedApplication getApplication(String id) {
|
public CachedClient getApplication(String id) {
|
||||||
if (!enabled) return null;
|
if (!enabled) return null;
|
||||||
return applicationCache.get(id);
|
return applicationCache.get(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void invalidateApplication(CachedApplication app) {
|
public void invalidateApplication(CachedClient app) {
|
||||||
applicationCache.remove(app.getId());
|
applicationCache.remove(app.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addCachedApplication(CachedApplication app) {
|
public void addCachedClient(CachedClient app) {
|
||||||
if (!enabled) return;
|
if (!enabled) return;
|
||||||
applicationCache.put(app.getId(), app);
|
applicationCache.put(app.getId(), app);
|
||||||
}
|
}
|
||||||
|
|
|
@ -474,7 +474,7 @@ public class RealmAdapter implements RealmModel {
|
||||||
public Map<String, ClientModel> getClientNameMap() {
|
public Map<String, ClientModel> getClientNameMap() {
|
||||||
if (updated != null) return updated.getClientNameMap();
|
if (updated != null) return updated.getClientNameMap();
|
||||||
Map<String, ClientModel> map = new HashMap<String, ClientModel>();
|
Map<String, ClientModel> map = new HashMap<String, ClientModel>();
|
||||||
for (String id : cached.getApplications().values()) {
|
for (String id : cached.getClients().values()) {
|
||||||
ClientModel model = cacheSession.getClientById(id, this);
|
ClientModel model = cacheSession.getClientById(id, this);
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
throw new IllegalStateException("Cached application not found: " + id);
|
throw new IllegalStateException("Cached application not found: " + id);
|
||||||
|
@ -488,7 +488,7 @@ public class RealmAdapter implements RealmModel {
|
||||||
public List<ClientModel> getClients() {
|
public List<ClientModel> getClients() {
|
||||||
if (updated != null) return updated.getClients();
|
if (updated != null) return updated.getClients();
|
||||||
List<ClientModel> apps = new LinkedList<ClientModel>();
|
List<ClientModel> apps = new LinkedList<ClientModel>();
|
||||||
for (String id : cached.getApplications().values()) {
|
for (String id : cached.getClients().values()) {
|
||||||
ClientModel model = cacheSession.getClientById(id, this);
|
ClientModel model = cacheSession.getClientById(id, this);
|
||||||
if (model == null) {
|
if (model == null) {
|
||||||
throw new IllegalStateException("Cached application not found: " + id);
|
throw new IllegalStateException("Cached application not found: " + id);
|
||||||
|
@ -531,7 +531,7 @@ public class RealmAdapter implements RealmModel {
|
||||||
@Override
|
@Override
|
||||||
public ClientModel getClientByClientId(String clientId) {
|
public ClientModel getClientByClientId(String clientId) {
|
||||||
if (updated != null) return updated.getClientByClientId(clientId);
|
if (updated != null) return updated.getClientByClientId(clientId);
|
||||||
String id = cached.getApplications().get(clientId);
|
String id = cached.getClients().get(clientId);
|
||||||
if (id == null) return null;
|
if (id == null) return null;
|
||||||
return getClientById(id);
|
return getClientById(id);
|
||||||
}
|
}
|
||||||
|
@ -752,7 +752,7 @@ public class RealmAdapter implements RealmModel {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ClientModel getMasterAdminClient() {
|
public ClientModel getMasterAdminClient() {
|
||||||
return cacheSession.getRealm(Config.getAdminRealm()).getClientById(cached.getMasterAdminApp());
|
return cacheSession.getRealm(Config.getAdminRealm()).getClientById(cached.getMasterAdminClient());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package org.keycloak.models.cache;
|
package org.keycloak.models.cache;
|
||||||
|
|
||||||
import org.keycloak.models.cache.entities.CachedApplication;
|
import org.keycloak.models.cache.entities.CachedClient;
|
||||||
import org.keycloak.models.cache.entities.CachedRealm;
|
import org.keycloak.models.cache.entities.CachedRealm;
|
||||||
import org.keycloak.models.cache.entities.CachedRole;
|
import org.keycloak.models.cache.entities.CachedRole;
|
||||||
|
|
||||||
|
@ -21,11 +21,11 @@ public interface RealmCache {
|
||||||
|
|
||||||
void invalidateCachedRealmById(String id);
|
void invalidateCachedRealmById(String id);
|
||||||
|
|
||||||
CachedApplication getApplication(String id);
|
CachedClient getApplication(String id);
|
||||||
|
|
||||||
void invalidateApplication(CachedApplication app);
|
void invalidateApplication(CachedClient app);
|
||||||
|
|
||||||
void addCachedApplication(CachedApplication app);
|
void addCachedClient(CachedClient app);
|
||||||
|
|
||||||
void invalidateCachedApplicationById(String id);
|
void invalidateCachedApplicationById(String id);
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ package org.keycloak.models.cache;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.RoleContainerModel;
|
import org.keycloak.models.RoleContainerModel;
|
||||||
import org.keycloak.models.RoleModel;
|
import org.keycloak.models.RoleModel;
|
||||||
import org.keycloak.models.cache.entities.CachedApplicationRole;
|
import org.keycloak.models.cache.entities.CachedClientRole;
|
||||||
import org.keycloak.models.cache.entities.CachedRealmRole;
|
import org.keycloak.models.cache.entities.CachedRealmRole;
|
||||||
import org.keycloak.models.cache.entities.CachedRole;
|
import org.keycloak.models.cache.entities.CachedRole;
|
||||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||||
|
@ -106,8 +106,8 @@ public class RoleAdapter implements RoleModel {
|
||||||
if (cached instanceof CachedRealmRole) {
|
if (cached instanceof CachedRealmRole) {
|
||||||
return realm;
|
return realm;
|
||||||
} else {
|
} else {
|
||||||
CachedApplicationRole appRole = (CachedApplicationRole)cached;
|
CachedClientRole appRole = (CachedClientRole)cached;
|
||||||
return realm.getClientById(appRole.getAppId());
|
return realm.getClientById(appRole.getIdClient());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
package org.keycloak.models.cache.entities;
|
|
||||||
|
|
||||||
import org.keycloak.models.RealmModel;
|
|
||||||
import org.keycloak.models.RoleModel;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
|
||||||
* @version $Revision: 1 $
|
|
||||||
*/
|
|
||||||
public class CachedApplicationRole extends CachedRole {
|
|
||||||
private final String appId;
|
|
||||||
|
|
||||||
public CachedApplicationRole(String appId, RoleModel model, RealmModel realm) {
|
|
||||||
super(model, realm);
|
|
||||||
this.appId = appId;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getAppId() {
|
|
||||||
return appId;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -21,7 +21,7 @@ import java.util.TreeMap;
|
||||||
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
||||||
* @version $Revision: 1 $
|
* @version $Revision: 1 $
|
||||||
*/
|
*/
|
||||||
public class CachedApplication {
|
public class CachedClient {
|
||||||
private String id;
|
private String id;
|
||||||
private String name;
|
private String name;
|
||||||
private String realm;
|
private String realm;
|
||||||
|
@ -49,7 +49,7 @@ public class CachedApplication {
|
||||||
private int nodeReRegistrationTimeout;
|
private int nodeReRegistrationTimeout;
|
||||||
private Map<String, Integer> registeredNodes;
|
private Map<String, Integer> registeredNodes;
|
||||||
|
|
||||||
public CachedApplication(RealmCache cache, RealmProvider delegate, RealmModel realm, ClientModel model) {
|
public CachedClient(RealmCache cache, RealmProvider delegate, RealmModel realm, ClientModel model) {
|
||||||
id = model.getId();
|
id = model.getId();
|
||||||
secret = model.getSecret();
|
secret = model.getSecret();
|
||||||
name = model.getClientId();
|
name = model.getClientId();
|
||||||
|
@ -79,7 +79,7 @@ public class CachedApplication {
|
||||||
consentRequired = model.isConsentRequired();
|
consentRequired = model.isConsentRequired();
|
||||||
for (RoleModel role : model.getRoles()) {
|
for (RoleModel role : model.getRoles()) {
|
||||||
roles.put(role.getName(), role.getId());
|
roles.put(role.getName(), role.getId());
|
||||||
cache.addCachedRole(new CachedApplicationRole(id, role, realm));
|
cache.addCachedRole(new CachedClientRole(id, role, realm));
|
||||||
}
|
}
|
||||||
|
|
||||||
nodeReRegistrationTimeout = model.getNodeReRegistrationTimeout();
|
nodeReRegistrationTimeout = model.getNodeReRegistrationTimeout();
|
22
model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/entities/CachedClientRole.java
vendored
Executable file
22
model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/entities/CachedClientRole.java
vendored
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
package org.keycloak.models.cache.entities;
|
||||||
|
|
||||||
|
import org.keycloak.models.RealmModel;
|
||||||
|
import org.keycloak.models.RoleModel;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
||||||
|
* @version $Revision: 1 $
|
||||||
|
*/
|
||||||
|
public class CachedClientRole extends CachedRole {
|
||||||
|
private final String idClient;
|
||||||
|
|
||||||
|
public CachedClientRole(String idClient, RoleModel model, RealmModel realm) {
|
||||||
|
super(model, realm);
|
||||||
|
this.idClient = idClient;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getIdClient() {
|
||||||
|
return idClient;
|
||||||
|
}
|
||||||
|
}
|
|
@ -66,7 +66,7 @@ public class CachedRealm {
|
||||||
private String accountTheme;
|
private String accountTheme;
|
||||||
private String adminTheme;
|
private String adminTheme;
|
||||||
private String emailTheme;
|
private String emailTheme;
|
||||||
private String masterAdminApp;
|
private String masterAdminClient;
|
||||||
|
|
||||||
private List<RequiredCredentialModel> requiredCredentials = new ArrayList<RequiredCredentialModel>();
|
private List<RequiredCredentialModel> requiredCredentials = new ArrayList<RequiredCredentialModel>();
|
||||||
private List<UserFederationProviderModel> userFederationProviders = new ArrayList<UserFederationProviderModel>();
|
private List<UserFederationProviderModel> userFederationProviders = new ArrayList<UserFederationProviderModel>();
|
||||||
|
@ -81,7 +81,6 @@ public class CachedRealm {
|
||||||
private Set<String> enabledEventTypes = new HashSet<String>();
|
private Set<String> enabledEventTypes = new HashSet<String>();
|
||||||
private List<String> defaultRoles = new LinkedList<String>();
|
private List<String> defaultRoles = new LinkedList<String>();
|
||||||
private Map<String, String> realmRoles = new HashMap<String, String>();
|
private Map<String, String> realmRoles = new HashMap<String, String>();
|
||||||
private Map<String, String> applications = new HashMap<String, String>();
|
|
||||||
private Map<String, String> clients = new HashMap<String, String>();
|
private Map<String, String> clients = new HashMap<String, String>();
|
||||||
private boolean internationalizationEnabled;
|
private boolean internationalizationEnabled;
|
||||||
private Set<String> supportedLocales = new HashSet<String>();
|
private Set<String> supportedLocales = new HashSet<String>();
|
||||||
|
@ -155,7 +154,7 @@ public class CachedRealm {
|
||||||
eventsListeners.addAll(model.getEventsListeners());
|
eventsListeners.addAll(model.getEventsListeners());
|
||||||
enabledEventTypes.addAll(model.getEnabledEventTypes());
|
enabledEventTypes.addAll(model.getEnabledEventTypes());
|
||||||
defaultRoles.addAll(model.getDefaultRoles());
|
defaultRoles.addAll(model.getDefaultRoles());
|
||||||
masterAdminApp = model.getMasterAdminClient().getId();
|
masterAdminClient = model.getMasterAdminClient().getId();
|
||||||
|
|
||||||
for (RoleModel role : model.getRoles()) {
|
for (RoleModel role : model.getRoles()) {
|
||||||
realmRoles.put(role.getName(), role.getId());
|
realmRoles.put(role.getName(), role.getId());
|
||||||
|
@ -163,10 +162,10 @@ public class CachedRealm {
|
||||||
cache.addCachedRole(cachedRole);
|
cache.addCachedRole(cachedRole);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (ClientModel app : model.getClients()) {
|
for (ClientModel client : model.getClients()) {
|
||||||
applications.put(app.getClientId(), app.getId());
|
clients.put(client.getClientId(), client.getId());
|
||||||
CachedApplication cachedApp = new CachedApplication(cache, delegate, model, app);
|
CachedClient cachedClient = new CachedClient(cache, delegate, model, client);
|
||||||
cache.addCachedApplication(cachedApp);
|
cache.addCachedClient(cachedClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
internationalizationEnabled = model.isInternationalizationEnabled();
|
internationalizationEnabled = model.isInternationalizationEnabled();
|
||||||
|
@ -180,8 +179,8 @@ public class CachedRealm {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getMasterAdminApp() {
|
public String getMasterAdminClient() {
|
||||||
return masterAdminApp;
|
return masterAdminClient;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
|
@ -196,10 +195,6 @@ public class CachedRealm {
|
||||||
return realmRoles;
|
return realmRoles;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String> getApplications() {
|
|
||||||
return applications;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Map<String, String> getClients() {
|
public Map<String, String> getClients() {
|
||||||
return clients;
|
return clients;
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@ public class RealmAdapter extends AbstractMongoAdapter<MongoRealmEntity> impleme
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SslRequired getSslRequired() {
|
public SslRequired getSslRequired() {
|
||||||
return SslRequired.valueOf(realm.getSslRequired());
|
return realm.getSslRequired() != null ? SslRequired.valueOf(realm.getSslRequired()) : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue