[KEYCLOAK-11330] - Initial changes to get testsuite working for Quarkus
This commit is contained in:
parent
ddeaa6b3c4
commit
357982adf6
9 changed files with 27 additions and 12 deletions
|
@ -73,15 +73,9 @@ class KeycloakProcessor {
|
|||
Map<Spi, Set<Class<? extends ProviderFactory>>> result = new HashMap<>();
|
||||
|
||||
for (Spi spi : pm.loadSpis()) {
|
||||
List<ProviderFactory> loaded = pm.load(spi);
|
||||
|
||||
if (loaded.isEmpty()) {
|
||||
continue;
|
||||
}
|
||||
|
||||
Set<Class<? extends ProviderFactory>> factories = new HashSet<>();
|
||||
|
||||
for (ProviderFactory factory : loaded) {
|
||||
for (ProviderFactory factory : pm.load(spi)) {
|
||||
if (Arrays.asList(
|
||||
JBossJtaTransactionManagerLookup.class,
|
||||
DefaultJpaConnectionProviderFactory.class,
|
||||
|
|
|
@ -381,8 +381,6 @@ public class QuarkusJpaConnectionProviderFactory implements JpaConnectionProvide
|
|||
|
||||
if (createMasterRealm) {
|
||||
applianceBootstrap.createMasterRealm();
|
||||
//TODO: Remove this to reduce startup time. See https://issues.redhat.com/browse/KEYCLOAK-14308.
|
||||
DefaultKeyProviders.createProviders(session.getContext().getRealm());
|
||||
}
|
||||
|
||||
session.getTransactionManager().commit();
|
||||
|
|
|
@ -19,6 +19,8 @@ package org.keycloak.provider.quarkus;
|
|||
|
||||
import io.vertx.core.http.HttpServerRequest;
|
||||
import io.vertx.ext.web.RoutingContext;
|
||||
import org.jboss.resteasy.plugins.server.servlet.ResteasyContextParameters;
|
||||
import org.jboss.resteasy.spi.ResteasyDeployment;
|
||||
import org.keycloak.common.ClientConnection;
|
||||
import org.keycloak.common.util.Resteasy;
|
||||
import org.keycloak.models.KeycloakSession;
|
||||
|
@ -47,6 +49,12 @@ public class QuarkusFilter implements javax.ws.rs.container.ContainerRequestFilt
|
|||
@Inject
|
||||
RoutingContext routingContext;
|
||||
|
||||
public QuarkusFilter() {
|
||||
//TODO: a temporary hack for https://github.com/quarkusio/quarkus/issues/9647, we need to disable the sanitizer to avoid
|
||||
// escaping text/html responses from the server
|
||||
Resteasy.getContextData(ResteasyDeployment.class).setProperty(ResteasyContextParameters.RESTEASY_DISABLE_HTML_SANITIZER, Boolean.TRUE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void filter(ContainerRequestContext containerRequestContext) {
|
||||
KeycloakSessionFactory sessionFactory = keycloakApplication.getSessionFactory();
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#quarkus.log.level = DEBUG
|
||||
quarkus.http.root-path=/auth
|
||||
quarkus.application.name=Keycloak
|
||||
resteasy.disable.html.sanitizer = true
|
||||
quarkus.banner.enabled=false
|
|
@ -159,6 +159,10 @@ public class AuthServerTestEnricher {
|
|||
return AUTH_SERVER_CONTAINER.equals("auth-server-remote");
|
||||
}
|
||||
|
||||
public static boolean isAuthServerQuarkus() {
|
||||
return AUTH_SERVER_CONTAINER.equals("auth-server-quarkus");
|
||||
}
|
||||
|
||||
public static String getAuthServerContextRoot() {
|
||||
return getAuthServerContextRoot(0);
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ public @interface AuthServerContainerExclude {
|
|||
AuthServer[] value();
|
||||
|
||||
public enum AuthServer {
|
||||
REMOTE
|
||||
REMOTE,
|
||||
QUARKUS
|
||||
}
|
||||
}
|
||||
|
|
|
@ -131,6 +131,8 @@ public class KeycloakQuarkusServerDeployableContainer implements DeployableConta
|
|||
}
|
||||
|
||||
try {
|
||||
// wait before checking for opening a new connection
|
||||
Thread.sleep(1000);
|
||||
connection = (HttpURLConnection) contextRoot.openConnection();
|
||||
|
||||
connection.setReadTimeout((int) getStartTimeout());
|
||||
|
|
|
@ -51,6 +51,10 @@ public class AuthServerExcludeExecutionDecider implements TestExecutionDecider {
|
|||
if (AuthServerTestEnricher.isAuthServerRemote() && excluded.contains(AuthServer.REMOTE)) {
|
||||
return ExecutionDecision.dontExecute("Excluded by @AuthServerContainerExclude.");
|
||||
}
|
||||
|
||||
if (AuthServerTestEnricher.isAuthServerQuarkus() && excluded.contains(AuthServer.QUARKUS)) {
|
||||
return ExecutionDecision.dontExecute("Excluded by @AuthServerContainerExclude.");
|
||||
}
|
||||
} else { //class
|
||||
if (testContext.getTestClass().isAnnotationPresent(AuthServerContainerExclude.class)) {
|
||||
List<AuthServer> excluded = Arrays.asList(((AuthServerContainerExclude) testContext.getTestClass().getAnnotation(AuthServerContainerExclude.class)).value());
|
||||
|
@ -58,6 +62,10 @@ public class AuthServerExcludeExecutionDecider implements TestExecutionDecider {
|
|||
if (AuthServerTestEnricher.isAuthServerRemote() && excluded.contains(AuthServer.REMOTE)) {
|
||||
return ExecutionDecision.dontExecute("Excluded by @AuthServerContainerExclude.");
|
||||
}
|
||||
|
||||
if (AuthServerTestEnricher.isAuthServerQuarkus() && excluded.contains(AuthServer.QUARKUS)) {
|
||||
return ExecutionDecision.dontExecute("Excluded by @AuthServerContainerExclude.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -66,7 +66,7 @@ import static org.keycloak.testsuite.admin.ApiUtil.findUserByUsername;
|
|||
*
|
||||
* @author <a href="mailto:psilva@redhat.com">Pedro Igor</a>
|
||||
*/
|
||||
@AuthServerContainerExclude(AuthServer.REMOTE)
|
||||
@AuthServerContainerExclude({AuthServer.REMOTE, AuthServer.QUARKUS})
|
||||
@EnableFeature(value = OPENSHIFT_INTEGRATION, skipRestart = true)
|
||||
public final class OpenshiftClientStorageTest extends AbstractTestRealmKeycloakTest {
|
||||
|
||||
|
|
Loading…
Reference in a new issue