Skip to content

Commit 85ce4f5

Browse files
committed
Avoid detecting the container runtime in OIDC Dev Services
We check this condition last so that we can avoid detecting the container if not needed. It will avoid issues with integration-tests/oidc-wiremock on GitHub Actions Windows runners.
1 parent 9b2b5c0 commit 85ce4f5

File tree

2 files changed

+34
-33
lines changed

2 files changed

+34
-33
lines changed

extensions/devservices/oidc/src/main/java/io/quarkus/devservices/oidc/OidcDevServicesProcessor.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -145,10 +145,6 @@ private static boolean shouldNotStartServer(OidcDevServicesConfig devServicesCon
145145
LOG.debug("Not starting Dev Services for OIDC as it has been disabled in the config");
146146
return true;
147147
}
148-
if (devServicesConfig.enabled().isEmpty() && dockerStatusBuildItem.isContainerRuntimeAvailable()) {
149-
LOG.debug("Not starting Dev Services for OIDC as detected support the container functionality");
150-
return true;
151-
}
152148
if (!isOidcEnabled()) {
153149
LOG.debug("Not starting Dev Services for OIDC as OIDC extension has been disabled in the config");
154150
return true;
@@ -165,6 +161,11 @@ private static boolean shouldNotStartServer(OidcDevServicesConfig devServicesCon
165161
LOG.debug("Not starting Dev Services for OIDC as 'quarkus.oidc.provider' has been provided");
166162
return true;
167163
}
164+
if (devServicesConfig.enabled().isEmpty() && dockerStatusBuildItem.isContainerRuntimeAvailable()) {
165+
LOG.debug(
166+
"Not starting Dev Services for OIDC as a container runtime is available and a Keycloak Dev Services will be started");
167+
return true;
168+
}
168169
return false;
169170
}
170171

integration-tests/oidc-wiremock/src/main/resources/application.properties

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ quarkus.oidc.no-discovery.client-id=quarkus-app
1414
quarkus.oidc.no-discovery.credentials.secret=secret
1515
quarkus.oidc.no-discovery.authentication.scopes=profile,email,phone
1616

17-
quarkus.oidc.code-flow.auth-server-url=${keycloak.url}/realms/quarkus/
17+
quarkus.oidc.code-flow.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
1818
quarkus.oidc.code-flow.client-id=quarkus-web-app
1919
quarkus.oidc.code-flow.authentication.user-info-required=false
2020
quarkus.oidc.code-flow.authentication.verify-access-token=false
@@ -28,7 +28,7 @@ quarkus.oidc.code-flow.token.audience=https://id.server.example.com
2828
quarkus.oidc.code-flow.token.refresh-expired=true
2929
quarkus.oidc.code-flow.token.refresh-token-time-skew=5M
3030

31-
quarkus.oidc.code-flow-verify-id-and-access-tokens.auth-server-url=${keycloak.url}/realms/quarkus/
31+
quarkus.oidc.code-flow-verify-id-and-access-tokens.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
3232
quarkus.oidc.code-flow-verify-id-and-access-tokens.client-id=quarkus-web-app
3333
quarkus.oidc.code-flow-verify-id-and-access-tokens.authentication.user-info-required=false
3434
quarkus.oidc.code-flow-verify-id-and-access-tokens.authentication.verify-access-token=true
@@ -37,49 +37,49 @@ quarkus.oidc.code-flow-verify-id-and-access-tokens.application-type=web-app
3737
quarkus.oidc.code-flow-verify-id-and-access-tokens.token.audience=any
3838

3939
quarkus.oidc.code-flow-opaque-access-token.provider=github
40-
quarkus.oidc.code-flow-opaque-access-token.auth-server-url=${keycloak.url}/realms/quarkus/
40+
quarkus.oidc.code-flow-opaque-access-token.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
4141
quarkus.oidc.code-flow-opaque-access-token.authorization-path=/
42-
quarkus.oidc.code-flow-opaque-access-token.token-path=${keycloak.url}/realms/quarkus/opaque-access-token
42+
quarkus.oidc.code-flow-opaque-access-token.token-path=${keycloak.url:replaced-by-test-resource}/realms/quarkus/opaque-access-token
4343
quarkus.oidc.code-flow-opaque-access-token.user-info-path=protocol/openid-connect/userinfo
4444
quarkus.oidc.code-flow-opaque-access-token.client-id=quarkus-web-app
4545
quarkus.oidc.code-flow-opaque-access-token.credentials.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow
4646
quarkus.oidc.code-flow-opaque-access-token.tenant-paths=/code-flow-opaque-access-token/*
4747

48-
quarkus.oidc.code-flow-encrypted-id-token-jwk.auth-server-url=${keycloak.url}/realms/quarkus/
48+
quarkus.oidc.code-flow-encrypted-id-token-jwk.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
4949
quarkus.oidc.code-flow-encrypted-id-token-jwk.client-id=quarkus-web-app
5050
quarkus.oidc.code-flow-encrypted-id-token-jwk.credentials.secret=secret
5151
quarkus.oidc.code-flow-encrypted-id-token-jwk.application-type=web-app
52-
quarkus.oidc.code-flow-encrypted-id-token-jwk.token-path=${keycloak.url}/realms/quarkus/encrypted-id-token
52+
quarkus.oidc.code-flow-encrypted-id-token-jwk.token-path=${keycloak.url:replaced-by-test-resource}/realms/quarkus/encrypted-id-token
5353
quarkus.oidc.code-flow-encrypted-id-token-jwk.token.decryption-key-location=privateKeyEncryptedIdToken.jwk
5454
quarkus.oidc.code-flow-encrypted-id-token-jwk.token.audience=https://server.example.com
5555
quarkus.oidc.code-flow-encrypted-id-token-jwk.token-state-manager.encryption-algorithm=dir
5656

57-
quarkus.oidc.code-flow-encrypted-id-token-pem.auth-server-url=${keycloak.url}/realms/quarkus/
57+
quarkus.oidc.code-flow-encrypted-id-token-pem.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
5858
quarkus.oidc.code-flow-encrypted-id-token-pem.client-id=quarkus-web-app
5959
quarkus.oidc.code-flow-encrypted-id-token-pem.credentials.secret=secret
6060
quarkus.oidc.code-flow-encrypted-id-token-pem.application-type=web-app
6161
quarkus.oidc.code-flow-encrypted-id-token-pem.token-path=encrypted-id-token
6262
quarkus.oidc.code-flow-encrypted-id-token-pem.token.decryption-key-location=privateKey.pem
6363
quarkus.oidc.code-flow-encrypted-id-token-pem.token.audience=any
6464

65-
quarkus.oidc.code-flow-form-post.auth-server-url=${keycloak.url}/realms/quarkus-form-post/
65+
quarkus.oidc.code-flow-form-post.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus-form-post/
6666
quarkus.oidc.code-flow-form-post.authentication.user-info-required=false
6767
quarkus.oidc.code-flow-form-post.client-id=quarkus-web-app
6868
quarkus.oidc.code-flow-form-post.credentials.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow
6969
quarkus.oidc.code-flow-form-post.application-type=web-app
7070
quarkus.oidc.code-flow-form-post.authentication.response-mode=form_post
7171
quarkus.oidc.code-flow-form-post.discovery-enabled=false
72-
# redirect the user to ${keycloak.url}/realms/quarkus-form-post/ which will respond with form post data
72+
# redirect the user to ${keycloak.url:replaced-by-test-resource}/realms/quarkus-form-post/ which will respond with form post data
7373
quarkus.oidc.code-flow-form-post.authorization-path=/
7474
# reuse the wiremock access token stub for the `quarkus` realm - it is the same for the query and form post response mode
75-
quarkus.oidc.code-flow-form-post.token-path=${keycloak.url}/realms/quarkus/token
75+
quarkus.oidc.code-flow-form-post.token-path=${keycloak.url:replaced-by-test-resource}/realms/quarkus/token
7676
# reuse the wiremock JWK endpoint stub for the `quarkus` realm - it is the same for the query and form post response mode
77-
quarkus.oidc.code-flow-form-post.jwks-path=${keycloak.url}/realms/quarkus/protocol/openid-connect/certs
77+
quarkus.oidc.code-flow-form-post.jwks-path=${keycloak.url:replaced-by-test-resource}/realms/quarkus/protocol/openid-connect/certs
7878
quarkus.oidc.code-flow-form-post.logout.backchannel.path=/back-channel-logout
7979
quarkus.oidc.code-flow-form-post.logout.frontchannel.path=/code-flow-form-post/front-channel-logout
8080
quarkus.oidc.code-flow-form-post.token.audience=https://server.example.com,https://id.server.example.com
8181

82-
quarkus.oidc.code-flow-user-info-only.auth-server-url=${keycloak.url}/realms/quarkus/
82+
quarkus.oidc.code-flow-user-info-only.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
8383
quarkus.oidc.code-flow-user-info-only.discovery-enabled=false
8484
quarkus.oidc.code-flow-user-info-only.authorization-path=/
8585
quarkus.oidc.code-flow-user-info-only.token-path=access_token
@@ -95,7 +95,7 @@ quarkus.oidc.code-flow-user-info-only.application-type=web-app
9595
quarkus.oidc.code-flow-user-info-github.provider=github
9696
quarkus.oidc.code-flow-user-info-github.authentication.internal-id-token-lifespan=7H
9797
quarkus.oidc.code-flow-user-info-github.authentication.verify-access-token=false
98-
quarkus.oidc.code-flow-user-info-github.auth-server-url=${keycloak.url}/realms/quarkus/
98+
quarkus.oidc.code-flow-user-info-github.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
9999
quarkus.oidc.code-flow-user-info-github.authorization-path=/
100100
quarkus.oidc.code-flow-user-info-github.user-info-path=protocol/openid-connect/userinfo
101101
quarkus.oidc.code-flow-user-info-github.code-grant.extra-params.extra-param=extra-param-value
@@ -107,7 +107,7 @@ quarkus.oidc.code-flow-user-info-github.cache-user-info-in-idtoken=false
107107
quarkus.oidc.code-flow-user-info-github-cache-disabled.provider=github
108108
quarkus.oidc.code-flow-user-info-github-cache-disabled.authentication.internal-id-token-lifespan=7H
109109
quarkus.oidc.code-flow-user-info-github-cache-disabled.authentication.verify-access-token=false
110-
quarkus.oidc.code-flow-user-info-github-cache-disabled.auth-server-url=${keycloak.url}/realms/quarkus/
110+
quarkus.oidc.code-flow-user-info-github-cache-disabled.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
111111
quarkus.oidc.code-flow-user-info-github-cache-disabled.authorization-path=/
112112
quarkus.oidc.code-flow-user-info-github-cache-disabled.user-info-path=protocol/openid-connect/userinfo
113113
quarkus.oidc.code-flow-user-info-github-cache-disabled.code-grant.extra-params.extra-param=extra-param-value
@@ -122,18 +122,18 @@ quarkus.oidc.bearer-user-info-github-service.token.principal-claim=preferred_use
122122
quarkus.oidc.bearer-user-info-github-service.token.verify-access-token-with-user-info=true
123123
quarkus.oidc.bearer-user-info-github-service.token.allow-jwt-introspection=false
124124
quarkus.oidc.bearer-user-info-github-service.application-type=service
125-
quarkus.oidc.bearer-user-info-github-service.auth-server-url=${keycloak.url}/realms/quarkus/
125+
quarkus.oidc.bearer-user-info-github-service.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
126126
quarkus.oidc.bearer-user-info-github-service.user-info-path=github/userinfo
127127
quarkus.oidc.bearer-user-info-github-service.client-id=quarkus-web-app
128128
quarkus.oidc.bearer-user-info-github-service.credentials.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow
129129

130130
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.provider=github
131131
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.application-type=hybrid
132-
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.auth-server-url=${keycloak.url}/realms/quarkus/
132+
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
133133
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.authorization-path=/
134134
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.token-path=access_token_refreshed
135135
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.user-info-path=protocol/openid-connect/signeduserinfo
136-
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.jwks-path=${keycloak.url}/realms/quarkus/protocol/openid-connect/certs
136+
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.jwks-path=${keycloak.url:replaced-by-test-resource}/realms/quarkus/protocol/openid-connect/certs
137137
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.code-grant.extra-params.extra-param=extra-param-value
138138
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.code-grant.headers.X-Custom=XCustomHeaderValue
139139
quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.cache-user-info-in-idtoken=true
@@ -149,7 +149,7 @@ quarkus.oidc.code-flow-user-info-github-cached-in-idtoken.certificate-chain.trus
149149

150150
quarkus.oidc.code-flow-token-introspection.provider=github
151151
quarkus.oidc.code-flow-token-introspection.token.verify-access-token-with-user-info=false
152-
quarkus.oidc.code-flow-token-introspection.auth-server-url=${keycloak.url}/realms/quarkus/
152+
quarkus.oidc.code-flow-token-introspection.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
153153
quarkus.oidc.code-flow-token-introspection.authorization-path=/
154154
quarkus.oidc.code-flow-token-introspection.user-info-path=protocol/openid-connect/userinfo
155155
quarkus.oidc.code-flow-token-introspection.introspection-path=protocol/openid-connect/token/introspect
@@ -159,7 +159,7 @@ quarkus.oidc.code-flow-token-introspection.client-id=quarkus-web-app
159159
quarkus.oidc.code-flow-token-introspection.credentials.secret=AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow
160160
quarkus.oidc.code-flow-token-introspection.code-grant.headers.X-Custom=XTokenIntrospection
161161

162-
quarkus.oidc.code-flow-token-introspection-expires-in.auth-server-url=${keycloak.url}/realms/quarkus/
162+
quarkus.oidc.code-flow-token-introspection-expires-in.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
163163
quarkus.oidc.code-flow-token-introspection-expires-in.application-type=web-app
164164
quarkus.oidc.code-flow-token-introspection-expires-in.authentication.user-info-required=false
165165
quarkus.oidc.code-flow-token-introspection-expires-in.authorization-path=/
@@ -172,32 +172,32 @@ quarkus.oidc.code-flow-token-introspection-expires-in.credentials.secret=AyM1Sys
172172

173173
quarkus.oidc.token-cache.max-size=1
174174

175-
quarkus.oidc.bearer.auth-server-url=${keycloak.url}/realms/quarkus/
175+
quarkus.oidc.bearer.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
176176
quarkus.oidc.bearer.client-id=quarkus-app
177177
quarkus.oidc.bearer.credentials.secret=secret
178178
quarkus.oidc.bearer.token.audience=https://service.example.com
179179
quarkus.oidc.bearer.allow-token-introspection-cache=false
180180

181-
quarkus.oidc.bearer-kid-or-chain.auth-server-url=${keycloak.url}/realms/quarkus/
181+
quarkus.oidc.bearer-kid-or-chain.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
182182
quarkus.oidc.bearer-kid-or-chain.client-id=quarkus-app
183183
quarkus.oidc.bearer-kid-or-chain.credentials.secret=secret
184184
quarkus.oidc.bearer-kid-or-chain.token.audience=https://service.example.com
185185
quarkus.oidc.bearer-kid-or-chain.allow-token-introspection-cache=false
186186
quarkus.oidc.bearer-kid-or-chain.certificate-chain.trust-store-file=target/chain/truststore.p12
187187
quarkus.oidc.bearer-kid-or-chain.certificate-chain.trust-store-password=storepassword
188188

189-
quarkus.oidc.bearer-id.auth-server-url=${keycloak.url}/realms/quarkus/
189+
quarkus.oidc.bearer-id.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
190190
quarkus.oidc.bearer-id.client-id=quarkus-app
191191
quarkus.oidc.bearer-id.credentials.secret=secret
192192
quarkus.oidc.bearer-id.allow-token-introspection-cache=false
193193
quarkus.oidc.bearer-id.token.authorization-scheme=ID
194194

195-
quarkus.oidc.bearer-required-algorithm.auth-server-url=${keycloak.url}/realms/quarkus/
195+
quarkus.oidc.bearer-required-algorithm.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
196196
quarkus.oidc.bearer-required-algorithm.client-id=quarkus-app
197197
quarkus.oidc.bearer-required-algorithm.credentials.secret=secret
198198
quarkus.oidc.bearer-required-algorithm.token.signature-algorithm=PS256
199199

200-
quarkus.oidc.bearer-permission-checker.auth-server-url=${keycloak.url}/realms/quarkus/
200+
quarkus.oidc.bearer-permission-checker.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
201201
quarkus.oidc.bearer-permission-checker.client-id=quarkus-app
202202
quarkus.oidc.bearer-permission-checker.credentials.secret=secret
203203
quarkus.oidc.bearer-permission-checker.token.signature-algorithm=PS256
@@ -206,21 +206,21 @@ quarkus.oidc.bearer-azure.provider=microsoft
206206
quarkus.oidc.bearer-azure.authentication.user-info-required=false
207207
quarkus.oidc.bearer-azure.application-type=service
208208
quarkus.oidc.bearer-azure.discovery-enabled=false
209-
quarkus.oidc.bearer-azure.jwks-path=${keycloak.url}/azure/jwk
209+
quarkus.oidc.bearer-azure.jwks-path=${keycloak.url:replaced-by-test-resource}/azure/jwk
210210
quarkus.oidc.bearer-azure.jwks.resolve-early=false
211211
quarkus.oidc.bearer-azure.token.lifespan-grace=2147483647
212212
quarkus.oidc.bearer-azure.token.customizer-name=azure-access-token-customizer
213213
quarkus.oidc.bearer-azure.certificate-chain.trust-store-file=target/chain/truststore.p12
214214
quarkus.oidc.bearer-azure.certificate-chain.trust-store-password=storepassword
215215

216-
quarkus.oidc.bearer-role-claim-path.auth-server-url=${keycloak.url}/realms/quarkus/
216+
quarkus.oidc.bearer-role-claim-path.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
217217
quarkus.oidc.bearer-role-claim-path.client-id=quarkus-app
218218
quarkus.oidc.bearer-role-claim-path.credentials.secret=secret
219219
quarkus.oidc.bearer-role-claim-path.token.audience=https://service.example.com
220220
quarkus.oidc.bearer-role-claim-path.roles.role-claim-path="https://roles.example.com"
221221
quarkus.oidc.bearer-role-claim-path.allow-token-introspection-cache=false
222222

223-
quarkus.oidc.bearer-no-introspection.auth-server-url=${keycloak.url}/realms/quarkus/
223+
quarkus.oidc.bearer-no-introspection.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
224224
quarkus.oidc.bearer-no-introspection.client-id=quarkus-app
225225
quarkus.oidc.bearer-no-introspection.credentials.secret=secret
226226
quarkus.oidc.bearer-no-introspection.token.audience=https://service.example.com
@@ -237,7 +237,7 @@ quarkus.oidc.bearer-certificate-full-chain-root-only-wrongcname.certificate-chai
237237
quarkus.oidc.bearer-certificate-full-chain-root-only-wrongcname.certificate-chain.trust-store-password=storepassword
238238
quarkus.oidc.bearer-certificate-full-chain-root-only-wrongcname.certificate-chain.leaf-certificate-name=www.quarkusio.com
239239

240-
quarkus.oidc.bearer-key-without-kid-thumbprint.auth-server-url=${keycloak.url}/realms/quarkus/
240+
quarkus.oidc.bearer-key-without-kid-thumbprint.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
241241
quarkus.oidc.bearer-key-without-kid-thumbprint.authentication.user-info-required=false
242242
quarkus.oidc.bearer-key-without-kid-thumbprint.discovery-enabled=false
243243
quarkus.oidc.bearer-key-without-kid-thumbprint.jwks-path=single-key-without-kid-thumbprint
@@ -246,7 +246,7 @@ quarkus.oidc.bearer-key-without-kid-thumbprint.credentials.secret=secret
246246
quarkus.oidc.bearer-key-without-kid-thumbprint.token.audience=https://service.example.com
247247
quarkus.oidc.bearer-key-without-kid-thumbprint.token.allow-jwt-introspection=false
248248

249-
quarkus.oidc.bearer-wrong-role-path.auth-server-url=${keycloak.url}/realms/quarkus/
249+
quarkus.oidc.bearer-wrong-role-path.auth-server-url=${keycloak.url:replaced-by-test-resource}/realms/quarkus/
250250
quarkus.oidc.bearer-wrong-role-path.client-id=quarkus-app
251251
quarkus.oidc.bearer-wrong-role-path.credentials.secret=secret
252252
quarkus.oidc.bearer-wrong-role-path.token.audience=https://service.example.com

0 commit comments

Comments
 (0)