Delete Profile.Feature.MAP_STORAGE
Signed-off-by: vramik <vramik@redhat.com> Closes #24102
This commit is contained in:
parent
c7f63d5843
commit
587cef7de4
74 changed files with 91 additions and 668 deletions
|
@ -67,8 +67,6 @@ public class Profile {
|
||||||
|
|
||||||
CIBA("OpenID Connect Client Initiated Backchannel Authentication (CIBA)", Type.DEFAULT),
|
CIBA("OpenID Connect Client Initiated Backchannel Authentication (CIBA)", Type.DEFAULT),
|
||||||
|
|
||||||
MAP_STORAGE("New store", Type.EXPERIMENTAL),
|
|
||||||
|
|
||||||
PAR("OAuth 2.0 Pushed Authorization Requests (PAR)", Type.DEFAULT),
|
PAR("OAuth 2.0 Pushed Authorization Requests (PAR)", Type.DEFAULT),
|
||||||
|
|
||||||
DECLARATIVE_USER_PROFILE("Configure user profiles using a declarative style", Type.PREVIEW),
|
DECLARATIVE_USER_PROFILE("Configure user profiles using a declarative style", Type.PREVIEW),
|
||||||
|
|
|
@ -82,7 +82,6 @@ public class ProfileTest {
|
||||||
Profile.Feature.RECOVERY_CODES,
|
Profile.Feature.RECOVERY_CODES,
|
||||||
Profile.Feature.SCRIPTS,
|
Profile.Feature.SCRIPTS,
|
||||||
Profile.Feature.TOKEN_EXCHANGE,
|
Profile.Feature.TOKEN_EXCHANGE,
|
||||||
Profile.Feature.MAP_STORAGE,
|
|
||||||
Profile.Feature.DECLARATIVE_USER_PROFILE,
|
Profile.Feature.DECLARATIVE_USER_PROFILE,
|
||||||
Profile.Feature.CLIENT_SECRET_ROTATION,
|
Profile.Feature.CLIENT_SECRET_ROTATION,
|
||||||
Profile.Feature.UPDATE_EMAIL,
|
Profile.Feature.UPDATE_EMAIL,
|
||||||
|
|
|
@ -31,7 +31,6 @@ import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.cluster.ClusterProvider;
|
import org.keycloak.cluster.ClusterProvider;
|
||||||
import org.keycloak.cluster.ClusterProviderFactory;
|
import org.keycloak.cluster.ClusterProviderFactory;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.Retry;
|
import org.keycloak.common.util.Retry;
|
||||||
import org.keycloak.common.util.Time;
|
import org.keycloak.common.util.Time;
|
||||||
import org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory;
|
import org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory;
|
||||||
|
@ -40,7 +39,6 @@ import org.keycloak.connections.infinispan.TopologyInfo;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.connections.infinispan.InfinispanUtil;
|
import org.keycloak.connections.infinispan.InfinispanUtil;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
|
@ -57,7 +55,7 @@ import java.util.stream.Collectors;
|
||||||
*
|
*
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
*/
|
*/
|
||||||
public class InfinispanClusterProviderFactory implements ClusterProviderFactory, EnvironmentDependentProviderFactory {
|
public class InfinispanClusterProviderFactory implements ClusterProviderFactory {
|
||||||
|
|
||||||
public static final String PROVIDER_ID = "infinispan";
|
public static final String PROVIDER_ID = "infinispan";
|
||||||
|
|
||||||
|
@ -193,11 +191,6 @@ public class InfinispanClusterProviderFactory implements ClusterProviderFactory,
|
||||||
return PROVIDER_ID;
|
return PROVIDER_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Listener
|
@Listener
|
||||||
public class ViewChangeListener {
|
public class ViewChangeListener {
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,6 @@ import org.keycloak.cluster.ClusterEvent;
|
||||||
import org.keycloak.cluster.ClusterProvider;
|
import org.keycloak.cluster.ClusterProvider;
|
||||||
import org.keycloak.cluster.ManagedCacheManagerProvider;
|
import org.keycloak.cluster.ManagedCacheManagerProvider;
|
||||||
import org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory;
|
import org.keycloak.cluster.infinispan.KeycloakHotRodMarshallerFactory;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.cache.infinispan.ClearCacheEvent;
|
import org.keycloak.models.cache.infinispan.ClearCacheEvent;
|
||||||
|
@ -48,7 +47,6 @@ import org.keycloak.models.cache.infinispan.events.RealmRemovedEvent;
|
||||||
import org.keycloak.models.cache.infinispan.events.RealmUpdatedEvent;
|
import org.keycloak.models.cache.infinispan.events.RealmUpdatedEvent;
|
||||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||||
import org.keycloak.models.utils.PostMigrationEvent;
|
import org.keycloak.models.utils.PostMigrationEvent;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.InvalidationHandler.ObjectType;
|
import org.keycloak.provider.InvalidationHandler.ObjectType;
|
||||||
import org.keycloak.provider.ProviderEvent;
|
import org.keycloak.provider.ProviderEvent;
|
||||||
|
|
||||||
|
@ -66,7 +64,7 @@ import static org.keycloak.models.cache.infinispan.InfinispanCacheRealmProviderF
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
||||||
*/
|
*/
|
||||||
public class DefaultInfinispanConnectionProviderFactory implements InfinispanConnectionProviderFactory, EnvironmentDependentProviderFactory {
|
public class DefaultInfinispanConnectionProviderFactory implements InfinispanConnectionProviderFactory {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(DefaultInfinispanConnectionProviderFactory.class);
|
private static final Logger logger = Logger.getLogger(DefaultInfinispanConnectionProviderFactory.class);
|
||||||
|
|
||||||
|
@ -508,9 +506,4 @@ public class DefaultInfinispanConnectionProviderFactory implements InfinispanCon
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,15 +21,13 @@ import org.infinispan.Cache;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.cluster.ClusterEvent;
|
import org.keycloak.cluster.ClusterEvent;
|
||||||
import org.keycloak.cluster.ClusterProvider;
|
import org.keycloak.cluster.ClusterProvider;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.cache.CachePublicKeyProvider;
|
import org.keycloak.models.cache.CachePublicKeyProvider;
|
||||||
import org.keycloak.models.cache.CachePublicKeyProviderFactory;
|
import org.keycloak.models.cache.CachePublicKeyProviderFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
public class InfinispanCachePublicKeyProviderFactory implements CachePublicKeyProviderFactory, EnvironmentDependentProviderFactory {
|
public class InfinispanCachePublicKeyProviderFactory implements CachePublicKeyProviderFactory {
|
||||||
|
|
||||||
public static final String PROVIDER_ID = "infinispan";
|
public static final String PROVIDER_ID = "infinispan";
|
||||||
|
|
||||||
|
@ -69,11 +67,6 @@ public class InfinispanCachePublicKeyProviderFactory implements CachePublicKeyPr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void init(Config.Scope config) {
|
public void init(Config.Scope config) {
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,6 @@ import java.util.concurrent.FutureTask;
|
||||||
import org.infinispan.Cache;
|
import org.infinispan.Cache;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
import org.keycloak.jose.jwk.JWK;
|
import org.keycloak.jose.jwk.JWK;
|
||||||
import org.keycloak.keys.PublicKeyStorageProvider;
|
import org.keycloak.keys.PublicKeyStorageProvider;
|
||||||
|
@ -36,7 +35,6 @@ import org.keycloak.models.ClientModel;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderConfigProperty;
|
import org.keycloak.provider.ProviderConfigProperty;
|
||||||
import org.keycloak.provider.ProviderConfigurationBuilder;
|
import org.keycloak.provider.ProviderConfigurationBuilder;
|
||||||
import org.keycloak.provider.ProviderEvent;
|
import org.keycloak.provider.ProviderEvent;
|
||||||
|
@ -45,7 +43,7 @@ import org.keycloak.provider.ProviderEventListener;
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
*/
|
*/
|
||||||
public class InfinispanPublicKeyStorageProviderFactory implements PublicKeyStorageProviderFactory, EnvironmentDependentProviderFactory {
|
public class InfinispanPublicKeyStorageProviderFactory implements PublicKeyStorageProviderFactory {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(InfinispanPublicKeyStorageProviderFactory.class);
|
private static final Logger log = Logger.getLogger(InfinispanPublicKeyStorageProviderFactory.class);
|
||||||
|
|
||||||
|
@ -164,11 +162,6 @@ public class InfinispanPublicKeyStorageProviderFactory implements PublicKeyStora
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static class SessionAndKeyHolder {
|
private static class SessionAndKeyHolder {
|
||||||
private final KeycloakSession session;
|
private final KeycloakSession session;
|
||||||
private final ArrayList<String> cacheKeys;
|
private final ArrayList<String> cacheKeys;
|
||||||
|
|
|
@ -19,10 +19,8 @@ package org.keycloak.models.sessions.infinispan;
|
||||||
|
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderConfigProperty;
|
import org.keycloak.provider.ProviderConfigProperty;
|
||||||
import org.keycloak.provider.ProviderConfigurationBuilder;
|
import org.keycloak.provider.ProviderConfigurationBuilder;
|
||||||
import org.keycloak.sessions.StickySessionEncoderProvider;
|
import org.keycloak.sessions.StickySessionEncoderProvider;
|
||||||
|
@ -34,7 +32,7 @@ import java.util.List;
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
*/
|
*/
|
||||||
public class InfinispanStickySessionEncoderProviderFactory implements StickySessionEncoderProviderFactory, EnvironmentDependentProviderFactory {
|
public class InfinispanStickySessionEncoderProviderFactory implements StickySessionEncoderProviderFactory {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(InfinispanStickySessionEncoderProviderFactory.class);
|
private static final Logger log = Logger.getLogger(InfinispanStickySessionEncoderProviderFactory.class);
|
||||||
|
|
||||||
|
@ -89,9 +87,4 @@ public class InfinispanStickySessionEncoderProviderFactory implements StickySess
|
||||||
.add()
|
.add()
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,11 +23,9 @@ import org.infinispan.persistence.remote.RemoteStore;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.cluster.ClusterProvider;
|
import org.keycloak.cluster.ClusterProvider;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.Environment;
|
import org.keycloak.common.util.Environment;
|
||||||
import org.keycloak.common.util.Time;
|
import org.keycloak.common.util.Time;
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
import org.keycloak.models.ClientModel;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.KeycloakSessionTask;
|
import org.keycloak.models.KeycloakSessionTask;
|
||||||
|
@ -60,7 +58,6 @@ import org.keycloak.models.sessions.infinispan.util.SessionTimeouts;
|
||||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
import org.keycloak.models.utils.KeycloakModelUtils;
|
||||||
import org.keycloak.models.utils.PostMigrationEvent;
|
import org.keycloak.models.utils.PostMigrationEvent;
|
||||||
import org.keycloak.models.utils.ResetTimeOffsetEvent;
|
import org.keycloak.models.utils.ResetTimeOffsetEvent;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderEvent;
|
import org.keycloak.provider.ProviderEvent;
|
||||||
import org.keycloak.provider.ProviderEventListener;
|
import org.keycloak.provider.ProviderEventListener;
|
||||||
|
|
||||||
|
@ -69,7 +66,7 @@ import java.util.Set;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import static org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.PROVIDER_PRIORITY;
|
import static org.keycloak.models.sessions.infinispan.InfinispanAuthenticationSessionProviderFactory.PROVIDER_PRIORITY;
|
||||||
|
|
||||||
public class InfinispanUserSessionProviderFactory implements UserSessionProviderFactory, EnvironmentDependentProviderFactory {
|
public class InfinispanUserSessionProviderFactory implements UserSessionProviderFactory {
|
||||||
|
|
||||||
private static final Logger log = Logger.getLogger(InfinispanUserSessionProviderFactory.class);
|
private static final Logger log = Logger.getLogger(InfinispanUserSessionProviderFactory.class);
|
||||||
|
|
||||||
|
@ -361,10 +358,5 @@ public class InfinispanUserSessionProviderFactory implements UserSessionProvider
|
||||||
public int order() {
|
public int order() {
|
||||||
return PROVIDER_PRIORITY;
|
return PROVIDER_PRIORITY;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@
|
||||||
*/
|
*/
|
||||||
package org.keycloak.connections.jpa;
|
package org.keycloak.connections.jpa;
|
||||||
|
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ExceptionConverter;
|
import org.keycloak.provider.ExceptionConverter;
|
||||||
|
|
||||||
import jakarta.persistence.PersistenceException;
|
import jakarta.persistence.PersistenceException;
|
||||||
|
@ -26,7 +24,7 @@ import jakarta.persistence.PersistenceException;
|
||||||
* @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 JpaExceptionConverter implements ExceptionConverter, EnvironmentDependentProviderFactory {
|
public class JpaExceptionConverter implements ExceptionConverter {
|
||||||
@Override
|
@Override
|
||||||
public Throwable convert(Throwable e) {
|
public Throwable convert(Throwable e) {
|
||||||
if (!(e instanceof PersistenceException)) return null;
|
if (!(e instanceof PersistenceException)) return null;
|
||||||
|
@ -37,9 +35,4 @@ public class JpaExceptionConverter implements ExceptionConverter, EnvironmentDep
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return "jpa";
|
return "jpa";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,19 +20,17 @@ package org.keycloak.connections.jpa.updater.liquibase.lock;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.Time;
|
import org.keycloak.common.util.Time;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.dblock.DBLockProviderFactory;
|
import org.keycloak.models.dblock.DBLockProviderFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderConfigProperty;
|
import org.keycloak.provider.ProviderConfigProperty;
|
||||||
import org.keycloak.provider.ProviderConfigurationBuilder;
|
import org.keycloak.provider.ProviderConfigurationBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
*/
|
*/
|
||||||
public class LiquibaseDBLockProviderFactory implements DBLockProviderFactory, EnvironmentDependentProviderFactory {
|
public class LiquibaseDBLockProviderFactory implements DBLockProviderFactory {
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(LiquibaseDBLockProviderFactory.class);
|
private static final Logger logger = Logger.getLogger(LiquibaseDBLockProviderFactory.class);
|
||||||
public static final int PROVIDER_PRIORITY = 1;
|
public static final int PROVIDER_PRIORITY = 1;
|
||||||
|
@ -89,9 +87,4 @@ public class LiquibaseDBLockProviderFactory implements DBLockProviderFactory, En
|
||||||
.helpText("The maximum time to wait when waiting to release a database lock.")
|
.helpText("The maximum time to wait when waiting to release a database lock.")
|
||||||
.add().build();
|
.add().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,20 +18,18 @@
|
||||||
package org.keycloak.models.jpa.session;
|
package org.keycloak.models.jpa.session;
|
||||||
|
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.session.UserSessionPersisterProvider;
|
import org.keycloak.models.session.UserSessionPersisterProvider;
|
||||||
import org.keycloak.models.session.UserSessionPersisterProviderFactory;
|
import org.keycloak.models.session.UserSessionPersisterProviderFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
import jakarta.persistence.EntityManager;
|
import jakarta.persistence.EntityManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
*/
|
*/
|
||||||
public class JpaUserSessionPersisterProviderFactory implements UserSessionPersisterProviderFactory, EnvironmentDependentProviderFactory {
|
public class JpaUserSessionPersisterProviderFactory implements UserSessionPersisterProviderFactory {
|
||||||
|
|
||||||
public static final String ID = "jpa";
|
public static final String ID = "jpa";
|
||||||
|
|
||||||
|
@ -65,9 +63,4 @@ public class JpaUserSessionPersisterProviderFactory implements UserSessionPersis
|
||||||
public int order() {
|
public int order() {
|
||||||
return 100;
|
return 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,11 +17,9 @@
|
||||||
package org.keycloak.storage.jpa;
|
package org.keycloak.storage.jpa;
|
||||||
|
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.storage.federated.UserFederatedStorageProvider;
|
import org.keycloak.storage.federated.UserFederatedStorageProvider;
|
||||||
import org.keycloak.storage.federated.UserFederatedStorageProviderFactory;
|
import org.keycloak.storage.federated.UserFederatedStorageProviderFactory;
|
||||||
|
|
||||||
|
@ -31,7 +29,7 @@ import jakarta.persistence.EntityManager;
|
||||||
* @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 JpaUserFederatedStorageProviderFactory implements UserFederatedStorageProviderFactory, EnvironmentDependentProviderFactory {
|
public class JpaUserFederatedStorageProviderFactory implements UserFederatedStorageProviderFactory {
|
||||||
@Override
|
@Override
|
||||||
public UserFederatedStorageProvider create(KeycloakSession session) {
|
public UserFederatedStorageProvider create(KeycloakSession session) {
|
||||||
EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager();
|
EntityManager em = session.getProvider(JpaConnectionProvider.class).getEntityManager();
|
||||||
|
@ -57,10 +55,4 @@ public class JpaUserFederatedStorageProviderFactory implements UserFederatedStor
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return "jpa";
|
return "jpa";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,14 +18,12 @@
|
||||||
package org.keycloak.models.dblock;
|
package org.keycloak.models.dblock;
|
||||||
|
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.locking.GlobalLockProvider;
|
import org.keycloak.models.locking.GlobalLockProvider;
|
||||||
import org.keycloak.models.locking.GlobalLockProviderFactory;
|
import org.keycloak.models.locking.GlobalLockProviderFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
public class DBLockGlobalLockProviderFactory implements GlobalLockProviderFactory, EnvironmentDependentProviderFactory {
|
public class DBLockGlobalLockProviderFactory implements GlobalLockProviderFactory {
|
||||||
|
|
||||||
public static final String PROVIDER_ID = "dblock";
|
public static final String PROVIDER_ID = "dblock";
|
||||||
|
|
||||||
|
@ -49,9 +47,4 @@ public class DBLockGlobalLockProviderFactory implements GlobalLockProviderFactor
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return PROVIDER_ID;
|
return PROVIDER_ID;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,12 +19,10 @@ package org.keycloak.storage.datastore;
|
||||||
|
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.Config.Scope;
|
import org.keycloak.Config.Scope;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.migration.MigrationModelManager;
|
import org.keycloak.migration.MigrationModelManager;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.utils.PostMigrationEvent;
|
import org.keycloak.models.utils.PostMigrationEvent;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderEvent;
|
import org.keycloak.provider.ProviderEvent;
|
||||||
import org.keycloak.provider.ProviderEventListener;
|
import org.keycloak.provider.ProviderEventListener;
|
||||||
import org.keycloak.services.scheduled.ClearExpiredAdminEvents;
|
import org.keycloak.services.scheduled.ClearExpiredAdminEvents;
|
||||||
|
@ -39,7 +37,7 @@ import org.keycloak.storage.LegacyStoreSyncEvent;
|
||||||
import org.keycloak.storage.managers.UserStorageSyncManager;
|
import org.keycloak.storage.managers.UserStorageSyncManager;
|
||||||
import org.keycloak.timer.TimerProvider;
|
import org.keycloak.timer.TimerProvider;
|
||||||
|
|
||||||
public class LegacyDatastoreProviderFactory implements DatastoreProviderFactory, ProviderEventListener, EnvironmentDependentProviderFactory {
|
public class LegacyDatastoreProviderFactory implements DatastoreProviderFactory, ProviderEventListener {
|
||||||
|
|
||||||
private static final String PROVIDER_ID = "legacy";
|
private static final String PROVIDER_ID = "legacy";
|
||||||
private long clientStorageProviderTimeout;
|
private long clientStorageProviderTimeout;
|
||||||
|
@ -110,10 +108,4 @@ public class LegacyDatastoreProviderFactory implements DatastoreProviderFactory,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return ! Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,6 @@ import io.quarkus.arc.Arc;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.ServerStartupError;
|
import org.keycloak.ServerStartupError;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.Version;
|
import org.keycloak.common.Version;
|
||||||
import org.keycloak.connections.jpa.DefaultJpaConnectionProvider;
|
import org.keycloak.connections.jpa.DefaultJpaConnectionProvider;
|
||||||
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
import org.keycloak.connections.jpa.JpaConnectionProvider;
|
||||||
|
@ -52,7 +51,6 @@ import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.models.dblock.DBLockGlobalLockProvider;
|
import org.keycloak.models.dblock.DBLockGlobalLockProvider;
|
||||||
import org.keycloak.models.locking.GlobalLockProvider;
|
import org.keycloak.models.locking.GlobalLockProvider;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.provider.ProviderConfigProperty;
|
import org.keycloak.provider.ProviderConfigProperty;
|
||||||
import org.keycloak.provider.ProviderConfigurationBuilder;
|
import org.keycloak.provider.ProviderConfigurationBuilder;
|
||||||
import org.keycloak.provider.ServerInfoAwareProviderFactory;
|
import org.keycloak.provider.ServerInfoAwareProviderFactory;
|
||||||
|
@ -62,8 +60,7 @@ import org.keycloak.quarkus.runtime.storage.database.jpa.AbstractJpaConnectionPr
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
||||||
*/
|
*/
|
||||||
public class LegacyJpaConnectionProviderFactory extends AbstractJpaConnectionProviderFactory implements ServerInfoAwareProviderFactory,
|
public class LegacyJpaConnectionProviderFactory extends AbstractJpaConnectionProviderFactory implements ServerInfoAwareProviderFactory {
|
||||||
EnvironmentDependentProviderFactory {
|
|
||||||
|
|
||||||
public static final String QUERY_PROPERTY_PREFIX = "kc.query.";
|
public static final String QUERY_PROPERTY_PREFIX = "kc.query.";
|
||||||
private static final Logger logger = Logger.getLogger(LegacyJpaConnectionProviderFactory.class);
|
private static final Logger logger = Logger.getLogger(LegacyJpaConnectionProviderFactory.class);
|
||||||
|
@ -303,9 +300,4 @@ public class LegacyJpaConnectionProviderFactory extends AbstractJpaConnectionPro
|
||||||
return null;
|
return null;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,15 +18,12 @@
|
||||||
package org.keycloak.quarkus.runtime.storage.legacy.infinispan;
|
package org.keycloak.quarkus.runtime.storage.legacy.infinispan;
|
||||||
|
|
||||||
import org.infinispan.manager.EmbeddedCacheManager;
|
import org.infinispan.manager.EmbeddedCacheManager;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory;
|
import org.keycloak.connections.infinispan.DefaultInfinispanConnectionProviderFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
|
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
|
||||||
*/
|
*/
|
||||||
public class LegacyInfinispanConnectionFactory extends DefaultInfinispanConnectionProviderFactory
|
public class LegacyInfinispanConnectionFactory extends DefaultInfinispanConnectionProviderFactory {
|
||||||
implements EnvironmentDependentProviderFactory {
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected EmbeddedCacheManager initContainerManaged(EmbeddedCacheManager cacheManager) {
|
protected EmbeddedCacheManager initContainerManaged(EmbeddedCacheManager cacheManager) {
|
||||||
|
@ -46,9 +43,4 @@ public class LegacyInfinispanConnectionFactory extends DefaultInfinispanConnecti
|
||||||
public String getId() {
|
public String getId() {
|
||||||
return "quarkus";
|
return "quarkus";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,17 +18,15 @@
|
||||||
package org.keycloak.quarkus.runtime.storage.legacy.liquibase;
|
package org.keycloak.quarkus.runtime.storage.legacy.liquibase;
|
||||||
|
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.jpa.updater.JpaUpdaterProvider;
|
import org.keycloak.connections.jpa.updater.JpaUpdaterProvider;
|
||||||
import org.keycloak.connections.jpa.updater.JpaUpdaterProviderFactory;
|
import org.keycloak.connections.jpa.updater.JpaUpdaterProviderFactory;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
* @author <a href="mailto:sthorger@redhat.com">Stian Thorgersen</a>
|
||||||
*/
|
*/
|
||||||
public class QuarkusJpaUpdaterProviderFactory implements JpaUpdaterProviderFactory, EnvironmentDependentProviderFactory {
|
public class QuarkusJpaUpdaterProviderFactory implements JpaUpdaterProviderFactory {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JpaUpdaterProvider create(KeycloakSession session) {
|
public JpaUpdaterProvider create(KeycloakSession session) {
|
||||||
|
@ -57,9 +55,4 @@ public class QuarkusJpaUpdaterProviderFactory implements JpaUpdaterProviderFacto
|
||||||
public int order() {
|
public int order() {
|
||||||
return 100;
|
return 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,12 +28,10 @@ import liquibase.Scope;
|
||||||
import liquibase.ui.LoggerUIService;
|
import liquibase.ui.LoggerUIService;
|
||||||
import org.jboss.logging.Logger;
|
import org.jboss.logging.Logger;
|
||||||
import org.keycloak.Config;
|
import org.keycloak.Config;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProvider;
|
import org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProvider;
|
||||||
import org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProviderFactory;
|
import org.keycloak.connections.jpa.updater.liquibase.conn.LiquibaseConnectionProviderFactory;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
import org.keycloak.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
import liquibase.Liquibase;
|
import liquibase.Liquibase;
|
||||||
import liquibase.database.Database;
|
import liquibase.database.Database;
|
||||||
|
@ -46,8 +44,7 @@ import liquibase.parser.core.xml.XMLChangeLogSAXParser;
|
||||||
import liquibase.resource.ClassLoaderResourceAccessor;
|
import liquibase.resource.ClassLoaderResourceAccessor;
|
||||||
import liquibase.resource.ResourceAccessor;
|
import liquibase.resource.ResourceAccessor;
|
||||||
|
|
||||||
public class QuarkusLiquibaseConnectionProvider implements LiquibaseConnectionProviderFactory, LiquibaseConnectionProvider,
|
public class QuarkusLiquibaseConnectionProvider implements LiquibaseConnectionProviderFactory, LiquibaseConnectionProvider {
|
||||||
EnvironmentDependentProviderFactory {
|
|
||||||
|
|
||||||
private static final Logger logger = Logger.getLogger(QuarkusLiquibaseConnectionProvider.class);
|
private static final Logger logger = Logger.getLogger(QuarkusLiquibaseConnectionProvider.class);
|
||||||
|
|
||||||
|
@ -152,9 +149,4 @@ public class QuarkusLiquibaseConnectionProvider implements LiquibaseConnectionPr
|
||||||
public int order() {
|
public int order() {
|
||||||
return 100;
|
return 100;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return !Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,17 +48,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
HTTP(S):
|
HTTP(S):
|
||||||
|
|
||||||
|
|
|
@ -48,7 +48,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
|
@ -56,7 +56,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
|
|
|
@ -59,17 +59,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Config:
|
Config:
|
||||||
|
|
||||||
|
@ -151,4 +151,4 @@ Export:
|
||||||
--users-per-file <number>
|
--users-per-file <number>
|
||||||
Set the number of users per file. It is used only if 'users' is set to
|
Set the number of users per file. It is used only if 'users' is set to
|
||||||
'different_files'. Increasing this number leads to exponentially increasing
|
'different_files'. Increasing this number leads to exponentially increasing
|
||||||
export times. Default: 50.
|
export times. Default: 50.
|
||||||
|
|
|
@ -59,17 +59,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Config:
|
Config:
|
||||||
|
|
||||||
|
|
|
@ -59,17 +59,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Config:
|
Config:
|
||||||
|
|
||||||
|
@ -145,4 +145,4 @@ Import:
|
||||||
--file <file> Set the path to a file that will be read.
|
--file <file> Set the path to a file that will be read.
|
||||||
--override <true|false>
|
--override <true|false>
|
||||||
Set if existing data should be overwritten. If set to false, data will be
|
Set if existing data should be overwritten. If set to false, data will be
|
||||||
ignored. Default: true.
|
ignored. Default: true.
|
||||||
|
|
|
@ -59,17 +59,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Config:
|
Config:
|
||||||
|
|
||||||
|
@ -145,4 +145,4 @@ Import:
|
||||||
--file <file> Set the path to a file that will be read.
|
--file <file> Set the path to a file that will be read.
|
||||||
--override <true|false>
|
--override <true|false>
|
||||||
Set if existing data should be overwritten. If set to false, data will be
|
Set if existing data should be overwritten. If set to false, data will be
|
||||||
ignored. Default: true.
|
ignored. Default: true.
|
||||||
|
|
|
@ -75,17 +75,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Hostname:
|
Hostname:
|
||||||
|
|
||||||
|
@ -266,4 +266,4 @@ Security:
|
||||||
Do NOT start the server using this command when deploying to production.
|
Do NOT start the server using this command when deploying to production.
|
||||||
|
|
||||||
Use 'kc.sh start-dev --help-all' to list all available options, including build
|
Use 'kc.sh start-dev --help-all' to list all available options, including build
|
||||||
options.
|
options.
|
||||||
|
|
|
@ -73,7 +73,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
|
@ -81,7 +81,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
|
|
|
@ -75,17 +75,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Hostname:
|
Hostname:
|
||||||
|
|
||||||
|
@ -266,4 +266,4 @@ Security:
|
||||||
Do NOT start the server using this command when deploying to production.
|
Do NOT start the server using this command when deploying to production.
|
||||||
|
|
||||||
Use 'kc.sh start-dev --help-all' to list all available options, including build
|
Use 'kc.sh start-dev --help-all' to list all available options, including build
|
||||||
options.
|
options.
|
||||||
|
|
|
@ -73,7 +73,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
|
@ -81,7 +81,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
|
|
|
@ -76,17 +76,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Hostname:
|
Hostname:
|
||||||
|
|
||||||
|
@ -271,4 +271,4 @@ By default, this command tries to update the server configuration by running a
|
||||||
$ kc.sh start '--optimized'
|
$ kc.sh start '--optimized'
|
||||||
|
|
||||||
By doing that, the server should start faster based on any previous
|
By doing that, the server should start faster based on any previous
|
||||||
configuration you have set when manually running the 'build' command.
|
configuration you have set when manually running the 'build' command.
|
||||||
|
|
|
@ -74,7 +74,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
|
@ -82,7 +82,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
|
|
|
@ -76,17 +76,17 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
Disables a set of one or more features. Possible values are: account-api,
|
Disables a set of one or more features. Possible values are: account-api,
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
multi-site, par, preview, recovery-codes, scripts, step-up-authentication,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
token-exchange, transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
Hostname:
|
Hostname:
|
||||||
|
|
||||||
|
@ -271,4 +271,4 @@ By default, this command tries to update the server configuration by running a
|
||||||
$ kc.sh start '--optimized'
|
$ kc.sh start '--optimized'
|
||||||
|
|
||||||
By doing that, the server should start faster based on any previous
|
By doing that, the server should start faster based on any previous
|
||||||
configuration you have set when manually running the 'build' command.
|
configuration you have set when manually running the 'build' command.
|
||||||
|
|
|
@ -74,7 +74,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
--features-disabled <feature>
|
--features-disabled <feature>
|
||||||
|
@ -82,7 +82,7 @@ Feature:
|
||||||
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
account2, account3, admin-api, admin-fine-grained-authz, admin2,
|
||||||
authorization, ciba, client-policies, client-secret-rotation,
|
authorization, ciba, client-policies, client-secret-rotation,
|
||||||
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
declarative-user-profile, device-flow, docker, dpop, dynamic-scopes, fips,
|
||||||
impersonation, js-adapter, kerberos, linkedin-oauth, map-storage, par,
|
impersonation, js-adapter, kerberos, linkedin-oauth, multi-site, par,
|
||||||
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
preview, recovery-codes, scripts, step-up-authentication, token-exchange,
|
||||||
transient-users, update-email, web-authn.
|
transient-users, update-email, web-authn.
|
||||||
|
|
||||||
|
|
|
@ -1,77 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2022 Red Hat, Inc. and/or its affiliates
|
|
||||||
* and other contributors as indicated by the @author tags.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.keycloak.models.locking;
|
|
||||||
|
|
||||||
import org.keycloak.Config;
|
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
|
||||||
import org.keycloak.models.KeycloakSessionTaskWithResult;
|
|
||||||
import org.keycloak.models.utils.KeycloakModelUtils;
|
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
|
|
||||||
import java.time.Duration;
|
|
||||||
|
|
||||||
public class NoneGlobalLockProviderFactory implements GlobalLockProviderFactory, EnvironmentDependentProviderFactory {
|
|
||||||
|
|
||||||
public static final String PROVIDER_ID = "none";
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public GlobalLockProvider create(KeycloakSession session) {
|
|
||||||
return new GlobalLockProvider() {
|
|
||||||
@Override
|
|
||||||
public void close() {
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public <V> V withLock(String lockName, Duration timeToWaitForLock, KeycloakSessionTaskWithResult<V> task) {
|
|
||||||
return KeycloakModelUtils.runJobInTransactionWithResult(session.getKeycloakSessionFactory(), task);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void forceReleaseAllLocks() {
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(Config.Scope config) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void postInit(KeycloakSessionFactory factory) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getId() {
|
|
||||||
return PROVIDER_ID;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,76 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright 2022 Red Hat, Inc. and/or its affiliates
|
|
||||||
* and other contributors as indicated by the @author tags.
|
|
||||||
*
|
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
* you may not use this file except in compliance with the License.
|
|
||||||
* You may obtain a copy of the License at
|
|
||||||
*
|
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
*
|
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
* See the License for the specific language governing permissions and
|
|
||||||
* limitations under the License.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.keycloak.sessions;
|
|
||||||
|
|
||||||
import org.keycloak.Config;
|
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
|
||||||
import org.keycloak.models.KeycloakSessionFactory;
|
|
||||||
import org.keycloak.provider.EnvironmentDependentProviderFactory;
|
|
||||||
import org.keycloak.sessions.StickySessionEncoderProvider;
|
|
||||||
import org.keycloak.sessions.StickySessionEncoderProviderFactory;
|
|
||||||
|
|
||||||
public class DisabledStickySessionEncoderProvider implements StickySessionEncoderProviderFactory, StickySessionEncoderProvider,
|
|
||||||
EnvironmentDependentProviderFactory {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public StickySessionEncoderProvider create(KeycloakSession session) {
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String encodeSessionId(String sessionId) {
|
|
||||||
return sessionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String decodeSessionId(String encodedSessionId) {
|
|
||||||
return encodedSessionId;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean shouldAttachRoute() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void init(Config.Scope config) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void postInit(KeycloakSessionFactory factory) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void close() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getId() {
|
|
||||||
return "disabled";
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isSupported() {
|
|
||||||
return Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.keycloak.utils;
|
package org.keycloak.utils;
|
||||||
|
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.UserSessionModel;
|
import org.keycloak.models.UserSessionModel;
|
||||||
|
@ -72,19 +71,8 @@ public class LockObjectsForModification {
|
||||||
}
|
}
|
||||||
|
|
||||||
private static <V> V lockObjectsForModification(KeycloakSession session, Class<?> model, CallableWithoutThrowingAnException<V> callable) {
|
private static <V> V lockObjectsForModification(KeycloakSession session, Class<?> model, CallableWithoutThrowingAnException<V> callable) {
|
||||||
// Only map storage supports locking objects for modification, skip the logic if it is not enabled.
|
// Only map storage supported locking objects for modification, this logic will be remove in a follow up PR
|
||||||
if (!Profile.isFeatureEnabled(Profile.Feature.MAP_STORAGE)) {
|
return callable.call();
|
||||||
return callable.call();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (LockObjectsForModification.isEnabled(session, model)) {
|
|
||||||
// If someone nests the call, and it would already be locked, don't try to lock it a second time.
|
|
||||||
// Otherwise, the inner unlocking might also unlock the outer lock.
|
|
||||||
return callable.call();
|
|
||||||
}
|
|
||||||
try (LockObjectsForModification.Enabled ignored = new Enabled(session, model)) {
|
|
||||||
return callable.call();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@FunctionalInterface
|
@FunctionalInterface
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright 2021 Red Hat, Inc. and/or its affiliates
|
|
||||||
# and other contributors as indicated by the @author tags.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
org.keycloak.models.locking.NoneGlobalLockProviderFactory
|
|
|
@ -1,18 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright 2022 Red Hat, Inc. and/or its affiliates
|
|
||||||
# and other contributors as indicated by the @author tags.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
#
|
|
||||||
|
|
||||||
org.keycloak.sessions.DisabledStickySessionEncoderProvider
|
|
|
@ -26,9 +26,7 @@ import org.jboss.arquillian.core.api.Instance;
|
||||||
import org.jboss.arquillian.core.api.InstanceProducer;
|
import org.jboss.arquillian.core.api.InstanceProducer;
|
||||||
import org.jboss.arquillian.core.api.annotation.Inject;
|
import org.jboss.arquillian.core.api.annotation.Inject;
|
||||||
import org.jboss.arquillian.test.spi.TestResult;
|
import org.jboss.arquillian.test.spi.TestResult;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.reflections.Reflections;
|
import org.keycloak.common.util.reflections.Reflections;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.arquillian.annotation.ModelTest;
|
import org.keycloak.testsuite.arquillian.annotation.ModelTest;
|
||||||
import org.keycloak.testsuite.client.KeycloakTestingClient;
|
import org.keycloak.testsuite.client.KeycloakTestingClient;
|
||||||
|
|
||||||
|
@ -51,7 +49,7 @@ public class ModelTestExecutor extends LocalTestExecuter {
|
||||||
super.execute(event);
|
super.execute(event);
|
||||||
} else {
|
} else {
|
||||||
TestResult result = new TestResult();
|
TestResult result = new TestResult();
|
||||||
if (annotation.skipForMapStorage() && ProfileAssume.isFeatureEnabled(Profile.Feature.MAP_STORAGE)) {
|
if (annotation.skipForMapStorage()) {
|
||||||
result = TestResult.skipped();
|
result = TestResult.skipped();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -22,7 +22,6 @@ import org.jboss.shrinkwrap.api.spec.WebArchive;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.models.ClientModel;
|
import org.keycloak.models.ClientModel;
|
||||||
import org.keycloak.models.ClientScopeModel;
|
import org.keycloak.models.ClientScopeModel;
|
||||||
|
@ -36,7 +35,6 @@ import org.keycloak.representations.idm.ComponentRepresentation;
|
||||||
import org.keycloak.representations.idm.RoleRepresentation;
|
import org.keycloak.representations.idm.RoleRepresentation;
|
||||||
import org.keycloak.representations.idm.UserRepresentation;
|
import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
|
import org.keycloak.testsuite.adapter.AbstractServletsAdapterTest;
|
||||||
import org.keycloak.testsuite.adapter.page.ProductPortal;
|
import org.keycloak.testsuite.adapter.page.ProductPortal;
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
|
@ -56,7 +54,6 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import static org.keycloak.storage.UserStorageProviderModel.IMPORT_ENABLED;
|
import static org.keycloak.storage.UserStorageProviderModel.IMPORT_ENABLED;
|
||||||
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
|
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlEquals;
|
||||||
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
|
import static org.keycloak.testsuite.util.URLAssert.assertCurrentUrlStartsWithLoginUrlOf;
|
||||||
|
@ -90,12 +87,6 @@ public class UserStorageConsentTest extends AbstractServletsAdapterTest {
|
||||||
return servletDeployment(ProductPortal.DEPLOYMENT_NAME, ProductServlet.class);
|
return servletDeployment(ProductPortal.DEPLOYMENT_NAME, ProductServlet.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
// This test requires user storage SPI
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
||||||
ComponentRepresentation memProvider = new ComponentRepresentation();
|
ComponentRepresentation memProvider = new ComponentRepresentation();
|
||||||
|
|
|
@ -1799,9 +1799,6 @@ public class PermissionsTest extends AbstractKeycloakTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void partialExport() {
|
public void partialExport() {
|
||||||
// re-enable as part of https://github.com/keycloak/keycloak/issues/14291
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
invoke(realm -> realm.partialExport(false, false), clients.get("view-realm"), false);
|
invoke(realm -> realm.partialExport(false, false), clients.get("view-realm"), false);
|
||||||
invoke(realm -> realm.partialExport(false, false), clients.get("manage-realm"), true);
|
invoke(realm -> realm.partialExport(false, false), clients.get("manage-realm"), true);
|
||||||
invoke(realm -> realm.partialExport(true, false), clients.get("manage-realm"), false);
|
invoke(realm -> realm.partialExport(true, false), clients.get("manage-realm"), false);
|
||||||
|
|
|
@ -3079,8 +3079,6 @@ public class UserTest extends AbstractAdminTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateCredentialLabelForFederatedUser() {
|
public void testUpdateCredentialLabelForFederatedUser() {
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Create user federation
|
// Create user federation
|
||||||
ComponentRepresentation memProvider = new ComponentRepresentation();
|
ComponentRepresentation memProvider = new ComponentRepresentation();
|
||||||
memProvider.setName("memory");
|
memProvider.setName("memory");
|
||||||
|
|
|
@ -462,7 +462,6 @@ public class FlowTest extends AbstractAuthenticationTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void failWithLongDescription() throws IOException {
|
public void failWithLongDescription() throws IOException {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
ContainerAssume.assumeAuthServerQuarkus();
|
ContainerAssume.assumeAuthServerQuarkus();
|
||||||
AuthenticationFlowRepresentation rep = authMgmtResource.getFlows().stream()
|
AuthenticationFlowRepresentation rep = authMgmtResource.getFlows().stream()
|
||||||
.filter(new Predicate<AuthenticationFlowRepresentation>() {
|
.filter(new Predicate<AuthenticationFlowRepresentation>() {
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package org.keycloak.testsuite.admin.partialexport;
|
package org.keycloak.testsuite.admin.partialexport;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.models.ClientSecretConstants;
|
import org.keycloak.models.ClientSecretConstants;
|
||||||
import org.keycloak.representations.idm.ClientRepresentation;
|
import org.keycloak.representations.idm.ClientRepresentation;
|
||||||
|
@ -13,7 +12,6 @@ import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.representations.idm.RoleRepresentation;
|
import org.keycloak.representations.idm.RoleRepresentation;
|
||||||
import org.keycloak.representations.idm.ScopeMappingRepresentation;
|
import org.keycloak.representations.idm.ScopeMappingRepresentation;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.AbstractAdminTest;
|
import org.keycloak.testsuite.admin.AbstractAdminTest;
|
||||||
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -46,9 +44,6 @@ public class PartialExportTest extends AbstractAdminTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testExport() {
|
public void testExport() {
|
||||||
// re-enable as part of https://github.com/keycloak/keycloak/issues/14291
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// exportGroupsAndRoles == false, exportClients == false
|
// exportGroupsAndRoles == false, exportClients == false
|
||||||
RealmRepresentation rep = adminClient.realm(EXPORT_TEST_REALM).partialExport(false, false);
|
RealmRepresentation rep = adminClient.realm(EXPORT_TEST_REALM).partialExport(false, false);
|
||||||
Assert.assertNull("Users are null", rep.getUsers());
|
Assert.assertNull("Users are null", rep.getUsers());
|
||||||
|
|
|
@ -4,7 +4,6 @@ import org.junit.Test;
|
||||||
import org.keycloak.admin.client.resource.IdentityProviderResource;
|
import org.keycloak.admin.client.resource.IdentityProviderResource;
|
||||||
import org.keycloak.admin.client.resource.RealmResource;
|
import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.Time;
|
import org.keycloak.common.util.Time;
|
||||||
import org.keycloak.models.IdentityProviderMapperSyncMode;
|
import org.keycloak.models.IdentityProviderMapperSyncMode;
|
||||||
import org.keycloak.models.IdentityProviderSyncMode;
|
import org.keycloak.models.IdentityProviderSyncMode;
|
||||||
|
@ -19,7 +18,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.services.Urls;
|
import org.keycloak.services.Urls;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.federation.DummyUserFederationProviderFactory;
|
import org.keycloak.testsuite.federation.DummyUserFederationProviderFactory;
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
|
@ -632,9 +630,6 @@ public abstract class AbstractAdvancedBrokerTest extends AbstractBrokerTest {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testWithLinkedFederationProvider() {
|
public void testWithLinkedFederationProvider() {
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
updateExecutions(AbstractBrokerTest::disableUpdateProfileOnFirstLogin);
|
updateExecutions(AbstractBrokerTest::disableUpdateProfileOnFirstLogin);
|
||||||
|
|
||||||
|
|
|
@ -145,7 +145,6 @@ public class AccountLinkTest extends AbstractKeycloakTest {
|
||||||
@Test
|
@Test
|
||||||
@Ignore // Ignore should be removed by https://github.com/keycloak/keycloak/issues/20441
|
@Ignore // Ignore should be removed by https://github.com/keycloak/keycloak/issues/20441
|
||||||
public void testAccountLinkWithUserStorageProvider() {
|
public void testAccountLinkWithUserStorageProvider() {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
String childUsername = PassThroughFederatedUserStorageProvider.PASSTHROUGH_USERNAME;
|
String childUsername = PassThroughFederatedUserStorageProvider.PASSTHROUGH_USERNAME;
|
||||||
String childPassword = PassThroughFederatedUserStorageProvider.INITIAL_PASSWORD;
|
String childPassword = PassThroughFederatedUserStorageProvider.INITIAL_PASSWORD;
|
||||||
|
|
|
@ -26,7 +26,6 @@ import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import org.keycloak.admin.client.resource.RealmResource;
|
import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.*;
|
import org.keycloak.common.util.*;
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
import org.keycloak.crypto.Algorithm;
|
import org.keycloak.crypto.Algorithm;
|
||||||
|
@ -42,7 +41,6 @@ import org.keycloak.representations.idm.IdentityProviderRepresentation;
|
||||||
import org.keycloak.representations.idm.KeysMetadataRepresentation;
|
import org.keycloak.representations.idm.KeysMetadataRepresentation;
|
||||||
import org.keycloak.representations.idm.UserRepresentation;
|
import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.client.resources.TestingCacheResource;
|
import org.keycloak.testsuite.client.resources.TestingCacheResource;
|
||||||
import org.keycloak.testsuite.updaters.ClientAttributeUpdater;
|
import org.keycloak.testsuite.updaters.ClientAttributeUpdater;
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
|
@ -99,8 +97,6 @@ public class KcOIDCBrokerWithSignatureTest extends AbstractBaseBrokerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSignatureVerificationJwksUrl() throws Exception {
|
public void testSignatureVerificationJwksUrl() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Configure OIDC identity provider with JWKS URL
|
// Configure OIDC identity provider with JWKS URL
|
||||||
updateIdentityProviderWithJwksUrl();
|
updateIdentityProviderWithJwksUrl();
|
||||||
|
|
||||||
|
@ -309,8 +305,6 @@ public class KcOIDCBrokerWithSignatureTest extends AbstractBaseBrokerTest {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testClearKeysCache() throws Exception {
|
public void testClearKeysCache() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Configure OIDC identity provider with JWKS URL
|
// Configure OIDC identity provider with JWKS URL
|
||||||
updateIdentityProviderWithJwksUrl();
|
updateIdentityProviderWithJwksUrl();
|
||||||
|
|
||||||
|
@ -336,8 +330,6 @@ public class KcOIDCBrokerWithSignatureTest extends AbstractBaseBrokerTest {
|
||||||
// Test that when I update identityProvier, then the record in publicKey cache is cleared and it's not possible to authenticate with it anymore
|
// Test that when I update identityProvier, then the record in publicKey cache is cleared and it's not possible to authenticate with it anymore
|
||||||
@Test
|
@Test
|
||||||
public void testPublicKeyCacheInvalidatedWhenProviderUpdated() throws Exception {
|
public void testPublicKeyCacheInvalidatedWhenProviderUpdated() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Configure OIDC identity provider with JWKS URL
|
// Configure OIDC identity provider with JWKS URL
|
||||||
updateIdentityProviderWithJwksUrl();
|
updateIdentityProviderWithJwksUrl();
|
||||||
|
|
||||||
|
|
|
@ -39,7 +39,6 @@ import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.client.registration.Auth;
|
import org.keycloak.client.registration.Auth;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.KeycloakUriBuilder;
|
import org.keycloak.common.util.KeycloakUriBuilder;
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
import org.keycloak.constants.ServiceUrlConstants;
|
import org.keycloak.constants.ServiceUrlConstants;
|
||||||
|
@ -59,7 +58,6 @@ import org.keycloak.representations.idm.ClientInitialAccessPresentation;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.representations.oidc.OIDCClientRepresentation;
|
import org.keycloak.representations.oidc.OIDCClientRepresentation;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.client.resources.TestApplicationResourceUrls;
|
import org.keycloak.testsuite.client.resources.TestApplicationResourceUrls;
|
||||||
import org.keycloak.testsuite.client.resources.TestOIDCEndpointsApplicationResource;
|
import org.keycloak.testsuite.client.resources.TestOIDCEndpointsApplicationResource;
|
||||||
import org.keycloak.testsuite.rest.resource.TestingOIDCEndpointsApplicationResource;
|
import org.keycloak.testsuite.rest.resource.TestingOIDCEndpointsApplicationResource;
|
||||||
|
@ -172,8 +170,6 @@ public class OIDCJwksClientRegistrationTest extends AbstractClientRegistrationTe
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTwoClientsWithSameKid() throws Exception {
|
public void testTwoClientsWithSameKid() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Create client with manually set "kid"
|
// Create client with manually set "kid"
|
||||||
OIDCClientRepresentation response = createClientWithManuallySetKid("a1");
|
OIDCClientRepresentation response = createClientWithManuallySetKid("a1");
|
||||||
|
|
||||||
|
@ -213,8 +209,6 @@ public class OIDCJwksClientRegistrationTest extends AbstractClientRegistrationTe
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testPublicKeyCacheInvalidatedWhenUpdatingClient() throws Exception {
|
public void testPublicKeyCacheInvalidatedWhenUpdatingClient() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
OIDCClientRepresentation response = createClientWithManuallySetKid("a1");
|
OIDCClientRepresentation response = createClientWithManuallySetKid("a1");
|
||||||
|
|
||||||
Map<String, String> generatedKeys = testingClient.testApp().oidcClientEndpoints().getKeysAsPem();
|
Map<String, String> generatedKeys = testingClient.testApp().oidcClientEndpoints().getKeysAsPem();
|
||||||
|
@ -268,8 +262,6 @@ public class OIDCJwksClientRegistrationTest extends AbstractClientRegistrationTe
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void createClientWithJWKSURI_rotateClientKeys() throws Exception {
|
public void createClientWithJWKSURI_rotateClientKeys() throws Exception {
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
OIDCClientRepresentation clientRep = createRep();
|
OIDCClientRepresentation clientRep = createRep();
|
||||||
|
|
||||||
clientRep.setGrantTypes(Collections.singletonList(OAuth2Constants.CLIENT_CREDENTIALS));
|
clientRep.setGrantTypes(Collections.singletonList(OAuth2Constants.CLIENT_CREDENTIALS));
|
||||||
|
|
|
@ -17,13 +17,10 @@
|
||||||
|
|
||||||
package org.keycloak.testsuite.domainextension;
|
package org.keycloak.testsuite.domainextension;
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.testsuite.AbstractKeycloakTest;
|
import org.keycloak.testsuite.AbstractKeycloakTest;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.client.resources.TestExampleCompanyResource;
|
import org.keycloak.testsuite.client.resources.TestExampleCompanyResource;
|
||||||
import org.keycloak.testsuite.util.RealmBuilder;
|
import org.keycloak.testsuite.util.RealmBuilder;
|
||||||
|
|
||||||
|
@ -46,11 +43,6 @@ public class CustomExtensionTest extends AbstractKeycloakTest {
|
||||||
testRealms.add(foo);
|
testRealms.add(foo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDomainExtension() throws Exception {
|
public void testDomainExtension() throws Exception {
|
||||||
companyResource().createCompany("foo", buildCompany("foo-company"));
|
companyResource().createCompany("foo", buildCompany("foo-company"));
|
||||||
|
|
|
@ -21,11 +21,9 @@ import org.apache.commons.io.FileUtils;
|
||||||
import org.hamcrest.Matchers;
|
import org.hamcrest.Matchers;
|
||||||
import org.jboss.arquillian.container.spi.client.container.LifecycleException;
|
import org.jboss.arquillian.container.spi.client.container.LifecycleException;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.admin.client.resource.RealmResource;
|
import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.authentication.requiredactions.WebAuthnRegisterFactory;
|
import org.keycloak.authentication.requiredactions.WebAuthnRegisterFactory;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.exportimport.ExportImportConfig;
|
import org.keycloak.exportimport.ExportImportConfig;
|
||||||
import org.keycloak.exportimport.Strategy;
|
import org.keycloak.exportimport.Strategy;
|
||||||
|
@ -43,7 +41,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.representations.userprofile.config.UPConfig;
|
import org.keycloak.representations.userprofile.config.UPConfig;
|
||||||
import org.keycloak.testsuite.AbstractKeycloakTest;
|
import org.keycloak.testsuite.AbstractKeycloakTest;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.client.resources.TestingExportImportResource;
|
import org.keycloak.testsuite.client.resources.TestingExportImportResource;
|
||||||
import org.keycloak.testsuite.forms.VerifyProfileTest;
|
import org.keycloak.testsuite.forms.VerifyProfileTest;
|
||||||
import org.keycloak.testsuite.runonserver.RunHelpers;
|
import org.keycloak.testsuite.runonserver.RunHelpers;
|
||||||
|
@ -81,12 +78,6 @@ public class ExportImportTest extends AbstractKeycloakTest {
|
||||||
|
|
||||||
private static final String TEST_REALM = "test-realm";
|
private static final String TEST_REALM = "test-realm";
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
// Disabled temporarily, re-enable once export/import functionality is implemented for map storage
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addTestRealms(List<RealmRepresentation> testRealms) {
|
public void addTestRealms(List<RealmRepresentation> testRealms) {
|
||||||
RealmRepresentation testRealm1 = loadJson(getClass().getResourceAsStream("/testrealm.json"), RealmRepresentation.class);
|
RealmRepresentation testRealm1 = loadJson(getClass().getResourceAsStream("/testrealm.json"), RealmRepresentation.class);
|
||||||
|
|
|
@ -49,7 +49,6 @@ import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.adapters.HttpClientBuilder;
|
import org.keycloak.adapters.HttpClientBuilder;
|
||||||
import org.keycloak.admin.client.resource.RealmResource;
|
import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.authentication.authenticators.browser.SpnegoAuthenticatorFactory;
|
import org.keycloak.authentication.authenticators.browser.SpnegoAuthenticatorFactory;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.constants.KerberosConstants;
|
import org.keycloak.common.constants.KerberosConstants;
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.events.Details;
|
import org.keycloak.events.Details;
|
||||||
|
@ -69,7 +68,6 @@ import org.keycloak.storage.UserStorageProviderModel;
|
||||||
import org.keycloak.testsuite.AbstractAuthTest;
|
import org.keycloak.testsuite.AbstractAuthTest;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.AssertEvents;
|
import org.keycloak.testsuite.AssertEvents;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.pages.LoginPage;
|
import org.keycloak.testsuite.pages.LoginPage;
|
||||||
|
@ -134,11 +132,6 @@ public abstract class AbstractKerberosTest extends AbstractAuthTest {
|
||||||
return adminClient.realm("test");
|
return adminClient.realm("test");
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void checkKerberosSupportedByAuthServer() {
|
public static void checkKerberosSupportedByAuthServer() {
|
||||||
KerberosUtils.assumeKerberosSupportExpected();
|
KerberosUtils.assumeKerberosSupportExpected();
|
||||||
|
|
|
@ -22,10 +22,8 @@ import java.util.List;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.events.Details;
|
import org.keycloak.events.Details;
|
||||||
import org.keycloak.federation.kerberos.CommonKerberosConfig;
|
import org.keycloak.federation.kerberos.CommonKerberosConfig;
|
||||||
import org.keycloak.representations.idm.ComponentRepresentation;
|
import org.keycloak.representations.idm.ComponentRepresentation;
|
||||||
|
@ -33,7 +31,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.storage.ldap.LDAPStorageProviderFactory;
|
import org.keycloak.storage.ldap.LDAPStorageProviderFactory;
|
||||||
import org.keycloak.storage.ldap.kerberos.LDAPProviderKerberosConfig;
|
import org.keycloak.storage.ldap.kerberos.LDAPProviderKerberosConfig;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
import org.keycloak.testsuite.util.KerberosRule;
|
import org.keycloak.testsuite.util.KerberosRule;
|
||||||
import org.keycloak.testsuite.KerberosEmbeddedServer;
|
import org.keycloak.testsuite.KerberosEmbeddedServer;
|
||||||
|
@ -67,12 +64,6 @@ public class KerberosLdapTest extends AbstractKerberosSingleRealmTest {
|
||||||
return getUserStorageConfiguration("kerberos-ldap", LDAPStorageProviderFactory.PROVIDER_NAME);
|
return getUserStorageConfiguration("kerberos-ldap", LDAPStorageProviderFactory.PROVIDER_NAME);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void spnegoLoginTest() throws Exception {
|
public void spnegoLoginTest() throws Exception {
|
||||||
assertSuccessfulSpnegoLogin("hnelson", "hnelson", "secret");
|
assertSuccessfulSpnegoLogin("hnelson", "hnelson", "secret");
|
||||||
|
|
|
@ -23,7 +23,6 @@ import jakarta.ws.rs.client.Entity;
|
||||||
import jakarta.ws.rs.core.MultivaluedMap;
|
import jakarta.ws.rs.core.MultivaluedMap;
|
||||||
import jakarta.ws.rs.core.Response;
|
import jakarta.ws.rs.core.Response;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
|
@ -40,7 +39,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.testsuite.ActionURIUtils;
|
import org.keycloak.testsuite.ActionURIUtils;
|
||||||
import org.keycloak.testsuite.KerberosEmbeddedServer;
|
import org.keycloak.testsuite.KerberosEmbeddedServer;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
||||||
import org.keycloak.testsuite.arquillian.annotation.UncaughtServerErrorExpected;
|
import org.keycloak.testsuite.arquillian.annotation.UncaughtServerErrorExpected;
|
||||||
|
@ -68,12 +66,6 @@ public class KerberosStandaloneTest extends AbstractKerberosSingleRealmTest {
|
||||||
return kerberosRule;
|
return kerberosRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected CommonKerberosConfig getKerberosConfig() {
|
protected CommonKerberosConfig getKerberosConfig() {
|
||||||
return new KerberosConfig(getUserStorageConfiguration());
|
return new KerberosConfig(getUserStorageConfiguration());
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.keycloak.testsuite.federation.ldap;
|
package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
|
@ -27,14 +26,12 @@ import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.AssertEvents;
|
import org.keycloak.testsuite.AssertEvents;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.pages.LoginPage;
|
import org.keycloak.testsuite.pages.LoginPage;
|
||||||
import org.keycloak.testsuite.pages.LoginPasswordUpdatePage;
|
import org.keycloak.testsuite.pages.LoginPasswordUpdatePage;
|
||||||
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
import org.keycloak.testsuite.pages.OAuthGrantPage;
|
||||||
import org.keycloak.testsuite.pages.RegisterPage;
|
import org.keycloak.testsuite.pages.RegisterPage;
|
||||||
import org.keycloak.testsuite.util.LDAPRule;
|
import org.keycloak.testsuite.util.LDAPRule;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
|
@ -78,12 +75,6 @@ public abstract class AbstractLDAPTest extends AbstractTestRealmKeycloakTest {
|
||||||
afterImportTestRealm();
|
afterImportTestRealm();
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
protected void createLDAPProvider() {
|
protected void createLDAPProvider() {
|
||||||
Map<String, String> cfg = getLDAPRule().getConfig();
|
Map<String, String> cfg = getLDAPRule().getConfig();
|
||||||
ldapModelId = testingClient.testing().ldap(TEST_REALM_NAME).createLDAPProvider(cfg, isImportEnabled());
|
ldapModelId = testingClient.testing().ldap(TEST_REALM_NAME).createLDAPProvider(cfg, isImportEnabled());
|
||||||
|
|
|
@ -34,7 +34,6 @@ import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.broker.provider.util.SimpleHttp;
|
import org.keycloak.broker.provider.util.SimpleHttp;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.federation.kerberos.KerberosFederationProvider;
|
import org.keycloak.federation.kerberos.KerberosFederationProvider;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
|
@ -45,7 +44,6 @@ import org.keycloak.representations.idm.ErrorRepresentation;
|
||||||
import org.keycloak.services.messages.Messages;
|
import org.keycloak.services.messages.Messages;
|
||||||
import org.keycloak.services.resources.account.AccountCredentialResource;
|
import org.keycloak.services.resources.account.AccountCredentialResource;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.util.LDAPRule;
|
import org.keycloak.testsuite.util.LDAPRule;
|
||||||
import org.keycloak.testsuite.util.LDAPTestUtils;
|
import org.keycloak.testsuite.util.LDAPTestUtils;
|
||||||
import org.keycloak.testsuite.util.TokenUtil;
|
import org.keycloak.testsuite.util.TokenUtil;
|
||||||
|
@ -73,8 +71,6 @@ public class LDAPAccountRestApiTest extends AbstractLDAPTest {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
httpClient = HttpClientBuilder.create().build();
|
httpClient = HttpClientBuilder.create().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,13 +18,11 @@
|
||||||
package org.keycloak.testsuite.federation.ldap;
|
package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
|
@ -32,7 +30,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
import org.keycloak.testsuite.util.LDAPRule;
|
import org.keycloak.testsuite.util.LDAPRule;
|
||||||
|
@ -64,12 +61,6 @@ public class LDAPLegacyImportTest extends AbstractLDAPTest {
|
||||||
return ldapRule;
|
return ldapRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addTestRealms(List<RealmRepresentation> testRealms) {
|
public void addTestRealms(List<RealmRepresentation> testRealms) {
|
||||||
RealmRepresentation testRealm = loadJson(getClass().getResourceAsStream("/ldap/fed-provider-export.json"), RealmRepresentation.class);
|
RealmRepresentation testRealm = loadJson(getClass().getResourceAsStream("/ldap/fed-provider-export.json"), RealmRepresentation.class);
|
||||||
|
|
|
@ -19,12 +19,10 @@ package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.ClientModel;
|
import org.keycloak.models.ClientModel;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
|
@ -36,7 +34,6 @@ import org.keycloak.storage.UserStoragePrivateUtil;
|
||||||
import org.keycloak.storage.UserStorageUtil;
|
import org.keycloak.storage.UserStorageUtil;
|
||||||
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.util.LDAPRule;
|
import org.keycloak.testsuite.util.LDAPRule;
|
||||||
import org.keycloak.testsuite.util.LDAPTestConfiguration;
|
import org.keycloak.testsuite.util.LDAPTestConfiguration;
|
||||||
import org.keycloak.testsuite.util.LDAPTestUtils;
|
import org.keycloak.testsuite.util.LDAPTestUtils;
|
||||||
|
@ -71,12 +68,6 @@ public class LDAPMultipleAttributesTest extends AbstractLDAPTest {
|
||||||
return ldapRule;
|
return ldapRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
testingClient.server().run(session -> {
|
testingClient.server().run(session -> {
|
||||||
|
|
|
@ -19,12 +19,10 @@
|
||||||
package org.keycloak.testsuite.federation.ldap;
|
package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
|
@ -37,7 +35,6 @@ import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.storage.ldap.mappers.HardcodedLDAPAttributeMapper;
|
import org.keycloak.storage.ldap.mappers.HardcodedLDAPAttributeMapper;
|
||||||
import org.keycloak.storage.ldap.mappers.HardcodedLDAPAttributeMapperFactory;
|
import org.keycloak.storage.ldap.mappers.HardcodedLDAPAttributeMapperFactory;
|
||||||
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
|
@ -98,12 +95,6 @@ public class LDAPPasswordModifyExtensionTest extends AbstractLDAPTest {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void ldapPasswordChangeWithAccountConsole() throws Exception {
|
public void ldapPasswordChangeWithAccountConsole() throws Exception {
|
||||||
Assert.assertTrue(AccountHelper.updatePassword(testRealm(), "johnkeycloak", "New-password1"));
|
Assert.assertTrue(AccountHelper.updatePassword(testRealm(), "johnkeycloak", "New-password1"));
|
||||||
|
|
|
@ -19,7 +19,6 @@ package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Assume;
|
import org.junit.Assume;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -27,7 +26,6 @@ import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.admin.client.resource.RealmResource;
|
import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.credential.CredentialModel;
|
import org.keycloak.credential.CredentialModel;
|
||||||
import org.keycloak.events.EventType;
|
import org.keycloak.events.EventType;
|
||||||
|
@ -68,7 +66,6 @@ import org.keycloak.storage.ldap.mappers.HardcodedLDAPRoleStorageMapperFactory;
|
||||||
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
import org.keycloak.storage.ldap.mappers.LDAPStorageMapper;
|
||||||
import org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapper;
|
import org.keycloak.storage.ldap.mappers.UserAttributeLDAPStorageMapper;
|
||||||
import org.keycloak.testsuite.AbstractAuthTest;
|
import org.keycloak.testsuite.AbstractAuthTest;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.util.AccountHelper;
|
import org.keycloak.testsuite.util.AccountHelper;
|
||||||
|
@ -105,12 +102,6 @@ public class LDAPProvidersIntegrationTest extends AbstractLDAPTest {
|
||||||
return ldapRule;
|
return ldapRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
testingClient.server().run(session -> {
|
testingClient.server().run(session -> {
|
||||||
|
|
|
@ -20,14 +20,12 @@ package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.AuthenticationExecutionModel;
|
import org.keycloak.models.AuthenticationExecutionModel;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
|
@ -39,7 +37,6 @@ import org.keycloak.storage.StorageId;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
import org.keycloak.storage.ldap.LDAPStorageProvider;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.pages.LoginConfigTotpPage;
|
import org.keycloak.testsuite.pages.LoginConfigTotpPage;
|
||||||
|
@ -75,12 +72,6 @@ public class LDAPReadOnlyTest extends AbstractLDAPTest {
|
||||||
|
|
||||||
private TimeBasedOTP totp = new TimeBasedOTP();
|
private TimeBasedOTP totp = new TimeBasedOTP();
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
testingClient.server().run(session -> {
|
testingClient.server().run(session -> {
|
||||||
|
|
|
@ -144,9 +144,6 @@ public class LDAPSamlIdPInitiatedVaryingLetterCaseTest extends AbstractLDAPTest
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setupIdentityProvider() {
|
public void setupIdentityProvider() {
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
|
|
||||||
// Configure autolink flow
|
// Configure autolink flow
|
||||||
AuthenticationFlowRepresentation newFlow = new AuthenticationFlowRepresentation();
|
AuthenticationFlowRepresentation newFlow = new AuthenticationFlowRepresentation();
|
||||||
newFlow.setAlias(FLOW_AUTO_LINK);
|
newFlow.setAlias(FLOW_AUTO_LINK);
|
||||||
|
|
|
@ -18,13 +18,11 @@
|
||||||
package org.keycloak.testsuite.federation.ldap;
|
package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.models.GroupModel;
|
import org.keycloak.models.GroupModel;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
|
@ -37,7 +35,6 @@ import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.storage.ldap.mappers.membership.LDAPGroupMapperMode;
|
import org.keycloak.storage.ldap.mappers.membership.LDAPGroupMapperMode;
|
||||||
import org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapperFactory;
|
import org.keycloak.storage.ldap.mappers.membership.group.GroupLDAPStorageMapperFactory;
|
||||||
import org.keycloak.storage.ldap.mappers.membership.group.GroupMapperConfig;
|
import org.keycloak.storage.ldap.mappers.membership.group.GroupMapperConfig;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
import org.keycloak.testsuite.util.LDAPRule;
|
import org.keycloak.testsuite.util.LDAPRule;
|
||||||
import org.keycloak.testsuite.util.LDAPTestConfiguration;
|
import org.keycloak.testsuite.util.LDAPTestConfiguration;
|
||||||
|
@ -97,12 +94,6 @@ public class LDAPSpecialCharsTest extends AbstractLDAPTest {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support the legacy style federation
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void test01_userSearch() {
|
public void test01_userSearch() {
|
||||||
List<UserRepresentation> users = adminClient.realm("test").users().search("j*", 0, 10);
|
List<UserRepresentation> users = adminClient.realm("test").users().search("j*", 0, 10);
|
||||||
|
|
|
@ -19,13 +19,11 @@
|
||||||
package org.keycloak.testsuite.federation.ldap;
|
package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.rules.ExternalResource;
|
import org.junit.rules.ExternalResource;
|
||||||
import org.junit.runners.MethodSorters;
|
import org.junit.runners.MethodSorters;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.events.Errors;
|
import org.keycloak.events.Errors;
|
||||||
import org.keycloak.events.EventType;
|
import org.keycloak.events.EventType;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
|
@ -35,7 +33,6 @@ import org.keycloak.models.ModelException;
|
||||||
import org.keycloak.representations.idm.EventRepresentation;
|
import org.keycloak.representations.idm.EventRepresentation;
|
||||||
import org.keycloak.representations.idm.UserRepresentation;
|
import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.arquillian.annotation.EnableVault;
|
import org.keycloak.testsuite.arquillian.annotation.EnableVault;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.AssertEvents;
|
import org.keycloak.testsuite.AssertEvents;
|
||||||
|
@ -112,12 +109,6 @@ public class LDAPUserLoginTest extends AbstractLDAPTest {
|
||||||
DEFAULT_TEST_USERS.put("VALID_USER_STREET", "1th Avenue");
|
DEFAULT_TEST_USERS.put("VALID_USER_STREET", "1th Avenue");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
try {
|
try {
|
||||||
|
|
|
@ -3,7 +3,6 @@ package org.keycloak.testsuite.federation.ldap;
|
||||||
|
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -12,7 +11,6 @@ import org.keycloak.admin.client.resource.RealmResource;
|
||||||
import org.keycloak.authentication.authenticators.browser.OTPFormAuthenticatorFactory;
|
import org.keycloak.authentication.authenticators.browser.OTPFormAuthenticatorFactory;
|
||||||
import org.keycloak.authentication.authenticators.browser.PasswordFormFactory;
|
import org.keycloak.authentication.authenticators.browser.PasswordFormFactory;
|
||||||
import org.keycloak.authentication.authenticators.browser.UsernameFormFactory;
|
import org.keycloak.authentication.authenticators.browser.UsernameFormFactory;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.models.AuthenticationExecutionModel;
|
import org.keycloak.models.AuthenticationExecutionModel;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.UserModel;
|
import org.keycloak.models.UserModel;
|
||||||
|
@ -20,7 +18,6 @@ import org.keycloak.models.credential.OTPCredentialModel;
|
||||||
import org.keycloak.models.utils.DefaultAuthenticationFlows;
|
import org.keycloak.models.utils.DefaultAuthenticationFlows;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.arquillian.annotation.EnableVault;
|
import org.keycloak.testsuite.arquillian.annotation.EnableVault;
|
||||||
import org.keycloak.testsuite.client.KeycloakTestingClient;
|
import org.keycloak.testsuite.client.KeycloakTestingClient;
|
||||||
import org.keycloak.testsuite.pages.LoginTotpPage;
|
import org.keycloak.testsuite.pages.LoginTotpPage;
|
||||||
|
@ -64,12 +61,6 @@ public class LDAPUserMultipleCredentialTest extends AbstractLDAPTest {
|
||||||
return ldapRule;
|
return ldapRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
getTestingClient().server().run(session -> {
|
getTestingClient().server().run(session -> {
|
||||||
|
|
|
@ -24,7 +24,6 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
|
||||||
import org.junit.ClassRule;
|
import org.junit.ClassRule;
|
||||||
import org.junit.FixMethodOrder;
|
import org.junit.FixMethodOrder;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
@ -42,7 +41,6 @@ import org.keycloak.representations.userprofile.config.UPAttributePermissions;
|
||||||
import org.keycloak.representations.userprofile.config.UPConfig;
|
import org.keycloak.representations.userprofile.config.UPConfig;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
import org.keycloak.storage.ldap.idm.model.LDAPObject;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
||||||
import org.keycloak.testsuite.forms.VerifyProfileTest;
|
import org.keycloak.testsuite.forms.VerifyProfileTest;
|
||||||
|
@ -72,12 +70,6 @@ public class LDAPUserProfileTest extends AbstractLDAPTest {
|
||||||
return ldapRule;
|
return ldapRule;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Before
|
|
||||||
public void before() {
|
|
||||||
// don't run this test when map storage is enabled, as map storage doesn't support LDAP, yet
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void afterImportTestRealm() {
|
protected void afterImportTestRealm() {
|
||||||
testingClient.server().run(session -> {
|
testingClient.server().run(session -> {
|
||||||
|
|
|
@ -5,14 +5,12 @@ import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.admin.client.resource.GroupResource;
|
import org.keycloak.admin.client.resource.GroupResource;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.models.KeycloakSession;
|
import org.keycloak.models.KeycloakSession;
|
||||||
import org.keycloak.models.LDAPConstants;
|
import org.keycloak.models.LDAPConstants;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.representations.idm.ComponentRepresentation;
|
import org.keycloak.representations.idm.ComponentRepresentation;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.concurrency.AbstractConcurrencyTest;
|
import org.keycloak.testsuite.admin.concurrency.AbstractConcurrencyTest;
|
||||||
import org.keycloak.testsuite.federation.UserMapStorage;
|
import org.keycloak.testsuite.federation.UserMapStorage;
|
||||||
import org.keycloak.testsuite.federation.UserMapStorageFactory;
|
import org.keycloak.testsuite.federation.UserMapStorageFactory;
|
||||||
|
@ -26,7 +24,6 @@ import java.util.Set;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import static org.hamcrest.Matchers.hasSize;
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.keycloak.storage.UserStorageProviderModel.IMPORT_ENABLED;
|
import static org.keycloak.storage.UserStorageProviderModel.IMPORT_ENABLED;
|
||||||
|
@ -44,11 +41,6 @@ public abstract class AbstractUserStorageDirtyDeletionTest extends AbstractConcu
|
||||||
|
|
||||||
private List<Creator<UserResource>> createdUsers;
|
private List<Creator<UserResource>> createdUsers;
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void remove20UsersFromStorageProvider(KeycloakSession session) {
|
public static void remove20UsersFromStorageProvider(KeycloakSession session) {
|
||||||
assertThat(REMOVED_USERS_COUNT, Matchers.lessThan(NUM_USERS));
|
assertThat(REMOVED_USERS_COUNT, Matchers.lessThan(NUM_USERS));
|
||||||
final RealmModel realm = session.realms().getRealmByName(TEST_REALM_NAME);
|
final RealmModel realm = session.realms().getRealmByName(TEST_REALM_NAME);
|
||||||
|
|
|
@ -22,11 +22,9 @@ import com.fasterxml.jackson.core.type.TypeReference;
|
||||||
import org.apache.http.impl.client.CloseableHttpClient;
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
import org.jboss.arquillian.graphene.page.Page;
|
import org.jboss.arquillian.graphene.page.Page;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.admin.client.resource.UserResource;
|
import org.keycloak.admin.client.resource.UserResource;
|
||||||
import org.keycloak.broker.provider.util.SimpleHttp;
|
import org.keycloak.broker.provider.util.SimpleHttp;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.models.RealmModel;
|
import org.keycloak.models.RealmModel;
|
||||||
import org.keycloak.models.UserModel;
|
import org.keycloak.models.UserModel;
|
||||||
|
@ -43,7 +41,6 @@ import org.keycloak.storage.StorageId;
|
||||||
import org.keycloak.storage.UserStorageProvider;
|
import org.keycloak.storage.UserStorageProvider;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.federation.BackwardsCompatibilityUserStorageFactory;
|
import org.keycloak.testsuite.federation.BackwardsCompatibilityUserStorageFactory;
|
||||||
import org.keycloak.testsuite.pages.AppPage;
|
import org.keycloak.testsuite.pages.AppPage;
|
||||||
|
@ -88,13 +85,6 @@ public class BackwardsCompatibilityUserStorageTest extends AbstractTestRealmKeyc
|
||||||
|
|
||||||
private TimeBasedOTP totp = new TimeBasedOTP();
|
private TimeBasedOTP totp = new TimeBasedOTP();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
||||||
ComponentRepresentation memProvider = new ComponentRepresentation();
|
ComponentRepresentation memProvider = new ComponentRepresentation();
|
||||||
|
|
|
@ -24,7 +24,6 @@ import org.junit.Before;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.OAuth2Constants;
|
import org.keycloak.OAuth2Constants;
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
import org.keycloak.component.ComponentModel;
|
import org.keycloak.component.ComponentModel;
|
||||||
import org.keycloak.events.Details;
|
import org.keycloak.events.Details;
|
||||||
|
@ -44,7 +43,6 @@ import org.keycloak.storage.client.ClientStorageProvider;
|
||||||
import org.keycloak.storage.client.ClientStorageProviderModel;
|
import org.keycloak.storage.client.ClientStorageProviderModel;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.AssertEvents;
|
import org.keycloak.testsuite.AssertEvents;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.auth.page.AuthRealm;
|
import org.keycloak.testsuite.auth.page.AuthRealm;
|
||||||
import org.keycloak.testsuite.federation.HardcodedClientStorageProviderFactory;
|
import org.keycloak.testsuite.federation.HardcodedClientStorageProviderFactory;
|
||||||
|
@ -79,7 +77,6 @@ import static org.junit.Assert.assertEquals;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.keycloak.testsuite.admin.ApiUtil.findUserByUsername;
|
import static org.keycloak.testsuite.admin.ApiUtil.findUserByUsername;
|
||||||
import org.keycloak.testsuite.util.AdminClientUtil;
|
import org.keycloak.testsuite.util.AdminClientUtil;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that clients can override auth flows
|
* Test that clients can override auth flows
|
||||||
|
@ -113,11 +110,6 @@ public class ClientStorageTest extends AbstractTestRealmKeycloakTest {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
||||||
ComponentRepresentation provider = new ComponentRepresentation();
|
ComponentRepresentation provider = new ComponentRepresentation();
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.keycloak.testsuite.federation.storage;
|
package org.keycloak.testsuite.federation.storage;
|
||||||
|
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.util.MultivaluedHashMap;
|
import org.keycloak.common.util.MultivaluedHashMap;
|
||||||
|
@ -29,7 +28,6 @@ import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.storage.StorageId;
|
import org.keycloak.storage.StorageId;
|
||||||
import org.keycloak.storage.group.GroupStorageProvider;
|
import org.keycloak.storage.group.GroupStorageProvider;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.auth.page.AuthRealm;
|
import org.keycloak.testsuite.auth.page.AuthRealm;
|
||||||
import org.keycloak.testsuite.federation.HardcodedGroupStorageProviderFactory;
|
import org.keycloak.testsuite.federation.HardcodedGroupStorageProviderFactory;
|
||||||
|
@ -39,7 +37,6 @@ import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import static org.hamcrest.Matchers.allOf;
|
import static org.hamcrest.Matchers.allOf;
|
||||||
import static org.hamcrest.Matchers.hasItem;
|
import static org.hamcrest.Matchers.hasItem;
|
||||||
import static org.hamcrest.Matchers.not;
|
import static org.hamcrest.Matchers.not;
|
||||||
|
@ -62,11 +59,6 @@ public class GroupStorageTest extends AbstractTestRealmKeycloakTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
||||||
ComponentRepresentation provider = new ComponentRepresentation();
|
ComponentRepresentation provider = new ComponentRepresentation();
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.keycloak.testsuite.federation.storage;
|
package org.keycloak.testsuite.federation.storage;
|
||||||
|
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
import java.net.URISyntaxException;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
@ -38,11 +37,9 @@ import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.storage.StorageId;
|
import org.keycloak.storage.StorageId;
|
||||||
import org.keycloak.storage.role.RoleStorageProvider;
|
import org.keycloak.storage.role.RoleStorageProvider;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.auth.page.AuthRealm;
|
import org.keycloak.testsuite.auth.page.AuthRealm;
|
||||||
import org.keycloak.testsuite.federation.HardcodedRoleStorageProviderFactory;
|
import org.keycloak.testsuite.federation.HardcodedRoleStorageProviderFactory;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
|
|
||||||
public class RoleStorageTest extends AbstractTestRealmKeycloakTest {
|
public class RoleStorageTest extends AbstractTestRealmKeycloakTest {
|
||||||
|
|
||||||
|
@ -60,11 +57,6 @@ public class RoleStorageTest extends AbstractTestRealmKeycloakTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
public void addProvidersBeforeTest() throws URISyntaxException, IOException {
|
||||||
ComponentRepresentation provider = new ComponentRepresentation();
|
ComponentRepresentation provider = new ComponentRepresentation();
|
||||||
|
|
|
@ -16,7 +16,6 @@
|
||||||
*/
|
*/
|
||||||
package org.keycloak.testsuite.migration;
|
package org.keycloak.testsuite.migration;
|
||||||
|
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
import static org.hamcrest.Matchers.is;
|
import static org.hamcrest.Matchers.is;
|
||||||
|
@ -24,8 +23,6 @@ import static org.hamcrest.Matchers.is;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
|
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import static org.keycloak.testsuite.auth.page.AuthRealm.MASTER;
|
import static org.keycloak.testsuite.auth.page.AuthRealm.MASTER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -36,11 +33,6 @@ public abstract class AbstractJsonFileImportMigrationTest extends AbstractMigrat
|
||||||
protected RealmRepresentation masterRep;
|
protected RealmRepresentation masterRep;
|
||||||
protected String masterTestClientId;
|
protected String masterTestClientId;
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void beforeMigrationTest() {
|
public void beforeMigrationTest() {
|
||||||
migrationRealm = adminClient.realms().realm(MIGRATION);
|
migrationRealm = adminClient.realms().realm(MIGRATION);
|
||||||
|
|
|
@ -17,7 +17,6 @@
|
||||||
|
|
||||||
package org.keycloak.testsuite.model;
|
package org.keycloak.testsuite.model;
|
||||||
|
|
||||||
import org.keycloak.common.Profile.Feature;
|
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
@ -38,13 +37,11 @@ import org.keycloak.services.managers.RealmManager;
|
||||||
import org.keycloak.services.managers.UserConsentManager;
|
import org.keycloak.services.managers.UserConsentManager;
|
||||||
import org.keycloak.storage.client.ClientStorageProviderModel;
|
import org.keycloak.storage.client.ClientStorageProviderModel;
|
||||||
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
import org.keycloak.testsuite.AbstractTestRealmKeycloakTest;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.arquillian.annotation.ModelTest;
|
import org.keycloak.testsuite.arquillian.annotation.ModelTest;
|
||||||
import org.keycloak.testsuite.federation.HardcodedClientStorageProviderFactory;
|
import org.keycloak.testsuite.federation.HardcodedClientStorageProviderFactory;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
* @author <a href="mailto:mposolda@redhat.com">Marek Posolda</a>
|
||||||
|
@ -55,12 +52,6 @@ public class UserConsentModelTest extends AbstractTestRealmKeycloakTest {
|
||||||
|
|
||||||
private static String realmId;
|
private static String realmId;
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
// This test requires legacy client storage
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() {
|
public void before() {
|
||||||
testingClient.server().run(session -> {
|
testingClient.server().run(session -> {
|
||||||
|
|
|
@ -53,7 +53,6 @@ import org.keycloak.representations.idm.UserRepresentation;
|
||||||
import org.keycloak.testsuite.AbstractKeycloakTest;
|
import org.keycloak.testsuite.AbstractKeycloakTest;
|
||||||
import org.keycloak.testsuite.Assert;
|
import org.keycloak.testsuite.Assert;
|
||||||
import org.keycloak.testsuite.AssertEvents;
|
import org.keycloak.testsuite.AssertEvents;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.admin.ApiUtil;
|
import org.keycloak.testsuite.admin.ApiUtil;
|
||||||
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
import org.keycloak.testsuite.arquillian.annotation.EnableFeature;
|
||||||
import org.keycloak.testsuite.util.ClientBuilder;
|
import org.keycloak.testsuite.util.ClientBuilder;
|
||||||
|
@ -747,11 +746,6 @@ public class ResourceOwnerPasswordCredentialsGrantTest extends AbstractKeycloakT
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getAuthenticationSessionsCount() {
|
private int getAuthenticationSessionsCount() {
|
||||||
if (ProfileAssume.isFeatureEnabled(Profile.Feature.MAP_STORAGE)) {
|
|
||||||
// Currently, no access to the authentication sessions is available for map storage.
|
|
||||||
// By return a constant, all tests in this test class can still pass.
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
return testingClient.testing().cache(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME).size();
|
return testingClient.testing().cache(InfinispanConnectionProvider.AUTHENTICATION_SESSIONS_CACHE_NAME).size();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,7 @@ package org.keycloak.testsuite.session;
|
||||||
import org.infinispan.Cache;
|
import org.infinispan.Cache;
|
||||||
import org.junit.After;
|
import org.junit.After;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.BeforeClass;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.keycloak.common.Profile;
|
|
||||||
import org.keycloak.common.util.Retry;
|
import org.keycloak.common.util.Retry;
|
||||||
import org.keycloak.common.util.Time;
|
import org.keycloak.common.util.Time;
|
||||||
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
import org.keycloak.connections.infinispan.InfinispanConnectionProvider;
|
||||||
|
@ -34,7 +32,6 @@ import org.keycloak.models.sessions.infinispan.changes.sessions.SessionData;
|
||||||
import org.keycloak.models.sessions.infinispan.entities.UserSessionEntity;
|
import org.keycloak.models.sessions.infinispan.entities.UserSessionEntity;
|
||||||
import org.keycloak.representations.idm.RealmRepresentation;
|
import org.keycloak.representations.idm.RealmRepresentation;
|
||||||
import org.keycloak.testsuite.AbstractKeycloakTest;
|
import org.keycloak.testsuite.AbstractKeycloakTest;
|
||||||
import org.keycloak.testsuite.ProfileAssume;
|
|
||||||
import org.keycloak.testsuite.runonserver.RunOnServer;
|
import org.keycloak.testsuite.runonserver.RunOnServer;
|
||||||
import org.keycloak.timer.TimerProvider;
|
import org.keycloak.timer.TimerProvider;
|
||||||
|
|
||||||
|
@ -52,11 +49,6 @@ public class LastSessionRefreshUnitTest extends AbstractKeycloakTest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void checkNotMapStorage() {
|
|
||||||
ProfileAssume.assumeFeatureDisabled(Profile.Feature.MAP_STORAGE);
|
|
||||||
}
|
|
||||||
|
|
||||||
@After
|
@After
|
||||||
public void cleanupPeriodicTask() {
|
public void cleanupPeriodicTask() {
|
||||||
// Cleanup unneeded periodic task, which was added during this test
|
// Cleanup unneeded periodic task, which was added during this test
|
||||||
|
|
|
@ -23,7 +23,6 @@ import org.junit.Test;
|
||||||
import org.keycloak.models.dblock.DBLockGlobalLockProviderFactory;
|
import org.keycloak.models.dblock.DBLockGlobalLockProviderFactory;
|
||||||
import org.keycloak.models.locking.GlobalLockProvider;
|
import org.keycloak.models.locking.GlobalLockProvider;
|
||||||
import org.keycloak.models.locking.LockAcquiringTimeoutException;
|
import org.keycloak.models.locking.LockAcquiringTimeoutException;
|
||||||
import org.keycloak.models.locking.NoneGlobalLockProviderFactory;
|
|
||||||
import org.keycloak.testsuite.model.KeycloakModelTest;
|
import org.keycloak.testsuite.model.KeycloakModelTest;
|
||||||
import org.keycloak.testsuite.model.RequireProvider;
|
import org.keycloak.testsuite.model.RequireProvider;
|
||||||
|
|
||||||
|
@ -45,7 +44,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.hasSize;
|
import static org.hamcrest.Matchers.hasSize;
|
||||||
|
|
||||||
@RequireProvider(value = GlobalLockProvider.class,
|
@RequireProvider(value = GlobalLockProvider.class,
|
||||||
exclude = { NoneGlobalLockProviderFactory.PROVIDER_ID, DBLockGlobalLockProviderFactory.PROVIDER_ID }
|
exclude = { DBLockGlobalLockProviderFactory.PROVIDER_ID }
|
||||||
)
|
)
|
||||||
public class GlobalLocksTest extends KeycloakModelTest {
|
public class GlobalLocksTest extends KeycloakModelTest {
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue