From fa8e377be9caf584ac3537cbb55e467e9da1bfbf Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gmail.com>
Date: Sun, 17 Jan 2016 17:13:13 -0500
Subject: [PATCH] Merge pull request #1003 from RedShift1/ticket-#997-doc-char-encoding
---
src/main/java/com/gitblit/transport/ssh/SshKey.java | 13 ++++++++-----
1 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/SshKey.java b/src/main/java/com/gitblit/transport/ssh/SshKey.java
index c2fc91c..9fd1005 100644
--- a/src/main/java/com/gitblit/transport/ssh/SshKey.java
+++ b/src/main/java/com/gitblit/transport/ssh/SshKey.java
@@ -22,11 +22,13 @@
import org.apache.commons.codec.binary.Base64;
import org.apache.sshd.common.SshException;
-import org.apache.sshd.common.util.Buffer;
+import org.apache.sshd.common.util.buffer.Buffer;
+import org.apache.sshd.common.util.buffer.ByteArrayBuffer;
import org.eclipse.jgit.lib.Constants;
import com.gitblit.Constants.AccessPermission;
import com.gitblit.utils.StringUtils;
+import com.google.common.base.Joiner;
/**
* Class that encapsulates a public SSH key and it's metadata.
@@ -51,7 +53,8 @@
private AccessPermission permission;
public SshKey(String data) {
- this.rawData = data;
+ // strip out line breaks (issue-571)
+ this.rawData = Joiner.on("").join(data.replace("\r\n", "\n").split("\n"));
this.permission = AccessPermission.PUSH;
}
@@ -70,9 +73,9 @@
}
final byte[] bin = Base64.decodeBase64(Constants.encodeASCII(parts[1]));
try {
- publicKey = new Buffer(bin).getRawPublicKey();
+ publicKey = new ByteArrayBuffer(bin).getRawPublicKey();
} catch (SshException e) {
- e.printStackTrace();
+ throw new RuntimeException(e);
}
}
return publicKey;
@@ -143,7 +146,7 @@
public String getRawData() {
if (rawData == null && publicKey != null) {
// build the raw data manually from the public key
- Buffer buf = new Buffer();
+ Buffer buf = new ByteArrayBuffer();
// 1: identify the algorithm
buf.putRawPublicKey(publicKey);
--
Gitblit v1.9.1