Skip to content

Commit 377e034

Browse files
Fix #1191 - refactor CredentialsProvider return type
1 parent e5e7bb7 commit 377e034

File tree

8 files changed

+51
-38
lines changed

8 files changed

+51
-38
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package io.quarkiverse.openapi.generator.it.auth.provider;
22

3+
import java.util.Optional;
4+
35
import jakarta.annotation.Priority;
46
import jakarta.enterprise.context.Dependent;
57
import jakarta.enterprise.inject.Alternative;
@@ -11,18 +13,18 @@
1113
@Dependent
1214
@Alternative
1315
@Specializes
14-
@Priority(200)
16+
@Priority(201)
1517
public class CustomCredentialsProvider extends ConfigCredentialsProvider {
1618
public CustomCredentialsProvider() {
1719
}
1820

1921
@Override
20-
public String getBearerToken(CredentialsContext input) {
21-
return super.getBearerToken(input) + "_TEST";
22+
public Optional<String> getBearerToken(CredentialsContext input) {
23+
return Optional.of(super.getBearerToken(input).get() + "_TEST");
2224
}
2325

2426
@Override
25-
public String getOauth2BearerToken(CredentialsContext input) {
26-
return super.getOauth2BearerToken(input) + "_TEST";
27+
public Optional<String> getOauth2BearerToken(CredentialsContext input) {
28+
return Optional.of("KEYCLOAK_ACCESS_TOKEN" + "_TEST");
2729
}
2830
}

client/integration-tests/override-credential-provider/src/main/java/io/quarkiverse/openapi/generator/it/creds/CustomCredentialsProvider.java

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

3+
import java.util.Optional;
4+
35
import jakarta.annotation.Priority;
46
import jakarta.enterprise.context.Dependent;
57
import jakarta.enterprise.inject.Alternative;
@@ -19,8 +21,8 @@ public class CustomCredentialsProvider extends ConfigCredentialsProvider {
1921
public static String TOKEN = "FIXED_TEST_TOKEN";
2022

2123
@Override
22-
public String getBearerToken(CredentialsContext input) {
24+
public Optional<String> getBearerToken(CredentialsContext input) {
2325
LOGGER.info("========> getBearerToken from CustomCredentialsProvider");
24-
return TOKEN;
26+
return Optional.of(TOKEN);
2527
}
26-
}
28+
}

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

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
import java.io.IOException;
66
import java.util.List;
7+
import java.util.Optional;
78

89
import jakarta.ws.rs.client.ClientRequestContext;
910

@@ -32,17 +33,22 @@ public OAuth2AuthenticationProvider(String name,
3233

3334
@Override
3435
public void filter(ClientRequestContext requestContext) throws IOException {
35-
String bearerToken;
36+
String bearerToken = "";
3637

3738
if (this.isTokenPropagation()) {
3839
bearerToken = this.getTokenForPropagation(requestContext.getHeaders());
3940
} else {
40-
delegate.filter(requestContext);
41-
bearerToken = this.getCredentialsProvider().getOauth2BearerToken(CredentialsContext.builder()
42-
.requestContext(requestContext)
43-
.openApiSpecId(getOpenApiSpecId())
44-
.authName(getName())
45-
.build());
41+
Optional<String> optionalBearerToken = this.getCredentialsProvider()
42+
.getOauth2BearerToken(CredentialsContext.builder()
43+
.requestContext(requestContext)
44+
.openApiSpecId(getOpenApiSpecId())
45+
.authName(getName())
46+
.build());
47+
if (optionalBearerToken.isPresent()) {
48+
bearerToken = optionalBearerToken.get();
49+
} else {
50+
delegate.filter(requestContext);
51+
}
4652
}
4753

4854
if (!isEmptyOrBlank(bearerToken)) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ private String getApiKey(ClientRequestContext requestContext) {
5858
.requestContext(requestContext)
5959
.openApiSpecId(getOpenApiSpecId())
6060
.authName(getName())
61-
.build());
61+
.build()).orElseThrow();
6262
}
6363

6464
private boolean isUseAuthorizationHeaderValue() {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,15 @@ private String getUsername(ClientRequestContext requestContext) {
2929
.requestContext(requestContext)
3030
.openApiSpecId(getOpenApiSpecId())
3131
.authName(getName())
32-
.build());
32+
.build()).orElseThrow();
3333
}
3434

3535
private String getPassword(ClientRequestContext requestContext) {
3636
return credentialsProvider.getBasicPassword(CredentialsContext.builder()
3737
.requestContext(requestContext)
3838
.openApiSpecId(getOpenApiSpecId())
3939
.authName(getName())
40-
.build());
40+
.build()).orElseThrow();
4141
}
4242

4343
@Override

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,6 @@ private String getBearerToken(ClientRequestContext requestContext) {
5151
.requestContext(requestContext)
5252
.openApiSpecId(getOpenApiSpecId())
5353
.authName(getName())
54-
.build());
54+
.build()).orElseThrow();
5555
}
5656
}

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

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

3+
import java.util.Optional;
4+
35
import jakarta.annotation.Priority;
46
import jakarta.enterprise.context.Dependent;
57
import jakarta.enterprise.inject.Alternative;
6-
import jakarta.ws.rs.core.HttpHeaders;
78

89
import org.eclipse.microprofile.config.ConfigProvider;
910
import org.slf4j.Logger;
@@ -26,7 +27,7 @@ public ConfigCredentialsProvider() {
2627
}
2728

2829
@Override
29-
public String getApiKey(CredentialsContext input) {
30+
public Optional<String> getApiKey(CredentialsContext input) {
3031
final String key = ConfigProvider.getConfig()
3132
.getOptionalValue(
3233
AbstractAuthProvider.getCanonicalAuthConfigPropertyName(API_KEY, input.getOpenApiSpecId(),
@@ -38,41 +39,41 @@ public String getApiKey(CredentialsContext input) {
3839
AbstractAuthProvider.getCanonicalAuthConfigPropertyName(API_KEY, input.getOpenApiSpecId(),
3940
input.getAuthName()));
4041
}
41-
return key;
42+
return Optional.of(key);
4243
}
4344

4445
@Override
45-
public String getBasicUsername(CredentialsContext input) {
46-
return ConfigProvider.getConfig()
46+
public Optional<String> getBasicUsername(CredentialsContext input) {
47+
return Optional.of(ConfigProvider.getConfig()
4748
.getOptionalValue(
4849
AbstractAuthProvider.getCanonicalAuthConfigPropertyName(USER_NAME, input.getOpenApiSpecId(),
4950
input.getAuthName()),
5051
String.class)
51-
.orElse("");
52+
.orElse(""));
5253
}
5354

5455
@Override
55-
public String getBasicPassword(CredentialsContext input) {
56-
return ConfigProvider.getConfig()
56+
public Optional<String> getBasicPassword(CredentialsContext input) {
57+
return Optional.of(ConfigProvider.getConfig()
5758
.getOptionalValue(
5859
AbstractAuthProvider.getCanonicalAuthConfigPropertyName(PASSWORD, input.getOpenApiSpecId(),
5960
input.getAuthName()),
6061
String.class)
61-
.orElse("");
62+
.orElse(""));
6263
}
6364

6465
@Override
65-
public String getBearerToken(CredentialsContext input) {
66-
return ConfigProvider.getConfig()
66+
public Optional<String> getBearerToken(CredentialsContext input) {
67+
return Optional.of(ConfigProvider.getConfig()
6768
.getOptionalValue(
6869
AbstractAuthProvider.getCanonicalAuthConfigPropertyName(BEARER_TOKEN, input.getOpenApiSpecId(),
6970
input.getAuthName()),
7071
String.class)
71-
.orElse("");
72+
.orElse(""));
7273
}
7374

7475
@Override
75-
public String getOauth2BearerToken(CredentialsContext input) {
76-
return input.getRequestContext().getHeaderString(HttpHeaders.AUTHORIZATION);
76+
public Optional<String> getOauth2BearerToken(CredentialsContext input) {
77+
return Optional.empty();
7778
}
7879
}

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

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

3+
import java.util.Optional;
4+
35
/**
46
* Provider for security credentials. Clients can implement this interface to control how to provide security credentials in
57
* runtime.
@@ -13,37 +15,37 @@ public interface CredentialsProvider {
1315
* @param input the input data available to the method
1416
* @return the API Key to use when filtering the request
1517
*/
16-
String getApiKey(CredentialsContext input);
18+
Optional<String> getApiKey(CredentialsContext input);
1719

1820
/**
1921
* Gets the username given the OpenAPI definition and security schema
2022
*
2123
* @param input the input data available to the method
2224
* @return the username to use when filtering the request
2325
*/
24-
String getBasicUsername(CredentialsContext input);
26+
Optional<String> getBasicUsername(CredentialsContext input);
2527

2628
/**
2729
* Gets the password given the OpenAPI definition and security schema
2830
*
2931
* @param input the input data available to the method
3032
* @return the password to use when filtering the request
3133
*/
32-
String getBasicPassword(CredentialsContext input);
34+
Optional<String> getBasicPassword(CredentialsContext input);
3335

3436
/**
3537
* Gets the Bearer Token given the OpenAPI definition and security schema
3638
*
3739
* @param input the input data available to the method
3840
* @return the Bearer Token to use when filtering the request
3941
*/
40-
String getBearerToken(CredentialsContext input);
42+
Optional<String> getBearerToken(CredentialsContext input);
4143

4244
/**
4345
* Gets the OAuth2 Bearer Token given the OpenAPI definition and security schema
4446
*
4547
* @param input the input data available to the method
4648
* @return the Bearer Token to use when filtering the request
4749
*/
48-
String getOauth2BearerToken(CredentialsContext input);
50+
Optional<String> getOauth2BearerToken(CredentialsContext input);
4951
}

0 commit comments

Comments
 (0)