Repository: quarkusio/quarkus
Issue: OIDC does not work with Azure Hosted Keycloak (HTTP Error 411)

## Describe the bug
We are hosting our application in Azure, with a Quarkus RESTFul web service using a Keycloak instance via OIDC.  When Keycloak is hosted in Azure, we get a 411 error when attempting to retrieve information associated with the logged in user's bearer token.  error is as follows:

> 2021-04-30 00:15:35,478 DEBUG [io.qua.oid.run.OidcProviderClient] (vert.x-eventloop-thread-10) Request has failed: status: 411, error message: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
> <HTML><HEAD><TITLE>Length Required</TITLE>
> <META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
> <BODY><h2>Length Required</h2>
> <hr><p>HTTP Error 411. The request must be chunked or have a content length.</p>
> </BODY></HTML>

The REST call in question fails with a 401 and states not authenticated.

The Keycloak instance in question is behind an Azure Front Door (reverse proxy).  This issue does not occur with a locally hosted Keycloak, and appears to be related to IIS being a bit strict with RFC compliance.

I'm pretty sure this is related to or a similar issue to #16151.  

Tested with 1.13.2 and 1.13.3, as well as the 2 alpha.

### Expected behavior

OIDC should return the user information and acknowledge the user as authenticated.

### Actual behavior
Error from the Azure reverse proxy due to missing headers in the HTTP request.

## To Reproduce
You need Keycloak or similar deployed in Azure behind a Front Door to make sure you see the behavior which is introduced by that proxy.  Not sure how to do a reproducer here.  With our existing infrastructure I can run a build to confirm a fix and would be more than happy to assist in any way.

### Configuration
```properties
# Relevant Keycloak Configuration (OIDC)
quarkus.oidc.enabled=true
quarkus.oidc.application-type=service
quarkus.oidc.client-id=REDACTED
quarkus.oidc.roles.source=accesstoken
quarkus.oidc.authentication.user-info-required=true
%dev.quarkus.oidc.auth-server-url=https://REDACTED.azurefd.net/auth/realms/REDACTED
%dev.quarkus.oidc.credentials.secret=REDACTED
```

### Screenshots
(If applicable, add screenshots to help explain your problem.)

## Environment (please complete the following information):

### Output of `uname -a` or `ver`
Microsoft Windows [Version 10.0.19041.928]

### Output of `java -version`
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

### GraalVM version (if different from Java)

### Quarkus version or git rev
1.13.2, 1.13.3

### Build tool (ie. output of `mvnw --version` or `gradlew --version`)
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment AdoptOpenJDK-11.0.11+9 (build 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (build 11.0.11+9, mixed mode)

## Additional context
(Add any other context about the problem here.)


Changed files:
extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcProviderClient.java

diff --git a/extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcProviderClient.java b/extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcProviderClient.java
index ce16001bcb4..f6746b6023b 100644
--- a/extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcProviderClient.java
+++ b/extensions/oidc/runtime/src/main/java/io/quarkus/oidc/runtime/OidcProviderClient.java
@@ -53,7 +53,7 @@ public Uni<JsonWebKeyCache> getJsonWebKeySet() {
     }
 
     public Uni<JsonObject> getUserInfo(String token) {
-        return client.postAbs(metadata.getUserInfoUri())
+        return client.getAbs(metadata.getUserInfoUri())
                 .putHeader(AUTHORIZATION_HEADER, OidcConstants.BEARER_SCHEME + " " + token)
                 .send().onItem().transform(resp -> getUserInfo(resp));
     }