diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2022-08-18 09:26:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-08-18 09:26:12 +0200 |
commit | b63dcea97a09fcc47fa1e6dc11166c3603fcea80 (patch) | |
tree | ed1f88352cb6771f8b2e0739a93a453ad7b8e7b2 /controller-api | |
parent | 9dba884a280bdd0b29136a1eaab0ee262dbceb43 (diff) | |
parent | fea0259eade6109025e9ff8e2f74680c123ea841 (diff) |
Merge pull request #23694 from vespa-engine/jonmv/compare-same-principal-types
Use SimplePrincipal internally in CloudTenant
Diffstat (limited to 'controller-api')
2 files changed, 12 insertions, 7 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SimplePrincipal.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SimplePrincipal.java index 780171d0ccb..363d0726a1f 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SimplePrincipal.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SimplePrincipal.java @@ -18,6 +18,10 @@ public class SimplePrincipal implements Principal { this.name = name; } + public static SimplePrincipal of(Principal principal) { + return new SimplePrincipal(principal.getName()); + } + @Override public String getName() { return name; diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java index 44f9c0ea3b8..ae0467fcc86 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java @@ -5,6 +5,7 @@ import com.google.common.collect.BiMap; import com.google.common.collect.ImmutableBiMap; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.hosted.controller.api.integration.secrets.TenantSecretStore; +import com.yahoo.vespa.hosted.controller.api.role.SimplePrincipal; import java.security.Principal; import java.security.PublicKey; @@ -20,16 +21,16 @@ import java.util.Optional; */ public class CloudTenant extends Tenant { - private final Optional<Principal> creator; - private final BiMap<PublicKey, Principal> developerKeys; + private final Optional<SimplePrincipal> creator; + private final BiMap<PublicKey, SimplePrincipal> developerKeys; private final TenantInfo info; private final List<TenantSecretStore> tenantSecretStores; private final ArchiveAccess archiveAccess; private final Optional<Instant> invalidateUserSessionsBefore; /** Public for the serialization layer — do not use! */ - public CloudTenant(TenantName name, Instant createdAt, LastLoginInfo lastLoginInfo, Optional<Principal> creator, - BiMap<PublicKey, Principal> developerKeys, TenantInfo info, + public CloudTenant(TenantName name, Instant createdAt, LastLoginInfo lastLoginInfo, Optional<SimplePrincipal> creator, + BiMap<PublicKey, SimplePrincipal> developerKeys, TenantInfo info, List<TenantSecretStore> tenantSecretStores, ArchiveAccess archiveAccess, Optional<Instant> invalidateUserSessionsBefore) { super(name, createdAt, lastLoginInfo, Optional.empty()); this.creator = creator; @@ -45,12 +46,12 @@ public class CloudTenant extends Tenant { return new CloudTenant(requireName(tenantName), createdAt, LastLoginInfo.EMPTY, - Optional.ofNullable(creator), + Optional.ofNullable(creator).map(SimplePrincipal::of), ImmutableBiMap.of(), TenantInfo.empty(), List.of(), new ArchiveAccess(), Optional.empty()); } /** The user that created the tenant */ - public Optional<Principal> creator() { + public Optional<SimplePrincipal> creator() { return creator; } @@ -60,7 +61,7 @@ public class CloudTenant extends Tenant { } /** Returns the set of developer keys and their corresponding developers for this tenant. */ - public BiMap<PublicKey, Principal> developerKeys() { return developerKeys; } + public BiMap<PublicKey, SimplePrincipal> developerKeys() { return developerKeys; } /** List of configured secret stores */ public List<TenantSecretStore> tenantSecretStores() { |