From a55c4396e803ae96d62aed8f17f06bb5878f391b Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Mon, 5 Feb 2018 16:05:47 +0100 Subject: [PATCH] AccountSshKey: Move from reviewdb.client package into server.account package This class is no longer a ReviewDb class and shouldn't be used by the GWT UI. Change-Id: I46b1b76c2375700ecaac5bc547e7507b11869d64 Signed-off-by: Edwin Kempin --- .../google/gerrit/pgm/init/InitAdminUser.java | 2 +- .../init/VersionedAuthorizedKeysOnInit.java | 2 +- .../gerrit/reviewdb/client/Account.java | 6 +- .../server/account/AccountResource.java | 1 - .../account}/AccountSshKey.java | 3 +- .../gerrit/server/account/AuthorizedKeys.java | 1 - .../account/VersionedAuthorizedKeys.java | 3 +- .../gerrit/server/mail/send/AddKeySender.java | 2 +- .../server/restapi/account/AddSshKey.java | 2 +- .../server/restapi/account/GetSshKeys.java | 2 +- .../server/restapi/account/SshKeys.java | 2 +- .../gerrit/server/schema/Schema_124.java | 2 +- .../gerrit/server/ssh/NoSshKeyCache.java | 2 +- .../gerrit/server/ssh/SshKeyCreator.java | 2 +- .../gerrit/sshd/DatabasePubKeyAuth.java | 2 +- .../google/gerrit/sshd/SshKeyCacheEntry.java | 2 +- .../google/gerrit/sshd/SshKeyCacheImpl.java | 2 +- .../google/gerrit/sshd/SshKeyCreatorImpl.java | 2 +- java/com/google/gerrit/sshd/SshUtil.java | 2 +- .../sshd/commands/SetAccountCommand.java | 2 +- .../reviewdb/client/AccountSshKeyTest.java | 63 ------------------- .../server/account/AuthorizedKeysTest.java | 36 ++++++++++- 22 files changed, 56 insertions(+), 87 deletions(-) rename java/com/google/gerrit/{reviewdb/client => server/account}/AccountSshKey.java (97%) delete mode 100644 javatests/com/google/gerrit/reviewdb/client/AccountSshKeyTest.java diff --git a/java/com/google/gerrit/pgm/init/InitAdminUser.java b/java/com/google/gerrit/pgm/init/InitAdminUser.java index 1c27f5ef06..6e41a0756b 100644 --- a/java/com/google/gerrit/pgm/init/InitAdminUser.java +++ b/java/com/google/gerrit/pgm/init/InitAdminUser.java @@ -27,8 +27,8 @@ import com.google.gerrit.pgm.init.api.InitFlags; import com.google.gerrit.pgm.init.api.InitStep; import com.google.gerrit.pgm.init.api.SequencesOnInit; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.server.ReviewDb; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.AccountState; import com.google.gerrit.server.account.externalids.ExternalId; import com.google.gerrit.server.config.AllUsersName; diff --git a/java/com/google/gerrit/pgm/init/VersionedAuthorizedKeysOnInit.java b/java/com/google/gerrit/pgm/init/VersionedAuthorizedKeysOnInit.java index 8a1a5faea8..757c9a4542 100644 --- a/java/com/google/gerrit/pgm/init/VersionedAuthorizedKeysOnInit.java +++ b/java/com/google/gerrit/pgm/init/VersionedAuthorizedKeysOnInit.java @@ -21,8 +21,8 @@ import com.google.gerrit.pgm.init.api.AllUsersNameOnInitProvider; import com.google.gerrit.pgm.init.api.InitFlags; import com.google.gerrit.pgm.init.api.VersionedMetaDataOnInit; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.client.RefNames; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.AuthorizedKeys; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.config.SitePaths; diff --git a/java/com/google/gerrit/reviewdb/client/Account.java b/java/com/google/gerrit/reviewdb/client/Account.java index 1cd48c9dba..c4642631dc 100644 --- a/java/com/google/gerrit/reviewdb/client/Account.java +++ b/java/com/google/gerrit/reviewdb/client/Account.java @@ -39,9 +39,9 @@ import java.util.Optional; * and a personal email address. *
  • {@link AccountGroupMember}: membership of the user in a specific human managed {@link * AccountGroup}. Multiple records can exist when the user is a member of more than one group. - *
  • {@link AccountSshKey}: user's public SSH keys, for authentication through the internal SSH - * daemon. One record per SSH key uploaded by the user, keys are checked in random order until - * a match is found. + *
  • AccountSshKey: user's public SSH keys, for authentication through the internal SSH daemon. + * One record per SSH key uploaded by the user, keys are checked in random order until a match + * is found. *
  • {@link DiffPreferencesInfo}: user's preferences for rendering side-to-side and unified diff * */ diff --git a/java/com/google/gerrit/server/account/AccountResource.java b/java/com/google/gerrit/server/account/AccountResource.java index 27e713fa02..d09dff51d8 100644 --- a/java/com/google/gerrit/server/account/AccountResource.java +++ b/java/com/google/gerrit/server/account/AccountResource.java @@ -16,7 +16,6 @@ package com.google.gerrit.server.account; import com.google.gerrit.extensions.restapi.RestResource; import com.google.gerrit.extensions.restapi.RestView; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.client.Change; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.change.ChangeResource; diff --git a/java/com/google/gerrit/reviewdb/client/AccountSshKey.java b/java/com/google/gerrit/server/account/AccountSshKey.java similarity index 97% rename from java/com/google/gerrit/reviewdb/client/AccountSshKey.java rename to java/com/google/gerrit/server/account/AccountSshKey.java index 6874be146a..4457fec5dc 100644 --- a/java/com/google/gerrit/reviewdb/client/AccountSshKey.java +++ b/java/com/google/gerrit/server/account/AccountSshKey.java @@ -12,8 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package com.google.gerrit.reviewdb.client; +package com.google.gerrit.server.account; +import com.google.gerrit.reviewdb.client.Account; import java.io.Serializable; import java.util.Objects; diff --git a/java/com/google/gerrit/server/account/AuthorizedKeys.java b/java/com/google/gerrit/server/account/AuthorizedKeys.java index 4d86ab22fd..6f30888f94 100644 --- a/java/com/google/gerrit/server/account/AuthorizedKeys.java +++ b/java/com/google/gerrit/server/account/AuthorizedKeys.java @@ -16,7 +16,6 @@ package com.google.gerrit.server.account; import com.google.common.annotations.VisibleForTesting; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import java.util.ArrayList; import java.util.Collection; import java.util.List; diff --git a/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java b/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java index 8cffe92aa2..94f308df68 100644 --- a/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java +++ b/java/com/google/gerrit/server/account/VersionedAuthorizedKeys.java @@ -22,10 +22,9 @@ import com.google.common.base.Strings; import com.google.common.collect.Ordering; import com.google.gerrit.common.errors.InvalidSshKeyException; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; -import com.google.gerrit.reviewdb.client.AccountSshKey.Id; import com.google.gerrit.reviewdb.client.RefNames; import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.account.AccountSshKey.Id; import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.MetaDataUpdate; diff --git a/java/com/google/gerrit/server/mail/send/AddKeySender.java b/java/com/google/gerrit/server/mail/send/AddKeySender.java index 30938f1e9e..3622cf9c7c 100644 --- a/java/com/google/gerrit/server/mail/send/AddKeySender.java +++ b/java/com/google/gerrit/server/mail/send/AddKeySender.java @@ -18,8 +18,8 @@ import com.google.common.base.Joiner; import com.google.gerrit.common.errors.EmailException; import com.google.gerrit.extensions.api.changes.RecipientType; import com.google.gerrit.extensions.restapi.AuthException; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.mail.Address; import com.google.gerrit.server.permissions.GlobalPermission; import com.google.gerrit.server.permissions.PermissionBackend; diff --git a/java/com/google/gerrit/server/restapi/account/AddSshKey.java b/java/com/google/gerrit/server/restapi/account/AddSshKey.java index e1949eed32..4485f70489 100644 --- a/java/com/google/gerrit/server/restapi/account/AddSshKey.java +++ b/java/com/google/gerrit/server/restapi/account/AddSshKey.java @@ -26,10 +26,10 @@ import com.google.gerrit.extensions.restapi.BadRequestException; import com.google.gerrit.extensions.restapi.RawInput; import com.google.gerrit.extensions.restapi.Response; import com.google.gerrit.extensions.restapi.RestModifyView; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResource; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.mail.send.AddKeySender; import com.google.gerrit.server.permissions.GlobalPermission; diff --git a/java/com/google/gerrit/server/restapi/account/GetSshKeys.java b/java/com/google/gerrit/server/restapi/account/GetSshKeys.java index 362812c8e4..15156dca96 100644 --- a/java/com/google/gerrit/server/restapi/account/GetSshKeys.java +++ b/java/com/google/gerrit/server/restapi/account/GetSshKeys.java @@ -19,10 +19,10 @@ import com.google.common.collect.Lists; import com.google.gerrit.extensions.common.SshKeyInfo; import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.RestReadView; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResource; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.permissions.GlobalPermission; import com.google.gerrit.server.permissions.PermissionBackend; diff --git a/java/com/google/gerrit/server/restapi/account/SshKeys.java b/java/com/google/gerrit/server/restapi/account/SshKeys.java index 20fd5ccb63..52861ce298 100644 --- a/java/com/google/gerrit/server/restapi/account/SshKeys.java +++ b/java/com/google/gerrit/server/restapi/account/SshKeys.java @@ -20,10 +20,10 @@ import com.google.gerrit.extensions.restapi.ChildCollection; import com.google.gerrit.extensions.restapi.IdString; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestView; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResource; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.permissions.GlobalPermission; import com.google.gerrit.server.permissions.PermissionBackend; diff --git a/java/com/google/gerrit/server/schema/Schema_124.java b/java/com/google/gerrit/server/schema/Schema_124.java index 7842b65e03..6ffc521702 100644 --- a/java/com/google/gerrit/server/schema/Schema_124.java +++ b/java/com/google/gerrit/server/schema/Schema_124.java @@ -21,9 +21,9 @@ import com.google.common.collect.ListMultimap; import com.google.common.collect.MultimapBuilder; import com.google.common.collect.Ordering; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.reviewdb.server.ReviewDb; import com.google.gerrit.server.GerritPersonIdent; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.account.VersionedAuthorizedKeys.SimpleSshKeyCreator; import com.google.gerrit.server.config.AllUsersName; diff --git a/java/com/google/gerrit/server/ssh/NoSshKeyCache.java b/java/com/google/gerrit/server/ssh/NoSshKeyCache.java index 798ce38071..308d0cc1a5 100644 --- a/java/com/google/gerrit/server/ssh/NoSshKeyCache.java +++ b/java/com/google/gerrit/server/ssh/NoSshKeyCache.java @@ -15,7 +15,7 @@ package com.google.gerrit.server.ssh; import com.google.gerrit.common.errors.InvalidSshKeyException; -import com.google.gerrit.reviewdb.client.AccountSshKey; +import com.google.gerrit.server.account.AccountSshKey; import com.google.inject.AbstractModule; import com.google.inject.Module; import com.google.inject.Singleton; diff --git a/java/com/google/gerrit/server/ssh/SshKeyCreator.java b/java/com/google/gerrit/server/ssh/SshKeyCreator.java index a371490a58..d078c43b90 100644 --- a/java/com/google/gerrit/server/ssh/SshKeyCreator.java +++ b/java/com/google/gerrit/server/ssh/SshKeyCreator.java @@ -15,7 +15,7 @@ package com.google.gerrit.server.ssh; import com.google.gerrit.common.errors.InvalidSshKeyException; -import com.google.gerrit.reviewdb.client.AccountSshKey; +import com.google.gerrit.server.account.AccountSshKey; public interface SshKeyCreator { AccountSshKey create(AccountSshKey.Id id, String encoded) throws InvalidSshKeyException; diff --git a/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java b/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java index 7e0406adf9..74cdd99aff 100644 --- a/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java +++ b/java/com/google/gerrit/sshd/DatabasePubKeyAuth.java @@ -19,9 +19,9 @@ import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.base.Preconditions; import com.google.gerrit.common.FileUtil; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.PeerDaemonUser; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.SitePaths; import com.google.inject.Inject; diff --git a/java/com/google/gerrit/sshd/SshKeyCacheEntry.java b/java/com/google/gerrit/sshd/SshKeyCacheEntry.java index 1a5e1379a5..206b279415 100644 --- a/java/com/google/gerrit/sshd/SshKeyCacheEntry.java +++ b/java/com/google/gerrit/sshd/SshKeyCacheEntry.java @@ -15,7 +15,7 @@ package com.google.gerrit.sshd; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; +import com.google.gerrit.server.account.AccountSshKey; import java.security.PublicKey; class SshKeyCacheEntry { diff --git a/java/com/google/gerrit/sshd/SshKeyCacheImpl.java b/java/com/google/gerrit/sshd/SshKeyCacheImpl.java index 6a6821102f..2f039f1ed5 100644 --- a/java/com/google/gerrit/sshd/SshKeyCacheImpl.java +++ b/java/com/google/gerrit/sshd/SshKeyCacheImpl.java @@ -18,7 +18,7 @@ import static com.google.gerrit.server.account.externalids.ExternalId.SCHEME_USE import com.google.common.cache.CacheLoader; import com.google.common.cache.LoadingCache; -import com.google.gerrit.reviewdb.client.AccountSshKey; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.account.VersionedAuthorizedKeys; import com.google.gerrit.server.account.externalids.ExternalId; import com.google.gerrit.server.account.externalids.ExternalIds; diff --git a/java/com/google/gerrit/sshd/SshKeyCreatorImpl.java b/java/com/google/gerrit/sshd/SshKeyCreatorImpl.java index 637f98edda..b838e07f00 100644 --- a/java/com/google/gerrit/sshd/SshKeyCreatorImpl.java +++ b/java/com/google/gerrit/sshd/SshKeyCreatorImpl.java @@ -15,7 +15,7 @@ package com.google.gerrit.sshd; import com.google.gerrit.common.errors.InvalidSshKeyException; -import com.google.gerrit.reviewdb.client.AccountSshKey; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.ssh.SshKeyCreator; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; diff --git a/java/com/google/gerrit/sshd/SshUtil.java b/java/com/google/gerrit/sshd/SshUtil.java index ab0ffcfd15..6fb83f03ca 100644 --- a/java/com/google/gerrit/sshd/SshUtil.java +++ b/java/com/google/gerrit/sshd/SshUtil.java @@ -15,9 +15,9 @@ package com.google.gerrit.sshd; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.CurrentUser; import com.google.gerrit.server.IdentifiedUser; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.sshd.SshScope.Context; import java.io.BufferedReader; import java.io.IOException; diff --git a/java/com/google/gerrit/sshd/commands/SetAccountCommand.java b/java/com/google/gerrit/sshd/commands/SetAccountCommand.java index a7cc7900da..04f7d3c9c3 100644 --- a/java/com/google/gerrit/sshd/commands/SetAccountCommand.java +++ b/java/com/google/gerrit/sshd/commands/SetAccountCommand.java @@ -32,9 +32,9 @@ import com.google.gerrit.extensions.restapi.AuthException; import com.google.gerrit.extensions.restapi.ResourceNotFoundException; import com.google.gerrit.extensions.restapi.RestApiException; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.account.AccountResource; +import com.google.gerrit.server.account.AccountSshKey; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.restapi.account.AddSshKey; import com.google.gerrit.server.restapi.account.CreateEmail; diff --git a/javatests/com/google/gerrit/reviewdb/client/AccountSshKeyTest.java b/javatests/com/google/gerrit/reviewdb/client/AccountSshKeyTest.java deleted file mode 100644 index ed378e48ad..0000000000 --- a/javatests/com/google/gerrit/reviewdb/client/AccountSshKeyTest.java +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright (C) 2016 The Android Open Source Project -// -// 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 com.google.gerrit.reviewdb.client; - -import static com.google.common.truth.Truth.assertThat; - -import org.junit.Test; - -public class AccountSshKeyTest { - private static final String KEY = - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCgug5VyMXQGnem2H1KVC4/HcRcD4zzBqS" - + "uJBRWVonSSoz3RoAZ7bWXCVVGwchtXwUURD689wFYdiPecOrWOUgeeyRq754YWRhU+W28" - + "vf8IZixgjCmiBhaL2gt3wff6pP+NXJpTSA4aeWE5DfNK5tZlxlSxqkKOS8JRSUeNQov5T" - + "w== john.doe@example.com"; - - private static final String KEY_WITH_NEWLINES = - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCgug5VyMXQGnem2H1KVC4/HcRcD4zzBqS\n" - + "uJBRWVonSSoz3RoAZ7bWXCVVGwchtXwUURD689wFYdiPecOrWOUgeeyRq754YWRhU+W28\n" - + "vf8IZixgjCmiBhaL2gt3wff6pP+NXJpTSA4aeWE5DfNK5tZlxlSxqkKOS8JRSUeNQov5T\n" - + "w== john.doe@example.com"; - - private final Account.Id accountId = new Account.Id(1); - - @Test - public void validity() throws Exception { - AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, -1), KEY); - assertThat(key.isValid()).isFalse(); - key = new AccountSshKey(new AccountSshKey.Id(accountId, 0), KEY); - assertThat(key.isValid()).isFalse(); - key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY); - assertThat(key.isValid()).isTrue(); - } - - @Test - public void getters() throws Exception { - AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY); - assertThat(key.getSshPublicKey()).isEqualTo(KEY); - assertThat(key.getAlgorithm()).isEqualTo(KEY.split(" ")[0]); - assertThat(key.getEncodedKey()).isEqualTo(KEY.split(" ")[1]); - assertThat(key.getComment()).isEqualTo(KEY.split(" ")[2]); - } - - @Test - public void keyWithNewLines() throws Exception { - AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY_WITH_NEWLINES); - assertThat(key.getSshPublicKey()).isEqualTo(KEY); - assertThat(key.getAlgorithm()).isEqualTo(KEY.split(" ")[0]); - assertThat(key.getEncodedKey()).isEqualTo(KEY.split(" ")[1]); - assertThat(key.getComment()).isEqualTo(KEY.split(" ")[2]); - } -} diff --git a/javatests/com/google/gerrit/server/account/AuthorizedKeysTest.java b/javatests/com/google/gerrit/server/account/AuthorizedKeysTest.java index 4b43197f50..87e2e676bc 100644 --- a/javatests/com/google/gerrit/server/account/AuthorizedKeysTest.java +++ b/javatests/com/google/gerrit/server/account/AuthorizedKeysTest.java @@ -17,7 +17,6 @@ package com.google.gerrit.server.account; import static com.google.common.truth.Truth.assertThat; import com.google.gerrit.reviewdb.client.Account; -import com.google.gerrit.reviewdb.client.AccountSshKey; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -29,6 +28,11 @@ public class AuthorizedKeysTest { + "uJBRWVonSSoz3RoAZ7bWXCVVGwchtXwUURD689wFYdiPecOrWOUgeeyRq754YWRhU+W28" + "vf8IZixgjCmiBhaL2gt3wff6pP+NXJpTSA4aeWE5DfNK5tZlxlSxqkKOS8JRSUeNQov5T" + "w== john.doe@example.com"; + private static final String KEY1_WITH_NEWLINES = + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCgug5VyMXQGnem2H1KVC4/HcRcD4zzBqS\n" + + "uJBRWVonSSoz3RoAZ7bWXCVVGwchtXwUURD689wFYdiPecOrWOUgeeyRq754YWRhU+W28\n" + + "vf8IZixgjCmiBhaL2gt3wff6pP+NXJpTSA4aeWE5DfNK5tZlxlSxqkKOS8JRSUeNQov5T\n" + + "w== john.doe@example.com"; private static final String KEY2 = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDm5yP7FmEoqzQRDyskX+9+N0q9GrvZeh5" + "RG52EUpE4ms/Ujm3ewV1LoGzc/lYKJAIbdcZQNJ9+06EfWZaIRA3oOwAPe1eCnX+aLr8E" @@ -50,6 +54,8 @@ public class AuthorizedKeysTest { + "zRuEL5e/QOu9yGq9xkWApCmg6edpWAHG+Bx4AldU78MiZvzoB7gMMdxc9RmZ1gYj/DjxV" + "w== john.doe@example.com"; + private final Account.Id accountId = new Account.Id(1); + @Test public void test() throws Exception { List> keys = new ArrayList<>(); @@ -105,6 +111,34 @@ public class AuthorizedKeysTest { assertParse(authorizedKeys, keys); } + @Test + public void validity() throws Exception { + AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, -1), KEY1); + assertThat(key.isValid()).isFalse(); + key = new AccountSshKey(new AccountSshKey.Id(accountId, 0), KEY1); + assertThat(key.isValid()).isFalse(); + key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY1); + assertThat(key.isValid()).isTrue(); + } + + @Test + public void getters() throws Exception { + AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY1); + assertThat(key.getSshPublicKey()).isEqualTo(KEY1); + assertThat(key.getAlgorithm()).isEqualTo(KEY1.split(" ")[0]); + assertThat(key.getEncodedKey()).isEqualTo(KEY1.split(" ")[1]); + assertThat(key.getComment()).isEqualTo(KEY1.split(" ")[2]); + } + + @Test + public void keyWithNewLines() throws Exception { + AccountSshKey key = new AccountSshKey(new AccountSshKey.Id(accountId, 1), KEY1_WITH_NEWLINES); + assertThat(key.getSshPublicKey()).isEqualTo(KEY1); + assertThat(key.getAlgorithm()).isEqualTo(KEY1.split(" ")[0]); + assertThat(key.getEncodedKey()).isEqualTo(KEY1.split(" ")[1]); + assertThat(key.getComment()).isEqualTo(KEY1.split(" ")[2]); + } + private static String toWindowsLineEndings(String s) { return s.replaceAll("\n", "\r\n"); }