Skip to content

Commit d0b1ce1

Browse files
committed
Add SecretBasedAuthenticationPolicy reference to builders
Signed-off-by: Ricardo Zanini <[email protected]>
1 parent 6c46ace commit d0b1ce1

File tree

6 files changed

+73
-11
lines changed

6 files changed

+73
-11
lines changed

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/BasicAuthenticationPolicyBuilder.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,12 @@
1818
import io.serverlessworkflow.api.types.BasicAuthenticationPolicy;
1919
import io.serverlessworkflow.api.types.BasicAuthenticationPolicyConfiguration;
2020
import io.serverlessworkflow.api.types.BasicAuthenticationProperties;
21+
import io.serverlessworkflow.api.types.SecretBasedAuthenticationPolicy;
2122

2223
public final class BasicAuthenticationPolicyBuilder {
2324

24-
private final BasicAuthenticationProperties basicAuthenticationProperties;
25+
private BasicAuthenticationProperties basicAuthenticationProperties;
26+
private SecretBasedAuthenticationPolicy secretBasedAuthenticationPolicy;
2527

2628
BasicAuthenticationPolicyBuilder() {
2729
this.basicAuthenticationProperties = new BasicAuthenticationProperties();
@@ -37,10 +39,19 @@ public BasicAuthenticationPolicyBuilder password(String password) {
3739
return this;
3840
}
3941

42+
public BasicAuthenticationPolicyBuilder use(String secret) {
43+
this.secretBasedAuthenticationPolicy = new SecretBasedAuthenticationPolicy(secret);
44+
return this;
45+
}
46+
4047
public BasicAuthenticationPolicy build() {
4148
final BasicAuthenticationPolicyConfiguration configuration =
4249
new BasicAuthenticationPolicyConfiguration();
43-
configuration.setBasicAuthenticationProperties(basicAuthenticationProperties);
50+
if (this.secretBasedAuthenticationPolicy != null) {
51+
configuration.setBasicAuthenticationPolicySecret(secretBasedAuthenticationPolicy);
52+
} else {
53+
configuration.setBasicAuthenticationProperties(basicAuthenticationProperties);
54+
}
4455
return new BasicAuthenticationPolicy(configuration);
4556
}
4657
}

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/BearerAuthenticationPolicyBuilder.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,23 +18,32 @@
1818
import io.serverlessworkflow.api.types.BearerAuthenticationPolicy;
1919
import io.serverlessworkflow.api.types.BearerAuthenticationPolicyConfiguration;
2020
import io.serverlessworkflow.api.types.BearerAuthenticationProperties;
21+
import io.serverlessworkflow.api.types.SecretBasedAuthenticationPolicy;
2122

2223
public final class BearerAuthenticationPolicyBuilder {
23-
private final BearerAuthenticationProperties bearerAuthenticationProperties;
24+
private BearerAuthenticationProperties bearerAuthenticationProperties;
25+
private SecretBasedAuthenticationPolicy secretBasedAuthenticationPolicy;
2426

25-
BearerAuthenticationPolicyBuilder() {
26-
this.bearerAuthenticationProperties = new BearerAuthenticationProperties();
27-
}
27+
BearerAuthenticationPolicyBuilder() {}
2828

2929
public BearerAuthenticationPolicyBuilder token(final String token) {
30-
this.bearerAuthenticationProperties.setToken(token);
30+
this.bearerAuthenticationProperties = new BearerAuthenticationProperties().withToken(token);
31+
return this;
32+
}
33+
34+
public BearerAuthenticationPolicyBuilder use(final String secret) {
35+
this.secretBasedAuthenticationPolicy = new SecretBasedAuthenticationPolicy(secret);
3136
return this;
3237
}
3338

3439
public BearerAuthenticationPolicy build() {
3540
final BearerAuthenticationPolicyConfiguration configuration =
3641
new BearerAuthenticationPolicyConfiguration();
37-
configuration.setBearerAuthenticationProperties(bearerAuthenticationProperties);
42+
if (this.secretBasedAuthenticationPolicy != null) {
43+
configuration.setBearerAuthenticationPolicySecret(this.secretBasedAuthenticationPolicy);
44+
} else {
45+
configuration.setBearerAuthenticationProperties(bearerAuthenticationProperties);
46+
}
3847
return new BearerAuthenticationPolicy(configuration);
3948
}
4049
}

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/DigestAuthenticationPolicyBuilder.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,11 @@
1818
import io.serverlessworkflow.api.types.DigestAuthenticationPolicy;
1919
import io.serverlessworkflow.api.types.DigestAuthenticationPolicyConfiguration;
2020
import io.serverlessworkflow.api.types.DigestAuthenticationProperties;
21+
import io.serverlessworkflow.api.types.SecretBasedAuthenticationPolicy;
2122

2223
public final class DigestAuthenticationPolicyBuilder {
2324
private final DigestAuthenticationProperties digestAuthenticationProperties;
25+
private SecretBasedAuthenticationPolicy secretBasedAuthenticationPolicy;
2426

2527
DigestAuthenticationPolicyBuilder() {
2628
this.digestAuthenticationProperties = new DigestAuthenticationProperties();
@@ -36,10 +38,19 @@ public DigestAuthenticationPolicyBuilder password(String password) {
3638
return this;
3739
}
3840

41+
public DigestAuthenticationPolicyBuilder use(String secret) {
42+
this.secretBasedAuthenticationPolicy = new SecretBasedAuthenticationPolicy(secret);
43+
return this;
44+
}
45+
3946
public DigestAuthenticationPolicy build() {
4047
final DigestAuthenticationPolicyConfiguration configuration =
4148
new DigestAuthenticationPolicyConfiguration();
42-
configuration.setDigestAuthenticationProperties(digestAuthenticationProperties);
49+
if (this.secretBasedAuthenticationPolicy != null) {
50+
configuration.setDigestAuthenticationPolicySecret(this.secretBasedAuthenticationPolicy);
51+
} else {
52+
configuration.setDigestAuthenticationProperties(digestAuthenticationProperties);
53+
}
4354
return new DigestAuthenticationPolicy(configuration);
4455
}
4556
}

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/OAuth2AuthenticationPolicyBuilder.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,13 @@ public OAuth2AuthenticationPolicyBuilder endpoints(
3838
public OAuth2AuthenticationPolicy build() {
3939
final OAuth2AuthenticationPolicyConfiguration configuration =
4040
new OAuth2AuthenticationPolicyConfiguration();
41-
configuration.setOAuth2ConnectAuthenticationProperties(this.authenticationData);
41+
42+
if (this.secretBasedAuthenticationPolicy != null) {
43+
configuration.setOAuth2AuthenticationPolicySecret(this.secretBasedAuthenticationPolicy);
44+
} else {
45+
configuration.setOAuth2ConnectAuthenticationProperties(this.authenticationData);
46+
}
47+
4248
final OAuth2AuthenticationPolicy policy = new OAuth2AuthenticationPolicy();
4349
policy.setOauth2(configuration);
4450
return policy;

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/OIDCBuilder.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,13 @@
2222
import io.serverlessworkflow.api.types.OAuth2ConnectAuthenticationProperties;
2323
import io.serverlessworkflow.api.types.OAuth2TokenDefinition;
2424
import io.serverlessworkflow.api.types.OAuth2TokenRequest;
25+
import io.serverlessworkflow.api.types.SecretBasedAuthenticationPolicy;
2526
import java.util.List;
2627
import java.util.function.Consumer;
2728

2829
public abstract class OIDCBuilder<T extends AuthenticationPolicy> {
2930
protected final OAuth2ConnectAuthenticationProperties authenticationData;
31+
protected SecretBasedAuthenticationPolicy secretBasedAuthenticationPolicy;
3032

3133
OIDCBuilder() {
3234
this.authenticationData = new OAuth2ConnectAuthenticationProperties();
@@ -101,6 +103,11 @@ public OIDCBuilder<T> client(Consumer<OAuth2AuthenticationDataClientBuilder> cli
101103
return this;
102104
}
103105

106+
public OIDCBuilder<T> use(String secret) {
107+
this.secretBasedAuthenticationPolicy = new SecretBasedAuthenticationPolicy(secret);
108+
return this;
109+
}
110+
104111
protected final OAuth2AuthenticationData getAuthenticationData() {
105112
return authenticationData;
106113
}

fluent/spec/src/main/java/io/serverlessworkflow/fluent/spec/dsl/DSL.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,10 @@ public static AuthenticationConfigurer basic(String username, String password) {
340340
return a -> a.basic(b -> b.username(username).password(password));
341341
}
342342

343+
public static AuthenticationConfigurer basic(String secret) {
344+
return a -> a.basic(b -> b.use(secret));
345+
}
346+
343347
/**
344348
* Build a Bearer token authentication configurer.
345349
*
@@ -356,6 +360,10 @@ public static AuthenticationConfigurer bearer(String token) {
356360
return a -> a.bearer(b -> b.token(token));
357361
}
358362

363+
public static AuthenticationConfigurer bearerUse(String secret) {
364+
return a -> a.bearer(b -> b.use(secret));
365+
}
366+
359367
/**
360368
* Build a Digest authentication configurer with username and password.
361369
*
@@ -367,6 +375,10 @@ public static AuthenticationConfigurer digest(String username, String password)
367375
return a -> a.digest(d -> d.username(username).password(password));
368376
}
369377

378+
public static AuthenticationConfigurer digest(String secret) {
379+
return a -> a.digest(d -> d.use(secret));
380+
}
381+
370382
/**
371383
* Build an OpenID Connect (OIDC) authentication configurer without client credentials.
372384
*
@@ -401,7 +413,9 @@ public static AuthenticationConfigurer oidc(
401413
.client(c -> c.id(clientId).secret(clientSecret)));
402414
}
403415

404-
// TODO: we may create an OIDCSpec for chained builders if necessary
416+
public static AuthenticationConfigurer oidc(String secret) {
417+
return a -> a.openIDConnect(o -> o.use(secret));
418+
}
405419

406420
/**
407421
* Alias for {@link #oidc(String, OAuth2AuthenticationData.OAuth2AuthenticationDataGrant)} using
@@ -439,6 +453,10 @@ public static AuthenticationConfigurer oauth2(
439453
.client(c -> c.id(clientId).secret(clientSecret)));
440454
}
441455

456+
public static AuthenticationConfigurer oauth2(String secret) {
457+
return a -> a.openIDConnect(o -> o.use(secret));
458+
}
459+
442460
/**
443461
* Build a {@link RaiseSpec} for an error with a string type expression and HTTP status.
444462
*

0 commit comments

Comments
 (0)