Author: adietish
Date: 2011-10-04 09:40:42 -0400 (Tue, 04 Oct 2011)
New Revision: 35325
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/ISSHPublicKey.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKeyPair.java
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHPublicKey.java
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/SSHKeyTest.java
Log:
[JBIDE-9793] implemented capability to load public key files in SSHPublicKey
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/ISSHPublicKey.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/ISSHPublicKey.java 2011-10-04
13:04:52 UTC (rev 35324)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/ISSHPublicKey.java 2011-10-04
13:40:42 UTC (rev 35325)
@@ -25,5 +25,4 @@
*/
public String getPublicKey() throws OpenshiftException ;
- public void update(ISSHPublicKey sshPublicKey) throws OpenshiftException;
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKeyPair.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKeyPair.java 2011-10-04
13:04:52 UTC (rev 35324)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHKeyPair.java 2011-10-04
13:40:42 UTC (rev 35325)
@@ -100,11 +100,4 @@
protected String getPublicKeyPath() {
return publicKeyPath;
}
-
- @Override
- public void update(ISSHPublicKey sshPublicKey) {
- // do nothing, there's no sense to update this key since the public key
- // misses the private key
- }
-
}
Modified:
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHPublicKey.java
===================================================================
---
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHPublicKey.java 2011-10-04
13:04:52 UTC (rev 35324)
+++
trunk/as/plugins/org.jboss.ide.eclipse.as.openshift.core/src/org/jboss/ide/eclipse/as/openshift/core/SSHPublicKey.java 2011-10-04
13:40:42 UTC (rev 35325)
@@ -10,26 +10,48 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.core;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import org.jboss.ide.eclipse.as.openshift.core.internal.utils.StreamUtils;
+
/**
* @author André Dietisheim
*/
public class SSHPublicKey implements ISSHPublicKey {
+ private static final Pattern PUBLICKEY_PATTERN = Pattern.compile("[^ ]+ ([^ ]+)(
.+)*");
+
private String publicKey;
+ public SSHPublicKey(File publicKeyFilePath) throws IOException, OpenshiftException {
+ this.publicKey = extractPublicKey(publicKeyFilePath);
+ }
+
public SSHPublicKey(String publicKey) {
this.publicKey = publicKey;
}
+ private String extractPublicKey(File file) throws OpenshiftException,
FileNotFoundException, IOException {
+ String keyWithIdAndComment = StreamUtils.readToString(new FileReader(file));
+ Matcher matcher = PUBLICKEY_PATTERN.matcher(keyWithIdAndComment);
+ if (!matcher.find()
+ || matcher.groupCount() < 1) {
+ throw new OpenshiftException("Could not load public key from file
\"{0}\"", file.getAbsolutePath());
+ }
+
+ return matcher.group(1);
+ }
+
public String getPublicKey() {
return publicKey;
}
-
+
void update(String publicKey) {
+ this.publicKey = publicKey;
}
-
- public void update(ISSHPublicKey sshPublicKey) throws OpenshiftException {
- this.publicKey = sshPublicKey.getPublicKey();
- }
}
Modified:
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/SSHKeyTest.java
===================================================================
---
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/SSHKeyTest.java 2011-10-04
13:04:52 UTC (rev 35324)
+++
trunk/as/tests/org.jboss.ide.eclipse.as.openshift.test/src/org/jboss/ide/eclipse/as/openshift/test/internal/core/SSHKeyTest.java 2011-10-04
13:40:42 UTC (rev 35325)
@@ -10,13 +10,16 @@
******************************************************************************/
package org.jboss.ide.eclipse.as.openshift.test.internal.core;
+import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
+import org.jboss.ide.eclipse.as.openshift.core.ISSHPublicKey;
import org.jboss.ide.eclipse.as.openshift.core.SSHKeyPair;
+import org.jboss.ide.eclipse.as.openshift.core.SSHPublicKey;
import org.junit.Test;
public class SSHKeyTest {
@@ -36,7 +39,7 @@
}
@Test
- public void canLoadPublicKey() throws Exception {
+ public void canLoadKeyPair() throws Exception {
String publicKeyPath = createTempFile().getAbsolutePath();
String privateKeyPath = createTempFile().getAbsolutePath();
SSHKeyPair.create(PASSPHRASE, privateKeyPath, publicKeyPath);
@@ -49,6 +52,23 @@
assertTrue(!publicKey.contains(" ")); // no comment
}
+ @Test
+ public void canLoadPublicKey() throws Exception {
+ String publicKeyPath = createTempFile().getAbsolutePath();
+ String privateKeyPath = createTempFile().getAbsolutePath();
+ SSHKeyPair.create(PASSPHRASE, privateKeyPath, publicKeyPath);
+
+ ISSHPublicKey sshKey = new SSHPublicKey(new File(publicKeyPath));
+ String publicKey = sshKey.getPublicKey();
+
+ assertNotNull(publicKey);
+ assertTrue(!publicKey.contains("ssh-rsa")); // no identifier
+ assertTrue(!publicKey.contains(" ")); // no comment
+
+ SSHKeyPair keyPair = SSHKeyPair.load(privateKeyPath, publicKeyPath);
+ assertEquals(publicKey, keyPair.getPublicKey());
+ }
+
private File createTempFile() throws IOException {
return File.createTempFile(String.valueOf(System.currentTimeMillis()), null);
}
Show replies by date