{"record":{"id":"8c6d67439eb9d7ef","repo":"quarkusio/quarkus","slug":"the-oidc-proxy-configuration-currently-does-not-su","errorCode":null,"errorMessage":"The OIDC proxy configuration currently does not support the 'quarkus.proxy.\"<name>\".non-proxy-hosts' property","messagePattern":"The OIDC proxy configuration currently does not support the 'quarkus\\.proxy\\.\"<name>\"\\.non-proxy-hosts' property","errorType":"validation","errorClass":"ConfigurationException","httpStatus":null,"severity":"error","filePath":"extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java","lineNumber":396,"sourceCode":"            ProxyConfigurationRegistry proxyConfigurationRegistry) {\n        if (oidcProxyConfig.proxyConfigurationName().isEmpty()) {\n            return Optional.empty();\n        }\n\n        var maybeProxyConfig = proxyConfigurationRegistry.get(oidcProxyConfig.proxyConfigurationName());\n        if (maybeProxyConfig.isEmpty()) {\n            throw new ConfigurationException(\"Cannot find the Proxy registry configuration '%s'\"\n                    .formatted(oidcProxyConfig.proxyConfigurationName().get()));\n        }\n\n        var proxyRegistryConfig = maybeProxyConfig.get().assertHttpType();\n        final String hostProperty = proxyRegistryConfig.host();\n        final int portProperty = proxyRegistryConfig.port();\n        final Optional<String> usernameProperty = proxyRegistryConfig.username();\n        final Optional<String> passwordProperty = proxyRegistryConfig.password();\n        final Optional<Duration> proxyConnectTimeoutProperty = proxyRegistryConfig.proxyConnectTimeout();\n        if (proxyRegistryConfig.nonProxyHosts().isPresent()) {\n            throw new ConfigurationException(\n                    \"The OIDC proxy configuration currently does not support the 'quarkus.proxy.\\\"\"\n                            + oidcProxyConfig.proxyConfigurationName().get() + \"\\\".non-proxy-hosts' property\");\n        }\n\n        JsonObject jsonOptions = new JsonObject();\n        // Vert.x Client currently does not expect a host having a scheme but keycloak-authorization expects scheme and host.\n        // Having a dedicated scheme property is probably better, but since it is property is not taken into account in Vertx Client\n        // it does not really make sense as it can send a misleading message that users can choose between `http` and `https`.\n        String host = URI.create(hostProperty).getHost();\n        if (host == null) {\n            host = hostProperty;\n        }\n        jsonOptions.put(\"host\", host);\n        jsonOptions.put(\"port\", portProperty);\n        if (usernameProperty.isPresent()) {\n            jsonOptions.put(\"username\", usernameProperty.get());\n        }\n        if (passwordProperty.isPresent()) {","sourceCodeStart":378,"sourceCodeEnd":414,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/extensions/oidc-common/runtime/src/main/java/io/quarkus/oidc/common/runtime/OidcCommonUtils.java#L378-L414","documentation":"Quarkus OIDC builds a Vert.x proxy configuration from a named proxy registry entry ('quarkus.proxy.\"<name>\".*'). The OIDC client only maps host, port, username, password and connect timeout; a non-proxy-hosts list cannot be honored, so the library fails fast at startup with a ConfigurationException rather than silently ignoring it.","triggerScenarios":"Setting quarkus.proxy.\"<proxy-name>\".non-proxy-hosts (or equivalent OidcProxyConfig referencing a proxy registry entry with non-proxy-hosts present) while an OIDC/OIDC-client extension resolves that proxy via toProxyOptions at startup.","commonSituations":"Copy-pasting a corporate proxy config that includes nonProxyHosts into the quarkus.proxy block used by OIDC; reusing an existing proxy config shared with other Quarkus components (e.g. HTTP client proxy) that support non-proxy-hosts.","solutions":["Remove the non-proxy-hosts entry from the quarkus.proxy.\"<name>\" configuration used by OIDC","Route OIDC traffic through the proxy for all hosts (accept no exclusions), or point the OIDC config at a second proxy entry without non-proxy-hosts","If the OIDC endpoint must bypass the proxy, run with JVM-wide proxy exclusions (http.nonProxyHosts) or disable proxying for OIDC instead","Upgrade Quarkus and check release notes/issue tracker for OIDC non-proxy-hosts support before re-adding the property"],"exampleFix":"// before\nquarkus.proxy.\"corp\".host=proxy.corp.com\nquarkus.proxy.\"corp\".port=3128\nquarkus.proxy.\"corp\".non-proxy-hosts=internal.corp.com\n// after\nquarkus.proxy.\"corp\".host=proxy.corp.com\nquarkus.proxy.\"corp\".port=3128\n// non-proxy-hosts removed - not supported for OIDC","handlingStrategy":"validation","validationCode":"if (ConfigProvider.getConfig().getOptionalValue(\"quarkus.proxy.\\\"corp\\\".non-proxy-hosts\", String.class).isPresent()) {\n    throw new IllegalStateException(\"Remove quarkus.proxy non-proxy-hosts: unsupported for OIDC\");\n}","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep quarkus.proxy blocks used by OIDC limited to host/port/username/password/connect-timeout","Do not share one proxy config block between OIDC and other components with different feature needs","Check extension docs for supported proxy properties before adding new ones"],"tags":["config","oidc","proxy","startup"],"backgroundTag":"unsupported-proxy-config","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}