Skip to content

Commit 04f0ec3

Browse files
author
Ilya Sher
committed
Add support for key_usage
1 parent 21029e0 commit 04f0ec3

2 files changed

Lines changed: 17 additions & 11 deletions

File tree

src/main/java/com/bettercloud/vault/api/pki/Pki.java

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
import com.bettercloud.vault.rest.RestResponse;
1010

1111
import java.util.List;
12+
import java.util.stream.Collectors;
13+
1214

1315
/**
1416
* <p>The implementing class for operations on Vault's PKI backend.</p>
@@ -484,14 +486,7 @@ private String roleOptionsToJson(final RoleOptions options) {
484486
addJsonFieldIfNotNull(jsonObject, "max_ttl", options.getMaxTtl());
485487
addJsonFieldIfNotNull(jsonObject, "allow_localhost", options.getAllowLocalhost());
486488
if (options.getAllowedDomains() != null && options.getAllowedDomains().size() > 0) {
487-
final StringBuilder allowedDomains = new StringBuilder();
488-
for (int index = 0; index < options.getAllowedDomains().size(); index++) {
489-
allowedDomains.append(options.getAllowedDomains().get(index));
490-
if (index + 1 < options.getAllowedDomains().size()) {
491-
allowedDomains.append(',');
492-
}
493-
}
494-
addJsonFieldIfNotNull(jsonObject, "allowed_domains", allowedDomains.toString());
489+
addJsonFieldIfNotNull(jsonObject, "allowed_domains", options.getAllowedDomains().stream().collect(Collectors.joining(",")));
495490
}
496491
addJsonFieldIfNotNull(jsonObject, "allow_spiffe_name", options.getAllowSpiffename());
497492
addJsonFieldIfNotNull(jsonObject, "allow_bare_domains", options.getAllowBareDomains());
@@ -507,6 +502,9 @@ private String roleOptionsToJson(final RoleOptions options) {
507502
addJsonFieldIfNotNull(jsonObject, "key_bits", options.getKeyBits());
508503
addJsonFieldIfNotNull(jsonObject, "use_csr_common_name", options.getUseCsrCommonName());
509504
addJsonFieldIfNotNull(jsonObject, "use_csr_sans", options.getUseCsrSans());
505+
if (options.getKeyUsage() != null && options.getKeyUsage().size() > 0) {
506+
addJsonFieldIfNotNull(jsonObject, "key_usage", options.getKeyUsage().stream().collect(Collectors.joining(",")));
507+
}
510508
}
511509
return jsonObject.toString();
512510
}

src/main/java/com/bettercloud/vault/api/pki/RoleOptions.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,12 +35,11 @@ public class RoleOptions implements Serializable {
3535
private String keyType;
3636
private Long keyBits;
3737
private Boolean useCsrCommonName;
38-
39-
4038
private Boolean allowSpiffename;
39+
private Boolean useCsrSans;
40+
private List<String> keyUsage;
4141

4242

43-
private Boolean useCsrSans;
4443
/**
4544
* @param ttl (optional) The Time To Live value provided as a string duration with time suffix. Hour is the largest suffix. If not set, uses the system default value or the value of max_ttl, whichever is shorter.
4645
*
@@ -293,4 +292,13 @@ public Boolean getUseCsrCommonName() {
293292
public Boolean getUseCsrSans() { return useCsrSans; }
294293
public Boolean getAllowSpiffename() { return allowSpiffename; }
295294

295+
296+
public RoleOptions keyUsage(List<String> keyUsage) {
297+
this.keyUsage = keyUsage;
298+
return this;
299+
}
300+
301+
public List<String> getKeyUsage() {
302+
return keyUsage;
303+
}
296304
}

0 commit comments

Comments
 (0)