[KEYCLOAK-11336] - Updating Quarkus version and some fixes/enhancements for container image
This commit is contained in:
parent
17237ee7fc
commit
d3e59bd0d1
6 changed files with 112 additions and 10 deletions
|
@ -21,4 +21,54 @@ if [ "x$RESOLVED_NAME" = "x" ]; then
|
|||
fi
|
||||
|
||||
DIRNAME=`dirname "$RESOLVED_NAME"`
|
||||
java -Dkeycloak.home.dir=$DIRNAME/../ -Dkeycloak.theme.dir=$DIRNAME/../themes -Djava.net.preferIPv4Stack=true -cp "$DIRNAME/../providers/*:$DIRNAME/../lib/keycloak-runner.jar" io.quarkus.runner.GeneratedMain "$@"
|
||||
|
||||
SERVER_OPTS="-Dkeycloak.home.dir=$DIRNAME/../ -Dkeycloak.theme.dir=$DIRNAME/../themes -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
|
||||
|
||||
DEBUG_MODE="${DEBUG:-false}"
|
||||
DEBUG_PORT="${DEBUG_PORT:-8787}"
|
||||
|
||||
while [ "$#" -gt 0 ]
|
||||
do
|
||||
case "$1" in
|
||||
--debug)
|
||||
DEBUG_MODE=true
|
||||
if [ -n "$2" ] && [ "$2" = `echo "$2" | sed 's/-//'` ]; then
|
||||
DEBUG_PORT=$2
|
||||
shift
|
||||
fi
|
||||
;;
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break;;
|
||||
*)
|
||||
SERVER_OPTS="$SERVER_OPTS $1"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
#
|
||||
# Specify options to pass to the Java VM.
|
||||
#
|
||||
if [ "x$JAVA_OPTS" = "x" ]; then
|
||||
JAVA_OPTS="-Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -Djava.net.preferIPv4Stack=true"
|
||||
else
|
||||
echo "JAVA_OPTS already set in environment; overriding default settings with values: $JAVA_OPTS"
|
||||
fi
|
||||
|
||||
# Set debug settings if not already set
|
||||
if [ "$DEBUG_MODE" = "true" ]; then
|
||||
DEBUG_OPT=`echo $JAVA_OPTS | $GREP "\-agentlib:jdwp"`
|
||||
if [ "x$DEBUG_OPT" = "x" ]; then
|
||||
JAVA_OPTS="$JAVA_OPTS -agentlib:jdwp=transport=dt_socket,address=$DEBUG_PORT,server=y,suspend=n"
|
||||
else
|
||||
echo "Debug already enabled in JAVA_OPTS, ignoring --debug argument"
|
||||
fi
|
||||
fi
|
||||
|
||||
CLASSPATH_OPTS="$DIRNAME/../providers/*:$DIRNAME/../lib/keycloak-runner.jar"
|
||||
|
||||
exec java $JAVA_OPTS $SERVER_OPTS -cp $CLASSPATH_OPTS io.quarkus.runner.GeneratedMain "$@"
|
|
@ -32,10 +32,6 @@
|
|||
</exclusion>
|
||||
</exclusions>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-server-spi-private</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-services</artifactId>
|
||||
|
@ -44,6 +40,10 @@
|
|||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-server-spi-private</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.keycloak</groupId>
|
||||
<artifactId>keycloak-server-spi</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.infinispan</groupId>
|
||||
<artifactId>infinispan-core</artifactId>
|
||||
|
|
|
@ -44,7 +44,11 @@ public final class QuarkusCacheManagerProvider implements ManagedCacheManagerPro
|
|||
try {
|
||||
InputStream configurationStream = loadConfiguration(config);
|
||||
ConfigurationBuilderHolder builder = new ParserRegistry().parse(configurationStream);
|
||||
|
||||
if (builder.getNamedConfigurationBuilders().get("sessions").clustering().cacheMode().isClustered()) {
|
||||
configureTransportStack(config, builder);
|
||||
}
|
||||
|
||||
return (C) new DefaultCacheManager(builder, true);
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
|
|
|
@ -21,17 +21,34 @@ import io.quarkus.runtime.ShutdownEvent;
|
|||
import io.quarkus.runtime.StartupEvent;
|
||||
import javax.enterprise.context.ApplicationScoped;
|
||||
import javax.enterprise.event.Observes;
|
||||
import javax.inject.Inject;
|
||||
import javax.servlet.ServletContext;
|
||||
|
||||
import org.keycloak.Config;
|
||||
import org.keycloak.models.KeycloakSession;
|
||||
import org.keycloak.models.KeycloakSessionFactory;
|
||||
import org.keycloak.models.KeycloakTransactionManager;
|
||||
import org.keycloak.platform.Platform;
|
||||
import org.keycloak.services.ServicesLogger;
|
||||
import org.keycloak.services.managers.ApplianceBootstrap;
|
||||
|
||||
@ApplicationScoped
|
||||
public class QuarkusLifecycleObserver {
|
||||
|
||||
private static final String KEYCLOAK_ADMIN_ENV_VAR = "KEYCLOAK_ADMIN";
|
||||
private static final String KEYCLOAK_ADMIN_PASSWORD_ENV_VAR = "KEYCLOAK_ADMIN_PASSWORD";
|
||||
|
||||
@Inject
|
||||
ServletContext servletContext;
|
||||
|
||||
private void onStartupEvent(@Observes StartupEvent event) {
|
||||
|
||||
Runnable startupHook = ((QuarkusPlatform) Platform.getPlatform()).startupHook;
|
||||
|
||||
if (startupHook != null)
|
||||
if (startupHook != null) {
|
||||
startupHook.run();
|
||||
createAdminUser();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
@ -44,4 +61,35 @@ public class QuarkusLifecycleObserver {
|
|||
|
||||
}
|
||||
|
||||
private void createAdminUser() {
|
||||
String adminUserName = System.getenv(KEYCLOAK_ADMIN_ENV_VAR);
|
||||
String adminPassword = System.getenv(KEYCLOAK_ADMIN_PASSWORD_ENV_VAR);
|
||||
|
||||
if ((adminUserName == null || adminUserName.trim().length() == 0)
|
||||
|| (adminPassword == null || adminPassword.trim().length() == 0)) {
|
||||
return;
|
||||
}
|
||||
|
||||
KeycloakSessionFactory sessionFactory = (KeycloakSessionFactory) servletContext
|
||||
.getAttribute(KeycloakSessionFactory.class.getName());
|
||||
KeycloakSession session = sessionFactory.create();
|
||||
KeycloakTransactionManager transaction = session.getTransactionManager();
|
||||
|
||||
try {
|
||||
transaction.begin();
|
||||
|
||||
new ApplianceBootstrap(session).createMasterRealmUser(adminUserName, adminPassword);
|
||||
ServicesLogger.LOGGER.addUserSuccess(adminUserName, Config.getAdminRealm());
|
||||
|
||||
transaction.commit();
|
||||
} catch (IllegalStateException e) {
|
||||
session.getTransactionManager().rollback();
|
||||
ServicesLogger.LOGGER.addUserFailedUserExists(adminUserName, Config.getAdminRealm());
|
||||
} catch (Throwable t) {
|
||||
session.getTransactionManager().rollback();
|
||||
ServicesLogger.LOGGER.addUserFailed(t, adminUserName, Config.getAdminRealm());
|
||||
} finally {
|
||||
session.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<quarkus.version>0.25.0</quarkus.version>
|
||||
<quarkus.version>1.0.1.Final</quarkus.version>
|
||||
<resteasy.version>4.3.1.Final</resteasy.version>
|
||||
|
||||
<surefire-plugin.version>2.22.0</surefire-plugin.version>
|
||||
|
|
|
@ -269,8 +269,8 @@
|
|||
</dependency>
|
||||
<!--TODO Should come from Hibernate extension -->
|
||||
<dependency>
|
||||
<groupId>javax.persistence</groupId>
|
||||
<artifactId>javax.persistence-api</artifactId>
|
||||
<groupId>jakarta.persistence</groupId>
|
||||
<artifactId>jakarta.persistence-api</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.hibernate</groupId>
|
||||
|
|
Loading…
Reference in a new issue