From bfa998a3d04e759be555dd8136aaa9450960a879 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 10 Apr 2014 19:00:04 -0400 Subject: [PATCH] Documentation --- src/main/java/com/gitblit/transport/ssh/FileKeyManager.java | 33 ++++++++++++++------------------- 1 files changed, 14 insertions(+), 19 deletions(-) diff --git a/src/main/java/com/gitblit/transport/ssh/FileKeyManager.java b/src/main/java/com/gitblit/transport/ssh/FileKeyManager.java index ae0bc9c..8a3d2ff 100644 --- a/src/main/java/com/gitblit/transport/ssh/FileKeyManager.java +++ b/src/main/java/com/gitblit/transport/ssh/FileKeyManager.java @@ -17,16 +17,11 @@ import java.io.File; import java.io.IOException; -import java.security.PublicKey; import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; - -import org.apache.commons.codec.binary.Base64; -import org.apache.sshd.common.util.Buffer; -import org.eclipse.jgit.lib.Constants; import com.gitblit.Keys; import com.gitblit.manager.IRuntimeManager; @@ -35,12 +30,12 @@ import com.google.common.io.Files; /** - * Manages SSH keys on the filesystem. + * Manages public keys on the filesystem. * * @author James Moger * */ -public class FileKeyManager extends IKeyManager { +public class FileKeyManager extends IPublicKeyManager { protected final IRuntimeManager runtimeManager; @@ -59,6 +54,7 @@ @Override public FileKeyManager start() { + log.info(toString()); return this; } @@ -91,7 +87,7 @@ } @Override - protected List<PublicKey> getKeysImpl(String username) { + protected List<SshKey> getKeysImpl(String username) { try { log.info("loading keystore for {}", username); File keystore = getKeystore(username); @@ -99,7 +95,7 @@ return null; } if (keystore.exists()) { - List<PublicKey> list = new ArrayList<PublicKey>(); + List<SshKey> list = new ArrayList<SshKey>(); for (String entry : Files.readLines(keystore, Charsets.ISO_8859_1)) { if (entry.trim().length() == 0) { // skip blanks @@ -109,9 +105,8 @@ // skip comments continue; } - final String[] parts = entry.split(" "); - final byte[] bin = Base64.decodeBase64(Constants.encodeASCII(parts[1])); - list.add(new Buffer(bin).getRawPublicKey()); + SshKey key = new SshKey(entry); + list.add(key); } if (list.isEmpty()) { @@ -132,9 +127,9 @@ * by disregarding the comment/description field during key comparisons. */ @Override - public boolean addKey(String username, String data) { + public boolean addKey(String username, SshKey key) { try { - String newKey = stripCommentFromKey(data); + String newKey = stripCommentFromKey(key.getRawData()); List<String> lines = new ArrayList<String>(); File keystore = getKeystore(username); @@ -161,7 +156,7 @@ } // add new key - lines.add(data); + lines.add(key.getRawData()); // write keystore String content = Joiner.on("\n").join(lines).trim().concat("\n"); @@ -176,12 +171,12 @@ } /** - * Removes a key from the keystore. + * Removes the specified key from the keystore. */ @Override - public boolean removeKey(String username, String data) { + public boolean removeKey(String username, SshKey key) { try { - String rmKey = stripCommentFromKey(data); + String rmKey = stripCommentFromKey(key.getRawData()); File keystore = getKeystore(username); if (keystore.exists()) { @@ -243,7 +238,7 @@ /* Strips the comment from the key data and eliminates whitespace diffs */ protected String stripCommentFromKey(String data) { - String [] cols = data.split(" "); + String [] cols = data.split(" ", 3); String key = Joiner.on(" ").join(cols[0], cols[1]); return key; } -- Gitblit v1.9.1