-
Notifications
You must be signed in to change notification settings - Fork 3k
Description
Describe the bug
Instead of configuring Quarkus in application.properties
, we use environment variable according to the MicroProfile specification. However, the extension quarkus-oidc:1.0.0.CR1
does not recognized these values at start up.
This happens when running Quarkus with: ./gradlew quarkusDev
.
Expected behavior
Quarkus OIDC uses values from the environment variables.
Actual behavior
Quarkus OIDC has empty values for these properties:
quarkus.oidc.auth-server-url
quarkus.oidc.public-key
quarkus.oidc.client-id
quarkus.oidc.credentials.secret
To Reproduce
Steps to reproduce the behavior:
- Enable
quarkus-oidc
- Define 4 oidc properties as environment variables as:
QUARKUS_OIDC_CLIENT_ID=myclient
QUARKUS_OIDC_AUTH_SERVER_URL=http://localhost:8899/auth/realms/myrealm
QUARKUS_OIDC_PUBLIC_KEY=abdc
QUARKUS_OIDC_CREDENTIALS_SECRET=xyz
- You will get this error:
java.lang.RuntimeException: java.net.MalformedURLException: no protocol: /.well-known/openid-configuration
at io.vertx.ext.auth.oauth2.impl.OAuth2API.makeRequest(OAuth2API.java:112)
at io.vertx.ext.auth.oauth2.providers.OpenIDConnectAuth.discover(OpenIDConnectAuth.java:42)
at io.vertx.ext.auth.oauth2.providers.KeycloakAuth.discover(KeycloakAuth.java:120)
at io.quarkus.oidc.runtime.OidcRecorder.setup(OidcRecorder.java:49)
at io.quarkus.deployment.steps.OidcBuildStep$setup33.deploy_0(OidcBuildStep$setup33.zig:92)
at io.quarkus.deployment.steps.OidcBuildStep$setup33.deploy(OidcBuildStep$setup33.zig:36)
at io.quarkus.runner.ApplicationImpl.doStart(ApplicationImpl.zig:244)
at io.quarkus.runtime.Application.start(Application.java:94)
at io.quarkus.runner.RuntimeRunner.run(RuntimeRunner.java:143)
at io.quarkus.dev.DevModeMain.doStart(DevModeMain.java:177)
at io.quarkus.dev.DevModeMain.start(DevModeMain.java:95)
at io.quarkus.dev.DevModeMain.main(DevModeMain.java:66)
Caused by: java.net.MalformedURLException: no protocol: /.well-known/openid-configuration
at java.base/java.net.URL.<init>(URL.java:667)
at java.base/java.net.URL.<init>(URL.java:563)
at java.base/java.net.URL.<init>(URL.java:510)
at io.vertx.ext.auth.oauth2.impl.OAuth2API.makeRequest(OAuth2API.java:93)
Environment (please complete the following information):
- Output of
uname -a
orver
:Darwin Lorents-MacBook-Pro.local 18.5.0 Darwin Kernel Version 18.5.0: Mon Mar 11 20:40:32 PDT 2019; root:xnu-4903.251.3~3/RELEASE_X86_64 x86_64
- Output of
java -version
:OpenJDK 64-Bit Server VM AdoptOpenJDK (build 13+33, mixed mode, sharing)
- Quarkus version or git rev:
1.0.0.CR1
Additional context
When logging values with ConfigProvider.getConfig().getValue("quarkus.oidc.client-id", String.class)
or with @ConfigProperty(name = "quarkus.oidc.client-id")
, it works fine.
OIDC extension seems to use io.quarkus.runtime.annotations.ConfigItem
, which does seem to work as expected with environment variables