summaryrefslogtreecommitdiffstats
path: root/controller-server
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-server
parentdef8a253dcaa512567a06f3f25c87b13835242b9 (diff)
Use SimplePrincipal internally in CloudTenant
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java20
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java10
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/filter/SignatureFilterTest.java2
4 files changed, 17 insertions, 17 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
index a340982bec0..da40f63d543 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/LockedTenant.java
@@ -125,15 +125,15 @@ public abstract class LockedTenant {
/** A locked CloudTenant. */
public static class Cloud extends LockedTenant {
- 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;
- private Cloud(TenantName name, Instant createdAt, LastLoginInfo lastLoginInfo, Optional<Principal> creator,
- BiMap<PublicKey, Principal> developerKeys, TenantInfo info,
+ private Cloud(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);
this.developerKeys = ImmutableBiMap.copyOf(developerKeys);
@@ -154,18 +154,18 @@ public abstract class LockedTenant {
}
public Cloud withDeveloperKey(PublicKey key, Principal principal) {
- BiMap<PublicKey, Principal> keys = HashBiMap.create(developerKeys);
- principal = new SimplePrincipal(principal.getName());
+ BiMap<PublicKey, SimplePrincipal> keys = HashBiMap.create(developerKeys);
+ SimplePrincipal simplePrincipal = new SimplePrincipal(principal.getName());
if (keys.containsKey(key))
throw new IllegalArgumentException("Key " + KeyUtils.toPem(key) + " is already owned by " + keys.get(key));
- if (keys.inverse().containsKey(principal))
- throw new IllegalArgumentException(principal + " is already associated with key " + KeyUtils.toPem(keys.inverse().get(principal)));
- keys.put(key, principal);
+ if (keys.inverse().containsKey(simplePrincipal))
+ throw new IllegalArgumentException(principal + " is already associated with key " + KeyUtils.toPem(keys.inverse().get(simplePrincipal)));
+ keys.put(key, simplePrincipal);
return new Cloud(name, createdAt, lastLoginInfo, creator, keys, info, tenantSecretStores, archiveAccess, invalidateUserSessionsBefore);
}
public Cloud withoutDeveloperKey(PublicKey key) {
- BiMap<PublicKey, Principal> keys = HashBiMap.create(developerKeys);
+ BiMap<PublicKey, SimplePrincipal> keys = HashBiMap.create(developerKeys);
keys.remove(key);
return new Cloud(name, createdAt, lastLoginInfo, creator, keys, info, tenantSecretStores, archiveAccess, invalidateUserSessionsBefore);
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
index e91fbe8b1b7..fc7cafe4c89 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
@@ -137,7 +137,7 @@ public class TenantSerializer {
root.setLong(deletedAtField, tenant.deletedAt().toEpochMilli());
}
- private void developerKeysToSlime(BiMap<PublicKey, Principal> keys, Cursor array) {
+ private void developerKeysToSlime(BiMap<PublicKey, ? extends Principal> keys, Cursor array) {
keys.forEach((key, user) -> {
Cursor object = array.addObject();
object.setString("key", KeyUtils.toPem(key));
@@ -184,8 +184,8 @@ public class TenantSerializer {
TenantName name = TenantName.from(tenantObject.field(nameField).asString());
Instant createdAt = SlimeUtils.instant(tenantObject.field(createdAtField));
LastLoginInfo lastLoginInfo = lastLoginInfoFromSlime(tenantObject.field(lastLoginInfoField));
- Optional<Principal> creator = SlimeUtils.optionalString(tenantObject.field(creatorField)).map(SimplePrincipal::new);
- BiMap<PublicKey, Principal> developerKeys = developerKeysFromSlime(tenantObject.field(pemDeveloperKeysField));
+ Optional<SimplePrincipal> creator = SlimeUtils.optionalString(tenantObject.field(creatorField)).map(SimplePrincipal::new);
+ BiMap<PublicKey, SimplePrincipal> developerKeys = developerKeysFromSlime(tenantObject.field(pemDeveloperKeysField));
TenantInfo info = tenantInfoFromSlime(tenantObject.field(tenantInfoField));
List<TenantSecretStore> tenantSecretStores = secretStoresFromSlime(tenantObject.field(secretStoresField));
ArchiveAccess archiveAccess = archiveAccessFromSlime(tenantObject);
@@ -200,8 +200,8 @@ public class TenantSerializer {
return new DeletedTenant(name, createdAt, deletedAt);
}
- private BiMap<PublicKey, Principal> developerKeysFromSlime(Inspector array) {
- ImmutableBiMap.Builder<PublicKey, Principal> keys = ImmutableBiMap.builder();
+ private BiMap<PublicKey, SimplePrincipal> developerKeysFromSlime(Inspector array) {
+ ImmutableBiMap.Builder<PublicKey, SimplePrincipal> keys = ImmutableBiMap.builder();
array.traverse((ArrayTraverser) (__, keyObject) ->
keys.put(KeyUtils.fromPemEncodedPublicKey(keyObject.field("key").asString()),
new SimplePrincipal(keyObject.field("user").asString())));
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index a4bb9034a85..9011274482b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -1081,7 +1081,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
return new SlimeJsonResponse(root);
}
- private void toSlime(Cursor keysArray, Map<PublicKey, Principal> keys) {
+ private void toSlime(Cursor keysArray, Map<PublicKey, ? extends Principal> keys) {
keys.forEach((key, principal) -> {
Cursor keyObject = keysArray.addObject();
keyObject.setString("key", KeyUtils.toPem(key));
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/filter/SignatureFilterTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/filter/SignatureFilterTest.java
index ec9be1f04c3..fcbecfa2e68 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/filter/SignatureFilterTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/filter/SignatureFilterTest.java
@@ -121,7 +121,7 @@ public class SignatureFilterTest {
Instant.EPOCH,
LastLoginInfo.EMPTY,
Optional.empty(),
- ImmutableBiMap.of(publicKey, () -> "user"),
+ ImmutableBiMap.of(publicKey, new SimplePrincipal("user")),
TenantInfo.empty(),
List.of(),
new ArchiveAccess(),