package org.infinispan.client.hotrod; import java.util.Collections; import java.util.Map; import org.infinispan.client.hotrod.configuration.ConfigurationBuilder; import org.infinispan.client.hotrod.test.HotRodClientTestingUtil; import org.infinispan.manager.EmbeddedCacheManager; import org.infinispan.server.core.security.simple.SimpleServerAuthenticationProvider; import org.infinispan.server.hotrod.HotRodServer; import org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder; import org.infinispan.server.hotrod.test.HotRodTestingUtil; import org.infinispan.test.SingleCacheManagerTest; import org.infinispan.util.logging.Log; import org.infinispan.util.logging.LogFactory; /** * @author vjuranek * @since 9.0 */ public abstract class AbstractAuthenticationTest extends SingleCacheManagerTest { private static final Log log = LogFactory.getLog(AuthenticationTest.class); protected RemoteCacheManager remoteCacheManager; protected HotRodServer hotrodServer; @Override protected abstract EmbeddedCacheManager createCacheManager() throws Exception; protected abstract SimpleServerAuthenticationProvider createAuthenticationProvider(); protected ConfigurationBuilder initServerAndClient() { return initServerAndClient(Collections.emptyMap()); } ConfigurationBuilder initServerAndClient(Map<String, String> mechProperties) { hotrodServer = new HotRodServer(); HotRodServerConfigurationBuilder serverBuilder = HotRodTestingUtil.getDefaultHotRodConfiguration(); serverBuilder.authentication() .enable() .serverName("localhost") .addAllowedMech("CRAM-MD5") .serverAuthenticationProvider(createAuthenticationProvider()); serverBuilder.authentication().mechProperties(mechProperties); hotrodServer.start(serverBuilder.build(), cacheManager); log.info("Started server on port: " + hotrodServer.getPort()); ConfigurationBuilder clientBuilder = new ConfigurationBuilder(); clientBuilder .addServer() .host("127.0.0.1") .port(hotrodServer.getPort()) .socketTimeout(3000) .maxRetries(3) .connectionPool() .maxActive(1) .security() .authentication() .enable() .saslMechanism("CRAM-MD5") .connectionPool() .maxActive(1) .timeBetweenEvictionRuns(2000); return clientBuilder; } @Override protected void teardown() { HotRodClientTestingUtil.killRemoteCacheManager(remoteCacheManager); HotRodClientTestingUtil.killServers(hotrodServer); super.teardown(); } }