Hello everyone!
I’m writing some integration and sometimes need to use debugger on keycloak side.
When I run it this way:
../mvnw -Dkc.home.dir=$DIR \
-Dmaven.repo.local=/var/m2 \
-Dkc.db-driver=org.postgresql.Driver \
-DdebugHost=0.0.0.0 -f server/pom.xml compile quarkus:dev \
-DskipTestsuite -DskipExamples -DskipTests \
-Dquarkus.class-loading.removed-artifacts="io.quarkus:quarkus-jdbc-oracle,io.quarkus:quarkus-jdbc-oracle-deployment" \
-Dquarkus.args="start-dev --db=postgres --cache=local --db-driver=org.postgresql.Driver \
--spi-theme-static-max-age=-1 --spi-theme-cache-themes=false --spi-theme-cache-templates=false"
It’s almost working but it looks like core subproject is attached as if it’s <16 java, so I got exception: EdDSA algorithms not supported in this JDK version
When I run it this way:
java -Dkc.home.dir=$DIR -jar server/target/lib/quarkus-run.jar start-dev
It’s working fine.
I tried with openjdk-17-jdk-headless and openjdk-21-jdk-headless
I tried also the following paramters:
-Dmaven.compiler.source=21 \
-Dmaven.compiler.target=21 \
-Dmaven.compiler.release=21 \
-Djava.version=17 \
And tried to change core/pom.xml
<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<maven.compiler.release>17</maven.compiler.release>
<timestamp>${maven.build.timestamp}</timestamp>
<maven.build.timestamp.format>yyyy-MM-dd HH:mm</maven.build.timestamp.format>
</properties>
I use 26.0.0 tag and also tried on 25…something.
Probably someone from core devs can suggest how to make the trick.
Thank you in advance ![]()
The exception details:
Summary
Uncaught server error: java.lang.UnsupportedOperationException: EdDSA algorithms not supported in this JDK version
at org.keycloak.jose.jwk.JWKBuilder.okp(JWKBuilder.java:55)
at org.keycloak.protocol.oidc.utils.JWKSServerUtils.lambda$getRealmJwks$3(JWKSServerUtils.java:50)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)
at java.base/java.util.stream.Streams$StreamBuilderImpl.forEachRemaining(Streams.java:411)
at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)
at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:575)
at java.base/java.util.stream.AbstractPipeline.evaluateToArrayNode(AbstractPipeline.java:260)
at java.base/java.util.stream.ReferencePipeline.toArray(ReferencePipeline.java:616)
at org.keycloak.protocol.oidc.utils.JWKSServerUtils.getRealmJwks(JWKSServerUtils.java:55)
at org.keycloak.protocol.oidc.OIDCLoginProtocolService.certs(OIDCLoginProtocolService.java:203)
at org.keycloak.protocol.oidc.OIDCLoginProtocolService$quarkusrestinvoker$certs_1733fcf7c61aca04aebce7f74553f34fd667b730.invoke(Unknown Source)
at org.jboss.resteasy.reactive.server.handlers.InvocationHandler.handle(InvocationHandler.java:29)
at io.quarkus.resteasy.reactive.server.runtime.QuarkusResteasyReactiveRequestContext.invokeHandler(QuarkusResteasyReactiveRequestContext.java:141)
at org.jboss.resteasy.reactive.common.core.AbstractResteasyReactiveContext.run(AbstractResteasyReactiveContext.java:147)
at io.quarkus.vertx.core.runtime.VertxCoreRecorder$14.runWith(VertxCoreRecorder.java:635)
at org.jboss.threads.EnhancedQueueExecutor$Task.doRunWith(EnhancedQueueExecutor.java:2516)
at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2495)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1521)
at org.jboss.threads.DelegatingRunnable.run(DelegatingRunnable.java:11)
at org.jboss.threads.ThreadLocalResettingRunnable.run(ThreadLocalResettingRunnable.java:11)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1583)