Skip to content

Commit a276dfa

Browse files
Change after feedback
Signed-off-by: gabriel-farache <[email protected]>
1 parent 75ce9bc commit a276dfa

File tree

4 files changed

+20
-27
lines changed

4 files changed

+20
-27
lines changed

client/oidc/src/main/java/io/quarkiverse/openapi/generator/oidc/ClassicOidcClientRequestFilterDelegate.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import jakarta.ws.rs.Priorities;
88
import jakarta.ws.rs.client.ClientRequestContext;
99
import jakarta.ws.rs.client.ClientRequestFilter;
10+
import jakarta.ws.rs.core.HttpHeaders;
1011

1112
import org.jboss.logging.Logger;
1213

@@ -41,7 +42,7 @@ protected java.util.Optional<String> clientId() {
4142
public void filter(ClientRequestContext requestContext) throws IOException {
4243
try {
4344
String accessToken = this.getAccessToken();
44-
requestContext.getHeaders().add("Authorization", "Bearer " + accessToken);
45+
requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION, "Bearer " + accessToken);
4546
} catch (DisabledOidcClientException ex) {
4647
LOG.debug("Client is disabled, acquiring and propagating the token is not necessary");
4748
} catch (RuntimeException ex) {

client/oidc/src/main/java/io/quarkiverse/openapi/generator/oidc/providers/OAuth2AuthenticationProvider.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
import java.util.List;
77

88
import jakarta.ws.rs.client.ClientRequestContext;
9+
import jakarta.ws.rs.core.HttpHeaders;
910

1011
import org.slf4j.Logger;
1112
import org.slf4j.LoggerFactory;
1213

1314
import io.quarkiverse.openapi.generator.providers.AbstractAuthProvider;
1415
import io.quarkiverse.openapi.generator.providers.ConfigCredentialsProvider;
1516
import io.quarkiverse.openapi.generator.providers.OperationAuthInfo;
17+
import io.quarkus.oidc.common.runtime.OidcConstants;
1618

1719
public class OAuth2AuthenticationProvider extends AbstractAuthProvider {
1820

@@ -29,7 +31,15 @@ public OAuth2AuthenticationProvider(String name,
2931

3032
@Override
3133
public void filter(ClientRequestContext requestContext) throws IOException {
32-
getCredentialsProvider().setOauth2BearerToken(requestContext, getOpenApiSpecId(), getName(), delegate::filter);
34+
if (this.isTokenPropagation()) {
35+
String bearerToken = this.getTokenForPropagation(requestContext.getHeaders());
36+
requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION,
37+
OidcConstants.BEARER_SCHEME + " " + AbstractAuthProvider.sanitizeBearerToken(bearerToken));
38+
} else {
39+
delegate.filter(requestContext);
40+
}
41+
this.getCredentialsProvider().setOauth2BearerToken(requestContext,
42+
requestContext.getHeaderString(HttpHeaders.AUTHORIZATION), this.getOpenApiSpecId(), this.getName());
3343
}
3444

3545
private void validateConfig() {

client/runtime/src/main/java/io/quarkiverse/openapi/generator/providers/ConfigCredentialsProvider.java

Lines changed: 3 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,14 @@
11
package io.quarkiverse.openapi.generator.providers;
22

3-
import java.io.IOException;
4-
53
import jakarta.annotation.Priority;
64
import jakarta.enterprise.context.Dependent;
75
import jakarta.enterprise.inject.Alternative;
86
import jakarta.ws.rs.client.ClientRequestContext;
9-
import jakarta.ws.rs.core.HttpHeaders;
107

118
import org.eclipse.microprofile.config.ConfigProvider;
129
import org.slf4j.Logger;
1310
import org.slf4j.LoggerFactory;
1411

15-
import io.quarkus.oidc.common.runtime.OidcConstants;
16-
1712
@Dependent
1813
@Alternative
1914
@Priority(100)
@@ -69,21 +64,9 @@ public String getBearerToken(ClientRequestContext requestContext, String openApi
6964
}
7065

7166
@Override
72-
public void setOauth2BearerToken(ClientRequestContext requestContext, String openApiSpecId, String authName,
73-
ThrowingConsumer<ClientRequestContext, IOException> filter) throws IOException {
74-
if (AbstractAuthProvider.isTokenPropagation(openApiSpecId, authName)) {
75-
String bearerToken = AbstractAuthProvider.getTokenForPropagation(requestContext.getHeaders(), openApiSpecId,
76-
authName);
77-
requestContext.getHeaders().add(HttpHeaders.AUTHORIZATION,
78-
OidcConstants.BEARER_SCHEME + " " + AbstractAuthProvider.sanitizeBearerToken(bearerToken));
79-
} else {
80-
filter.accept(requestContext);
81-
}
82-
}
83-
84-
@FunctionalInterface
85-
public interface ThrowingConsumer<T, E extends Exception> {
86-
void accept(T t) throws E;
67+
public void setOauth2BearerToken(ClientRequestContext requestContext, String accessToken, String openApiSpecId,
68+
String authName) {
69+
// no need to do anything as the base OAuth2AuthenticationProvider class already sets the access token in the context
8770
}
8871

8972
}

client/runtime/src/main/java/io/quarkiverse/openapi/generator/providers/CredentialsProvider.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.quarkiverse.openapi.generator.providers;
22

3-
import java.io.IOException;
4-
53
import jakarta.ws.rs.client.ClientRequestContext;
64

75
/**
@@ -48,11 +46,12 @@ public interface CredentialsProvider {
4846
String getBearerToken(ClientRequestContext requestContext, String openApiSpecId, String authName);
4947

5048
/**
51-
* Gets the Bearer Token given the OpenAPI definition and security schema
49+
* Sets the Access Token in the request context
5250
*
51+
* @param requestContext The current request context in which set the authorization header token
52+
* @param accessToken The accessToken to use, contains Bearer string
5353
* @param openApiSpecId the OpenAPI Spec identification as defined by the OpenAPI Extension
5454
* @param authName The security schema for this Bearer Token definition
5555
*/
56-
void setOauth2BearerToken(ClientRequestContext requestContext, String openApiSpecId, String authName,
57-
ConfigCredentialsProvider.ThrowingConsumer<ClientRequestContext, IOException> filter) throws IOException;
56+
void setOauth2BearerToken(ClientRequestContext requestContext, String accessToken, String openApiSpecId, String authName);
5857
}

0 commit comments

Comments
 (0)