Skip to content

Commit e8c58fa

Browse files
authored
issue-242 Changed oauth2AuthenticationProvider.qute to not be generated (#248)
1 parent a71c08e commit e8c58fa

File tree

8 files changed

+57
-46
lines changed

8 files changed

+57
-46
lines changed

deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/template/QuteTemplatingEngineAdapter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ public class QuteTemplatingEngineAdapter extends AbstractTemplatingEngineAdapter
2828
"queryParams.qute",
2929
"auth/compositeAuthenticationProvider.qute",
3030
"auth/headersFactory.qute",
31-
"auth/oauth2AuthenticationProvider.qute",
3231
"multipartFormdataPojo.qute"
3332
};
3433
public final Engine engine;

deployment/src/main/java/io/quarkiverse/openapi/generator/deployment/wrapper/QuarkusJavaClientCodegen.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,6 @@ private void replaceWithQuarkusTemplateFiles() {
6363
new SupportingFile("auth/headersFactory.qute",
6464
authFileFolder(),
6565
"AuthenticationPropagationHeadersFactory.java"));
66-
67-
Object quarkusGeneratorProperties = additionalProperties.get(QUARKUS_GENERATOR_NAME);
68-
69-
if (!(quarkusGeneratorProperties instanceof Map)) {
70-
throw new IllegalStateException("Quarkus generator properties not found.");
71-
}
72-
73-
Object openApiSpecId = ((Map<?, ?>) quarkusGeneratorProperties).get("openApiSpecId");
74-
75-
supportingFiles.add(
76-
new SupportingFile("auth/oauth2AuthenticationProvider.qute",
77-
authFileFolder(),
78-
openApiSpecId + "OAuth2AuthenticationProvider.java"));
7966
}
8067

8168
apiTemplateFiles.clear();

deployment/src/main/resources/templates/auth/compositeAuthenticationProvider.qute

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import io.quarkiverse.openapi.generator.providers.BearerAuthenticationProvider;
2121
import io.quarkiverse.openapi.generator.providers.AbstractCompositeAuthenticationProvider;
2222
import io.quarkiverse.openapi.generator.providers.OperationAuthInfo;
2323

24+
import java.util.Optional;
25+
2426
@Priority(Priorities.AUTHENTICATION)
2527
public class CompositeAuthenticationProvider extends AbstractCompositeAuthenticationProvider {
2628

@@ -29,11 +31,18 @@ public class CompositeAuthenticationProvider extends AbstractCompositeAuthentica
2931

3032
{#for auth in oauthMethods.orEmpty}
3133
@jakarta.inject.Inject
32-
{quarkus-generator.openApiSpecId}OAuth2AuthenticationProvider oAuth2Provider{auth_index};
34+
io.quarkiverse.openapi.generator.providers.OAuth2AuthenticationProvider oAuth2Provider{auth_index};
35+
36+
@jakarta.inject.Inject
37+
OidcClientRequestFilterDelegateImpl{auth_index} oidcClientRequestFilterDelegate{auth_index};
3338
{/for}
3439

3540
@PostConstruct
3641
public void init() {
42+
{#for auth in oauthMethods.orEmpty}
43+
oAuth2Provider{auth_index}.init(sanitizeAuthName("{auth.name}"), "{quarkus-generator.openApiSpecId}", oidcClientRequestFilterDelegate{auth_index});
44+
{/for}
45+
3746
{#for auth in httpBasicMethods.orEmpty}
3847
BasicAuthenticationProvider basicAuthProvider{auth_index} = new BasicAuthenticationProvider("{quarkus-generator.openApiSpecId}", sanitizeAuthName("{auth.name}"), generatorConfig);
3948
this.addAuthenticationProvider(basicAuthProvider{auth_index});
@@ -187,4 +196,16 @@ public class CompositeAuthenticationProvider extends AbstractCompositeAuthentica
187196
{/for}
188197
}
189198

199+
{#for auth in oauthMethods.orEmpty}
200+
@jakarta.enterprise.context.Dependent
201+
static class OidcClientRequestFilterDelegateImpl{auth_index} extends io.quarkus.oidc.client.filter.OidcClientRequestFilter implements io.quarkiverse.openapi.generator.providers.OAuth2AuthenticationProvider.OidcClientRequestFilterDelegate {
202+
203+
private final String clientId = io.quarkiverse.openapi.generator.OpenApiGeneratorConfig.getSanitizedSecuritySchemeName("{auth.name}");
204+
205+
@Override
206+
protected Optional<String> clientId() {
207+
return Optional.of(clientId);
208+
}
209+
}
210+
{/for}
190211
}

runtime/src/main/java/io/quarkiverse/openapi/generator/providers/AbstractAuthProvider.java

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,31 @@ public abstract class AbstractAuthProvider implements AuthProvider {
2222
private static final String CANONICAL_AUTH_CONFIG_PROPERTY_NAME = "quarkus." +
2323
RUNTIME_TIME_CONFIG_PREFIX + ".%s.auth.%s.%s";
2424

25-
private final String openApiSpecId;
26-
private final String name;
25+
private String openApiSpecId;
26+
private String name;
2727
private final OpenApiGeneratorConfig generatorConfig;
2828
private AuthConfig authConfig;
2929
private final List<OperationAuthInfo> applyToOperations = new ArrayList<>();
3030

3131
protected AbstractAuthProvider() {
3232
// Required by CDI. Not supposed to be used.
33-
openApiSpecId = null;
3433
name = null;
3534
generatorConfig = null;
3635
}
3736

38-
protected AbstractAuthProvider(String openApiSpecId, String name, OpenApiGeneratorConfig generatorConfig) {
39-
this.openApiSpecId = openApiSpecId;
40-
this.name = name;
37+
protected AbstractAuthProvider(OpenApiGeneratorConfig generatorConfig) {
4138
this.generatorConfig = generatorConfig;
42-
Optional<SpecItemConfig> specItemConfig = generatorConfig.getItemConfig(openApiSpecId);
39+
}
40+
41+
protected void init(String name, String openApiSpecId) {
42+
this.name = name;
43+
setOpenApiSpecId(openApiSpecId);
44+
}
45+
46+
private void setOpenApiSpecId(String openApiSpecId) {
47+
this.openApiSpecId = openApiSpecId;
48+
Optional<SpecItemConfig> specItemConfig = Objects.requireNonNull(generatorConfig, "generatorConfig can't be null.")
49+
.getItemConfig(openApiSpecId);
4350
if (specItemConfig.isPresent()) {
4451
Optional<AuthsConfig> authsConfig = specItemConfig.get().getAuth();
4552
authsConfig.ifPresent(

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ public class ApiKeyAuthenticationProvider extends AbstractAuthProvider {
2424
public ApiKeyAuthenticationProvider(final String openApiSpecId, final String name, final ApiKeyIn apiKeyIn,
2525
final String apiKeyName,
2626
final OpenApiGeneratorConfig generatorConfig) {
27-
super(openApiSpecId, name, generatorConfig);
27+
super(generatorConfig);
28+
init(name, openApiSpecId);
2829
this.apiKeyIn = apiKeyIn;
2930
this.apiKeyName = apiKeyName;
3031
validateConfig();

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,8 @@ public class BasicAuthenticationProvider extends AbstractAuthProvider {
2121
static final String PASSWORD = "password";
2222

2323
public BasicAuthenticationProvider(final String openApiSpecId, String name, final OpenApiGeneratorConfig generatorConfig) {
24-
super(openApiSpecId, name, generatorConfig);
24+
super(generatorConfig);
25+
init(name, openApiSpecId);
2526
validateConfig();
2627
}
2728

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,8 @@ public class BearerAuthenticationProvider extends AbstractAuthProvider {
2020

2121
public BearerAuthenticationProvider(final String openApiSpecId, final String name, final String scheme,
2222
final OpenApiGeneratorConfig generatorConfig) {
23-
super(openApiSpecId, name, generatorConfig);
23+
super(generatorConfig);
24+
init(name, openApiSpecId);
2425
this.scheme = scheme;
2526
}
2627

Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
1-
package {apiPackage}.auth;
1+
package io.quarkiverse.openapi.generator.providers;
22

33
import static io.quarkiverse.openapi.generator.AuthConfig.TOKEN_PROPAGATION;
44

55
import java.io.IOException;
6-
import java.util.Optional;
76

87
import jakarta.ws.rs.client.ClientRequestContext;
98
import jakarta.ws.rs.core.HttpHeaders;
@@ -12,30 +11,30 @@
1211
import org.slf4j.LoggerFactory;
1312

1413
import io.quarkiverse.openapi.generator.OpenApiGeneratorConfig;
15-
import io.quarkiverse.openapi.generator.providers.AbstractAuthProvider;
16-
import io.quarkus.oidc.client.filter.OidcClientRequestFilter;
1714
import io.quarkus.oidc.common.runtime.OidcConstants;
1815

1916
@io.quarkus.arc.Priority(jakarta.ws.rs.Priorities.AUTHENTICATION)
20-
@jakarta.enterprise.context.ApplicationScoped
21-
public class {quarkus-generator.openApiSpecId}OAuth2AuthenticationProvider extends AbstractAuthProvider {
17+
@jakarta.enterprise.context.Dependent
18+
public class OAuth2AuthenticationProvider extends AbstractAuthProvider {
2219

23-
private static final Logger LOGGER = LoggerFactory.getLogger({quarkus-generator.openApiSpecId}OAuth2AuthenticationProvider.class);
20+
private static final Logger LOGGER = LoggerFactory.getLogger(OAuth2AuthenticationProvider.class);
2421

25-
private static final String SCHEMA_NAME = "oauth";
22+
private OidcClientRequestFilterDelegate delegate;
2623

27-
private final OidcClientRequestFilterDelegate delegate;
28-
29-
{quarkus-generator.openApiSpecId}OAuth2AuthenticationProvider() {
24+
@SuppressWarnings("unused")
25+
OAuth2AuthenticationProvider() {
3026
// Required by CDI. Not supposed to be used.
3127
delegate = null;
3228
}
3329

3430
@jakarta.inject.Inject
35-
public {quarkus-generator.openApiSpecId}OAuth2AuthenticationProvider(
36-
final OpenApiGeneratorConfig generatorConfig, final OidcClientRequestFilterDelegate delegate) {
37-
super("{quarkus-generator.openApiSpecId}", SCHEMA_NAME, generatorConfig);
31+
public OAuth2AuthenticationProvider(final OpenApiGeneratorConfig generatorConfig) {
32+
super(generatorConfig);
33+
}
34+
35+
public void init(String name, String openApiSpecId, OidcClientRequestFilterDelegate delegate) {
3836
this.delegate = delegate;
37+
super.init(name, openApiSpecId);
3938
validateConfig();
4039
}
4140

@@ -58,12 +57,7 @@ private void validateConfig() {
5857
}
5958
}
6059

61-
@jakarta.enterprise.context.ApplicationScoped
62-
static class OidcClientRequestFilterDelegate extends OidcClientRequestFilter {
63-
64-
@Override
65-
protected Optional<String> clientId() {
66-
return Optional.of(SCHEMA_NAME);
67-
}
60+
public interface OidcClientRequestFilterDelegate {
61+
void filter(ClientRequestContext requestContext) throws IOException;
6862
}
6963
}

0 commit comments

Comments
 (0)