summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2022-08-17 12:04:11 +0200
committerjonmv <venstad@gmail.com>2022-08-17 12:04:11 +0200
commitfea0259eade6109025e9ff8e2f74680c123ea841 (patch)
treea1720e0fae5b2a7353e2277beb92d3c145c667ac /controller-api
parentdef8a253dcaa512567a06f3f25c87b13835242b9 (diff)
Use SimplePrincipal internally in CloudTenant
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/role/SimplePrincipal.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/CloudTenant.java15
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() {