remove deprecated AppRole- and TokenBuilder
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@ -105,53 +105,6 @@ public final class AppRole {
|
||||
public AppRole() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct complete {@link AppRole} object.
|
||||
* <p>
|
||||
* This constructor is used for transition from {@code bound_cidr_list} to {@code secret_id_bound_cidrs} only.
|
||||
*
|
||||
* @param name Role name (required)
|
||||
* @param id Role ID (optional)
|
||||
* @param bindSecretId Bind secret ID (optional)
|
||||
* @param secretIdBoundCidrs Whitelist of subnets in CIDR notation (optional)
|
||||
* @param secretIdNumUses Maximum number of uses per secret (optional)
|
||||
* @param secretIdTtl Maximum TTL in seconds for secrets (optional)
|
||||
* @param enableLocalSecretIds Enable local secret IDs (optional)
|
||||
* @param tokenTtl Token TTL in seconds (optional)
|
||||
* @param tokenMaxTtl Maximum token TTL in seconds, including renewals (optional)
|
||||
* @param tokenPolicies List of token policies (optional)
|
||||
* @param tokenBoundCidrs Whitelist of subnets in CIDR notation for associated tokens (optional)
|
||||
* @param tokenExplicitMaxTtl Explicit maximum TTL for associated tokens (optional)
|
||||
* @param tokenNoDefaultPolicy Enable or disable default policy for associated tokens (optional)
|
||||
* @param tokenNumUses Number of uses for tokens (optional)
|
||||
* @param tokenPeriod Duration in seconds, if set the token is a periodic token (optional)
|
||||
* @param tokenType Token type (optional)
|
||||
* @deprecated As of 0.9 in favor of {@link #builder(String)}. Will be removed with next major release.
|
||||
*/
|
||||
@Deprecated
|
||||
AppRole(final String name, final String id, final Boolean bindSecretId, final List<String> secretIdBoundCidrs,
|
||||
final Integer secretIdNumUses, final Integer secretIdTtl, final Boolean enableLocalSecretIds,
|
||||
final Integer tokenTtl, final Integer tokenMaxTtl, final List<String> tokenPolicies,
|
||||
final List<String> tokenBoundCidrs, final Integer tokenExplicitMaxTtl, final Boolean tokenNoDefaultPolicy,
|
||||
final Integer tokenNumUses, final Integer tokenPeriod, final String tokenType) {
|
||||
this.name = name;
|
||||
this.id = id;
|
||||
this.bindSecretId = bindSecretId;
|
||||
this.secretIdBoundCidrs = secretIdBoundCidrs;
|
||||
this.tokenPolicies = tokenPolicies;
|
||||
this.secretIdNumUses = secretIdNumUses;
|
||||
this.secretIdTtl = secretIdTtl;
|
||||
this.enableLocalSecretIds = enableLocalSecretIds;
|
||||
this.tokenTtl = tokenTtl;
|
||||
this.tokenMaxTtl = tokenMaxTtl;
|
||||
this.tokenBoundCidrs = tokenBoundCidrs;
|
||||
this.tokenExplicitMaxTtl = tokenExplicitMaxTtl;
|
||||
this.tokenNoDefaultPolicy = tokenNoDefaultPolicy;
|
||||
this.tokenNumUses = tokenNumUses;
|
||||
this.tokenPeriod = tokenPeriod;
|
||||
this.tokenType = tokenType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct {@link AppRole} object from {@link AppRole.Builder}.
|
||||
*
|
||||
@ -265,16 +218,6 @@ public final class AppRole {
|
||||
return tokenPolicies;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list of token policies
|
||||
* @deprecated Use {@link #getTokenPolicies()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@JsonIgnore
|
||||
public List<String> getPolicies() {
|
||||
return getTokenPolicies();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param tokenPolicies list of token policies
|
||||
* @since 0.9
|
||||
@ -284,16 +227,6 @@ public final class AppRole {
|
||||
this.tokenPolicies = tokenPolicies;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param policies list of policies
|
||||
* @deprecated Use {@link #setTokenPolicies(List)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@JsonIgnore
|
||||
public void setPolicies(final List<String> policies) {
|
||||
setTokenPolicies(policies);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list of policies as comma-separated {@link String}
|
||||
* @since 0.9
|
||||
@ -307,16 +240,6 @@ public final class AppRole {
|
||||
return String.join(",", tokenPolicies);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return list of policies as comma-separated {@link String}
|
||||
* @deprecated Use {@link #getTokenPoliciesString()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@JsonIgnore
|
||||
public String getPoliciesString() {
|
||||
return getTokenPoliciesString();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return maximum number of uses per secret
|
||||
*/
|
||||
@ -385,16 +308,6 @@ public final class AppRole {
|
||||
return tokenPeriod;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return duration in seconds, if specified
|
||||
* @deprecated Use {@link #getTokenPeriod()} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
@JsonIgnore
|
||||
public Integer getPeriod() {
|
||||
return getTokenPeriod();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return duration in seconds, if specified
|
||||
* @since 0.9
|
||||
@ -536,18 +449,6 @@ public final class AppRole {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add given policies.
|
||||
*
|
||||
* @param policies the policies
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPolicies(List)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public Builder withPolicies(final List<String> policies) {
|
||||
return withTokenPolicies(policies);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a single policy.
|
||||
*
|
||||
@ -563,18 +464,6 @@ public final class AppRole {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a single policy.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPolicy(String)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public Builder withPolicy(final String policy) {
|
||||
return withTokenPolicy(policy);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set number of uses for sectet IDs.
|
||||
*
|
||||
@ -708,31 +597,6 @@ public final class AppRole {
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set renewal period for generated token in seconds.
|
||||
*
|
||||
* @param tokenPeriod period in seconds
|
||||
* @return self
|
||||
* @since 0.9
|
||||
* @deprecated Use {@link #withTokenPeriod(Integer)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public Builder wit0hTokenPeriod(final Integer tokenPeriod) {
|
||||
return withTokenPeriod(tokenPeriod);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set renewal period for generated token in seconds.
|
||||
*
|
||||
* @param period period in seconds
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPeriod(Integer)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public Builder withPeriod(final Integer period) {
|
||||
return withTokenPeriod(period);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set type of generated token.
|
||||
*
|
||||
|
@ -1,378 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016-2021 Stefan Kalscheuer
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package de.stklcode.jvault.connector.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* A builder for vault AppRole roles..
|
||||
*
|
||||
* @author Stefan Kalscheuer
|
||||
* @since 0.4.0
|
||||
* @deprecated As of 0.9 in favor of {@link AppRole.Builder}.
|
||||
*/
|
||||
@Deprecated
|
||||
public final class AppRoleBuilder {
|
||||
private String name;
|
||||
private String id;
|
||||
private Boolean bindSecretId;
|
||||
private List<String> secretIdBoundCidrs;
|
||||
private List<String> tokenPolicies;
|
||||
private Integer secretIdNumUses;
|
||||
private Integer secretIdTtl;
|
||||
private Boolean enableLocalSecretIds;
|
||||
private Integer tokenTtl;
|
||||
private Integer tokenMaxTtl;
|
||||
private List<String> tokenBoundCidrs;
|
||||
private Integer tokenExplicitMaxTtl;
|
||||
private Boolean tokenNoDefaultPolicy;
|
||||
private Integer tokenNumUses;
|
||||
private Integer tokenPeriod;
|
||||
private Token.Type tokenType;
|
||||
|
||||
/**
|
||||
* Construct {@link AppRoleBuilder} with only the role name set.
|
||||
*
|
||||
* @param name Role name
|
||||
*/
|
||||
public AppRoleBuilder(final String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add custom role ID. (optional)
|
||||
*
|
||||
* @param id the ID
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withId(final String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if role is bound to secret ID.
|
||||
*
|
||||
* @param bindSecretId the display name
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withBindSecretID(final Boolean bindSecretId) {
|
||||
this.bindSecretId = bindSecretId;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Bind role to secret ID.
|
||||
* Convenience method for {@link #withBindSecretID(Boolean)}
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withBindSecretID() {
|
||||
return withBindSecretID(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Do not bind role to secret ID.
|
||||
* Convenience method for {@link #withBindSecretID(Boolean)}
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withoutBindSecretID() {
|
||||
return withBindSecretID(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set bound CIDR blocks.
|
||||
*
|
||||
* @param secretIdBoundCidrs List of CIDR blocks which can perform login
|
||||
* @return self
|
||||
* @since 0.8 replaces {@code withBoundCidrList(List)}
|
||||
*/
|
||||
public AppRoleBuilder withSecretIdBoundCidrs(final List<String> secretIdBoundCidrs) {
|
||||
if (this.secretIdBoundCidrs == null) {
|
||||
this.secretIdBoundCidrs = new ArrayList<>();
|
||||
}
|
||||
this.secretIdBoundCidrs.addAll(secretIdBoundCidrs);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a CIDR block to list of bound blocks for secret.
|
||||
*
|
||||
* @param secretBoundCidr the CIDR block
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withSecretBoundCidr(final String secretBoundCidr) {
|
||||
if (secretIdBoundCidrs == null) {
|
||||
secretIdBoundCidrs = new ArrayList<>();
|
||||
}
|
||||
secretIdBoundCidrs.add(secretBoundCidr);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add given policies.
|
||||
*
|
||||
* @param tokenPolicies the token policies
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenPolicies(final List<String> tokenPolicies) {
|
||||
if (this.tokenPolicies == null) {
|
||||
this.tokenPolicies = new ArrayList<>();
|
||||
}
|
||||
this.tokenPolicies.addAll(tokenPolicies);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add given policies.
|
||||
*
|
||||
* @param policies the policies
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPolicies(List)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public AppRoleBuilder withPolicies(final List<String> policies) {
|
||||
return withTokenPolicies(policies);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a single policy.
|
||||
*
|
||||
* @param tokenPolicy the token policy
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenPolicy(final String tokenPolicy) {
|
||||
if (this.tokenPolicies == null) {
|
||||
this.tokenPolicies = new ArrayList<>();
|
||||
}
|
||||
tokenPolicies.add(tokenPolicy);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a single policy.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPolicy(String)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public AppRoleBuilder withPolicy(final String policy) {
|
||||
return withTokenPolicy(policy);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set number of uses for secret IDs.
|
||||
*
|
||||
* @param secretIdNumUses the number of uses
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withSecretIdNumUses(final Integer secretIdNumUses) {
|
||||
this.secretIdNumUses = secretIdNumUses;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default secret ID TTL in seconds.
|
||||
*
|
||||
* @param secretIdTtl the TTL
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withSecretIdTtl(final Integer secretIdTtl) {
|
||||
this.secretIdTtl = secretIdTtl;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable local secret IDs.
|
||||
*
|
||||
* @param enableLocalSecretIds Enable local secret IDs?
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withEnableLocalSecretIds(final Boolean enableLocalSecretIds) {
|
||||
this.enableLocalSecretIds = enableLocalSecretIds;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default token TTL in seconds.
|
||||
*
|
||||
* @param tokenTtl the TTL
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withTokenTtl(final Integer tokenTtl) {
|
||||
this.tokenTtl = tokenTtl;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set maximum token TTL in seconds.
|
||||
*
|
||||
* @param tokenMaxTtl the TTL
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withTokenMaxTtl(final Integer tokenMaxTtl) {
|
||||
this.tokenMaxTtl = tokenMaxTtl;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set bound CIDR blocks for associated tokens.
|
||||
*
|
||||
* @param tokenBoundCidrs List of CIDR blocks which can perform login
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenBoundCidrs(final List<String> tokenBoundCidrs) {
|
||||
if (this.tokenBoundCidrs == null) {
|
||||
this.tokenBoundCidrs = new ArrayList<>();
|
||||
}
|
||||
this.tokenBoundCidrs.addAll(tokenBoundCidrs);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a CIDR block to list of bound blocks for token.
|
||||
*
|
||||
* @param tokenBoundCidr the CIDR block
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenBoundCidr(final String tokenBoundCidr) {
|
||||
if (tokenBoundCidrs == null) {
|
||||
tokenBoundCidrs = new ArrayList<>();
|
||||
}
|
||||
tokenBoundCidrs.add(tokenBoundCidr);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set explicit maximum token TTL in seconds.
|
||||
*
|
||||
* @param tokenExplicitMaxTtl the TTL
|
||||
* @return self
|
||||
*/
|
||||
public AppRoleBuilder withTokenExplicitMaxTtl(final Integer tokenExplicitMaxTtl) {
|
||||
this.tokenExplicitMaxTtl = tokenExplicitMaxTtl;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable or disable default policy for generated token.
|
||||
*
|
||||
* @param tokenNoDefaultPolicy Enable default policy for token?
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenNoDefaultPolicy(final Boolean tokenNoDefaultPolicy) {
|
||||
this.tokenNoDefaultPolicy = tokenNoDefaultPolicy;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set number of uses for generated tokens.
|
||||
*
|
||||
* @param tokenNumUses number of uses for tokens
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenNumUses(final Integer tokenNumUses) {
|
||||
this.tokenNumUses = tokenNumUses;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set renewal period for generated token in seconds.
|
||||
*
|
||||
* @param tokenPeriod period in seconds
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenPeriod(final Integer tokenPeriod) {
|
||||
this.tokenPeriod = tokenPeriod;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set renewal period for generated token in seconds.
|
||||
*
|
||||
* @param tokenPeriod period in seconds
|
||||
* @return self
|
||||
* @since 0.9
|
||||
* @deprecated Use {@link #withTokenPeriod(Integer)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public AppRoleBuilder wit0hTokenPeriod(final Integer tokenPeriod) {
|
||||
return withTokenPeriod(tokenPeriod);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set renewal period for generated token in seconds.
|
||||
*
|
||||
* @param period period in seconds
|
||||
* @return self
|
||||
* @deprecated Use {@link #withTokenPeriod(Integer)} instead.
|
||||
*/
|
||||
@Deprecated
|
||||
public AppRoleBuilder withPeriod(final Integer period) {
|
||||
return withTokenPeriod(period);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set type of generated token.
|
||||
*
|
||||
* @param tokenType token type
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public AppRoleBuilder withTokenType(final Token.Type tokenType) {
|
||||
this.tokenType = tokenType;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the AppRole role based on given parameters.
|
||||
*
|
||||
* @return the role
|
||||
*/
|
||||
public AppRole build() {
|
||||
return new AppRole(
|
||||
name,
|
||||
id,
|
||||
bindSecretId,
|
||||
secretIdBoundCidrs,
|
||||
secretIdNumUses,
|
||||
secretIdTtl,
|
||||
enableLocalSecretIds,
|
||||
tokenTtl,
|
||||
tokenMaxTtl,
|
||||
tokenPolicies,
|
||||
tokenBoundCidrs,
|
||||
tokenExplicitMaxTtl,
|
||||
tokenNoDefaultPolicy,
|
||||
tokenNumUses,
|
||||
tokenPeriod,
|
||||
tokenType != null ? tokenType.value() : null
|
||||
);
|
||||
}
|
||||
}
|
@ -98,71 +98,6 @@ public final class Token {
|
||||
public Token() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct complete {@link Token} object with default type.
|
||||
*
|
||||
* @param id Token ID (optional)
|
||||
* @param displayName Token display name (optional)
|
||||
* @param noParent Token has no parent (optional)
|
||||
* @param noDefaultPolicy Do not add default policy (optional)
|
||||
* @param ttl Token TTL in seconds (optional)
|
||||
* @param numUses Number of uses (optional)
|
||||
* @param policies List of policies (optional)
|
||||
* @param meta Metadata (optional)
|
||||
* @param renewable Is the token renewable (optional)
|
||||
* @deprecated As of 0.9 in favor of {@link #builder()}. Will be removed with next major release.
|
||||
*/
|
||||
@Deprecated
|
||||
public Token(final String id,
|
||||
final String displayName,
|
||||
final Boolean noParent,
|
||||
final Boolean noDefaultPolicy,
|
||||
final Integer ttl,
|
||||
final Integer numUses,
|
||||
final List<String> policies,
|
||||
final Map<String, String> meta,
|
||||
final Boolean renewable) {
|
||||
this(id, Type.DEFAULT.value(), displayName, noParent, noDefaultPolicy, ttl, numUses, policies, meta, renewable);
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct complete {@link Token} object.
|
||||
*
|
||||
* @param id Token ID (optional)
|
||||
* @param type Token type (optional)
|
||||
* @param displayName Token display name (optional)
|
||||
* @param noParent Token has no parent (optional)
|
||||
* @param noDefaultPolicy Do not add default policy (optional)
|
||||
* @param ttl Token TTL in seconds (optional)
|
||||
* @param numUses Number of uses (optional)
|
||||
* @param policies List of policies (optional)
|
||||
* @param meta Metadata (optional)
|
||||
* @param renewable Is the token renewable (optional)
|
||||
* @deprecated As of 0.9 in favor of {@link #builder()}. Will be removed with next major release.
|
||||
*/
|
||||
@Deprecated
|
||||
public Token(final String id,
|
||||
final String type,
|
||||
final String displayName,
|
||||
final Boolean noParent,
|
||||
final Boolean noDefaultPolicy,
|
||||
final Integer ttl,
|
||||
final Integer numUses,
|
||||
final List<String> policies,
|
||||
final Map<String, String> meta,
|
||||
final Boolean renewable) {
|
||||
this.id = id;
|
||||
this.type = type;
|
||||
this.displayName = displayName;
|
||||
this.ttl = ttl;
|
||||
this.numUses = numUses;
|
||||
this.noParent = noParent;
|
||||
this.noDefaultPolicy = noDefaultPolicy;
|
||||
this.policies = policies;
|
||||
this.meta = meta;
|
||||
this.renewable = renewable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct {@link Token} object from {@link Builder}.
|
||||
*
|
||||
|
@ -1,275 +0,0 @@
|
||||
/*
|
||||
* Copyright 2016-2021 Stefan Kalscheuer
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package de.stklcode.jvault.connector.model;
|
||||
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* A builder for vault tokens.
|
||||
*
|
||||
* @author Stefan Kalscheuer
|
||||
* @since 0.4.0
|
||||
* @deprecated As of 0.9 in favor of {@link Token.Builder}.
|
||||
*/
|
||||
@Deprecated
|
||||
public final class TokenBuilder {
|
||||
private String id;
|
||||
private Token.Type type;
|
||||
private String displayName;
|
||||
private Boolean noParent;
|
||||
private Boolean noDefaultPolicy;
|
||||
private Integer ttl;
|
||||
private Integer numUses;
|
||||
private List<String> policies;
|
||||
private Map<String, String> meta;
|
||||
private Boolean renewable;
|
||||
|
||||
/**
|
||||
* Add token ID. (optional)
|
||||
*
|
||||
* @param id the ID
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withId(final String id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Specify token type.
|
||||
*
|
||||
* @param type the type
|
||||
* @return self
|
||||
* @since 0.9
|
||||
*/
|
||||
public TokenBuilder withType(final Token.Type type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add display name.
|
||||
*
|
||||
* @param displayName the display name
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withDisplayName(final String displayName) {
|
||||
this.displayName = displayName;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set desired time to live.
|
||||
*
|
||||
* @param ttl the ttl
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withTtl(final Integer ttl) {
|
||||
this.ttl = ttl;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set desired number of uses.
|
||||
*
|
||||
* @param numUses the number of uses
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withNumUses(final Integer numUses) {
|
||||
this.numUses = numUses;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set TRUE if the token should be created without parent.
|
||||
*
|
||||
* @param noParent if TRUE, token is created as orphan
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withNoParent(final boolean noParent) {
|
||||
this.noParent = noParent;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create token without parent.
|
||||
* Convenience method for withNoParent()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder asOrphan() {
|
||||
return withNoParent(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create token with parent.
|
||||
* Convenience method for withNoParent()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withParent() {
|
||||
return withNoParent(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set TRUE if the default policy should not be part of this token.
|
||||
*
|
||||
* @param noDefaultPolicy if TRUE, default policy is not attached
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withNoDefaultPolicy(final boolean noDefaultPolicy) {
|
||||
this.noDefaultPolicy = noDefaultPolicy;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach default policy to token.
|
||||
* Convenience method for withNoDefaultPolicy()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withDefaultPolicy() {
|
||||
return withNoDefaultPolicy(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Do not attach default policy to token.
|
||||
* Convenience method for withNoDefaultPolicy()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withoutDefaultPolicy() {
|
||||
return withNoDefaultPolicy(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add given policies.
|
||||
*
|
||||
* @param policies the policies
|
||||
* @return self
|
||||
* @since 0.5.0
|
||||
*/
|
||||
public TokenBuilder withPolicies(final String... policies) {
|
||||
return withPolicies(Arrays.asList(policies));
|
||||
}
|
||||
|
||||
/**
|
||||
* Add given policies.
|
||||
*
|
||||
* @param policies the policies
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withPolicies(final List<String> policies) {
|
||||
if (this.policies == null) {
|
||||
this.policies = new ArrayList<>();
|
||||
}
|
||||
this.policies.addAll(policies);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a single policy.
|
||||
*
|
||||
* @param policy the policy
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withPolicy(final String policy) {
|
||||
if (this.policies == null) {
|
||||
this.policies = new ArrayList<>();
|
||||
}
|
||||
policies.add(policy);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add meta data.
|
||||
*
|
||||
* @param meta the metadata
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withMeta(final Map<String, String> meta) {
|
||||
if (this.meta == null) {
|
||||
this.meta = new HashMap<>();
|
||||
}
|
||||
this.meta.putAll(meta);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add meta data.
|
||||
*
|
||||
* @param key the key
|
||||
* @param value the value
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withMeta(final String key, final String value) {
|
||||
if (this.meta == null) {
|
||||
this.meta = new HashMap<>();
|
||||
}
|
||||
this.meta.put(key, value);
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set if token is renewable.
|
||||
*
|
||||
* @param renewable TRUE, if renewable
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder withRenewable(final Boolean renewable) {
|
||||
this.renewable = renewable;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set token to be renewable.
|
||||
* Convenience method for withRenewable()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder renewable() {
|
||||
return withRenewable(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Set token to be not renewable.
|
||||
* Convenience method for withRenewable()
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public TokenBuilder notRenewable() {
|
||||
return withRenewable(false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the token based on given parameters.
|
||||
*
|
||||
* @return the token
|
||||
*/
|
||||
public Token build() {
|
||||
return new Token(id,
|
||||
type != null ? type.value() : null,
|
||||
displayName,
|
||||
noParent,
|
||||
noDefaultPolicy,
|
||||
ttl,
|
||||
numUses,
|
||||
policies,
|
||||
meta,
|
||||
renewable);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user