Fix test configuration for remote infinispan

Closes #39097

Signed-off-by: Pedro Ruivo <pruivo@redhat.com>
This commit is contained in:
Pedro Ruivo 2025-04-22 07:25:05 +01:00 committed by GitHub
parent 0589db5def
commit d7b9a0691e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 28 additions and 27 deletions

View File

@ -63,14 +63,14 @@ import static org.wildfly.security.sasl.util.SaslMechanismInformation.Names.SCRA
*/
public class DefaultCacheRemoteConfigProviderFactory implements CacheRemoteConfigProviderFactory, CacheRemoteConfigProvider, EnvironmentDependentProviderFactory {
private static final String PROVIDER_ID = "default";
public static final String PROVIDER_ID = "default";
private static final Logger logger = Logger.getLogger(MethodHandles.lookup().lookupClass());
// configuration
private static final String PROPERTIES_FILE = "propertiesFile";
private static final String CLIENT_INTELLIGENCE = "clientIntelligence";
private static final String HOSTNAME = "hostname";
private static final String PORT = "port";
public static final String HOSTNAME = "hostname";
public static final String PORT = "port";
private static final String TLS_ENABLED = "tlsEnabled";
private static final String TLS_SNI_HOSTNAME = "tlsSniHostname";
private static final String USERNAME = "username";
@ -199,15 +199,17 @@ public class DefaultCacheRemoteConfigProviderFactory implements CacheRemoteConfi
}
private void configureHostname(ConfigurationBuilder builder) {
var cacheRemoteHost = keycloakConfiguration.get(HOSTNAME);
if (cacheRemoteHost == null) {
var host = keycloakConfiguration.get(HOSTNAME);
if (host == null) {
logger.debug("Hot Rod hostname not configured.");
return;
}
var port = keycloakConfiguration.getInt(PORT, ConfigurationProperties.DEFAULT_HOTROD_PORT);
logger.debugf("Hot Rod connecting to %s:%s", host, port);
builder.addServer()
.host(cacheRemoteHost)
.port(keycloakConfiguration.getInt(PORT, ConfigurationProperties.DEFAULT_HOTROD_PORT));
.host(host)
.port(port);
}
private void configureConnectionPool(ConfigurationBuilder builder) {

View File

@ -183,16 +183,14 @@
"async": "${keycloak.connectionsInfinispan.async:false}",
"sessionsOwners": "${keycloak.connectionsInfinispan.sessionsOwners:1}",
"l1Lifespan": "${keycloak.connectionsInfinispan.l1Lifespan:600000}",
"remoteStoreHost": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
"remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort:11222}",
"embedded": "${keycloak.connectionsInfinispan.embedded:true}"
}
},
"cacheRemote": {
"default": {
"hostname": "${keycloak.connectionsInfinispan.remoteStoreServer:localhost}",
"port": "${keycloak.connectionsInfinispan.remoteStorePort:11222}"
"hostname": "${keycloak.cacheRemote.hostname:localhost}",
"port": "${keycloak.cacheRemote.port:11222}"
}
},

View File

@ -170,9 +170,9 @@
<dependency.keystore>${dependency.keystore.root}/keycloak.jks</dependency.keystore>
<dependency.keystore.password>secret</dependency.keystore.password>
<keycloak.connectionsInfinispan.remoteStoreServer>localhost</keycloak.connectionsInfinispan.remoteStoreServer>
<keycloak.connectionsInfinispan.remoteStorePort>12232</keycloak.connectionsInfinispan.remoteStorePort>
<keycloak.connectionsInfinispan.remoteStorePort.2>13232</keycloak.connectionsInfinispan.remoteStorePort.2>
<keycloak.cacheRemote.hostname>localhost</keycloak.cacheRemote.hostname>
<keycloak.cacheRemote.port>12232</keycloak.cacheRemote.port>
<keycloak.cacheRemote.port.2>13232</keycloak.cacheRemote.port.2>
<keycloak.connectionsJpa.url.crossdc>jdbc:h2:mem:test-dc-shared</keycloak.connectionsJpa.url.crossdc>
<keycloak.testsuite.logging.pattern>%d{HH:mm:ss,SSS} %-5p [%c] %m%n</keycloak.testsuite.logging.pattern>
@ -582,9 +582,9 @@
<cache.server.java.home>${cache.server.java.home}</cache.server.java.home>
<cache.server.auth>${cache.server.auth}</cache.server.auth>
<keycloak.connectionsInfinispan.remoteStorePort>${keycloak.connectionsInfinispan.remoteStorePort}</keycloak.connectionsInfinispan.remoteStorePort>
<keycloak.connectionsInfinispan.remoteStorePort.2>${keycloak.connectionsInfinispan.remoteStorePort.2}</keycloak.connectionsInfinispan.remoteStorePort.2>
<keycloak.connectionsInfinispan.remoteStoreServer>${keycloak.connectionsInfinispan.remoteStoreServer}</keycloak.connectionsInfinispan.remoteStoreServer>
<keycloak.cacheRemote.port>${keycloak.cacheRemote.port}</keycloak.cacheRemote.port>
<keycloak.cacheRemote.port.2>${keycloak.cacheRemote.port.2}</keycloak.cacheRemote.port.2>
<keycloak.cacheRemote.hostname>${keycloak.cacheRemote.hostname}</keycloak.cacheRemote.hostname>
<keycloak.connectionsInfinispan.sessionsOwners>${keycloak.connectionsInfinispan.sessionsOwners}</keycloak.connectionsInfinispan.sessionsOwners>
<keycloak.testsuite.logging.pattern>${keycloak.testsuite.logging.pattern}</keycloak.testsuite.logging.pattern>

View File

@ -25,14 +25,14 @@ import org.junit.runner.Description;
import org.junit.runners.model.Statement;
import org.keycloak.cluster.infinispan.remote.RemoteInfinispanClusterProviderFactory;
import org.keycloak.connections.infinispan.remote.RemoteLoadBalancerCheckProviderFactory;
import org.keycloak.infinispan.util.InfinispanUtils;
import org.keycloak.models.UserSessionSpi;
import org.keycloak.models.sessions.infinispan.remote.RemoteInfinispanAuthenticationSessionProviderFactory;
import org.keycloak.models.sessions.infinispan.remote.RemoteInfinispanSingleUseObjectProviderFactory;
import org.keycloak.models.sessions.infinispan.remote.RemoteStickySessionEncoderProviderFactory;
import org.keycloak.models.sessions.infinispan.remote.RemoteUserLoginFailureProviderFactory;
import org.keycloak.models.sessions.infinispan.remote.RemoteUserSessionProviderFactory;
import org.keycloak.provider.ProviderFactory;
import org.keycloak.spi.infinispan.CacheRemoteConfigProviderSpi;
import org.keycloak.spi.infinispan.impl.remote.DefaultCacheRemoteConfigProviderFactory;
import org.keycloak.testsuite.model.Config;
import org.keycloak.testsuite.model.HotRodServerRule;
import org.keycloak.testsuite.model.KeycloakModelParameters;
@ -66,16 +66,20 @@ public class RemoteInfinispan extends KeycloakModelParameters {
@Override
public void updateConfig(Config cf) {
synchronized (lock) {
NODE_COUNTER.incrementAndGet();
var nodeCounter = NODE_COUNTER.incrementAndGet();
var siteName = siteName(nodeCounter);
cf.spi("connectionsInfinispan")
.provider("default")
.config("embedded", "true")
.config("clustered", "true")
.config("useKeycloakTimeService", "true")
.config("nodeName", "node-" + NODE_COUNTER.get())
.config("siteName", siteName(NODE_COUNTER.get()))
.config("remoteStorePort", siteName(NODE_COUNTER.get()).equals("site-2") ? "11333" : "11222")
.config("jgroupsUdpMcastAddr", mcastAddr(NODE_COUNTER.get()));
.config("nodeName", "node-" + nodeCounter)
.config("siteName", siteName)
.config("jgroupsUdpMcastAddr", mcastAddr(nodeCounter));
cf.spi(CacheRemoteConfigProviderSpi.SPI_NAME)
.provider(DefaultCacheRemoteConfigProviderFactory.PROVIDER_ID)
.config(DefaultCacheRemoteConfigProviderFactory.HOSTNAME, "localhost")
.config(DefaultCacheRemoteConfigProviderFactory.PORT, siteName.equals("site-2") ? "11333" : "11222");
}
}

View File

@ -132,9 +132,6 @@
"async": "${keycloak.connectionsInfinispan.async:}",
"sessionsOwners": "${keycloak.connectionsInfinispan.sessionsOwners:}",
"l1Lifespan": "${keycloak.connectionsInfinispan.l1Lifespan:}",
"remoteStoreEnabled": "${keycloak.connectionsInfinispan.remoteStoreEnabled:}",
"remoteStoreHost": "${keycloak.connectionsInfinispan.remoteStoreServer:}",
"remoteStorePort": "${keycloak.connectionsInfinispan.remoteStorePort:}",
"embedded": "${keycloak.connectionsInfinispan.embedded:true}"
}
},