perfsonar-dev - perfsonar: r3069 - in trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint: lookingGlassType lookingGlassType/encryption lookingGlassType/engine/adapters remote/ssh remote/telnet
Subject: perfsonar development work
List archive
perfsonar: r3069 - in trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint: lookingGlassType lookingGlassType/encryption lookingGlassType/engine/adapters remote/ssh remote/telnet
Chronological Thread
- From:
- To:
- Subject: perfsonar: r3069 - in trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint: lookingGlassType lookingGlassType/encryption lookingGlassType/engine/adapters remote/ssh remote/telnet
- Date: Thu, 22 Nov 2007 11:29:59 -0500
Author: melis
Date: 2007-11-22 11:29:58 -0500 (Thu, 22 Nov 2007)
New Revision: 3069
Added:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/encryption/
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/encryption/PasswordEncryptor.java
Modified:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/engine/adapters/ServicePropertiesConfigurator.java
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshKeyManager.java
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshManager.java
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/telnet/TelnetManager.java
Log:
Added ongoing development for encryption of passwords in config files
Added:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/encryption/PasswordEncryptor.java
Modified:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/engine/adapters/ServicePropertiesConfigurator.java
===================================================================
---
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/engine/adapters/ServicePropertiesConfigurator.java
2007-11-21 15:12:56 UTC (rev 3068)
+++
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/lookingGlassType/engine/adapters/ServicePropertiesConfigurator.java
2007-11-22 16:29:58 UTC (rev 3069)
@@ -10,11 +10,17 @@
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
+import java.security.InvalidAlgorithmParameterException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
+import java.security.spec.InvalidKeySpecException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;
+import
org.perfsonar.service.measurementPoint.lookingGlassType.encryption.PasswordEncryptor;
+
public class ServicePropertiesConfigurator {
String[] lines;
@@ -163,7 +169,7 @@
out.write("service.r.mp." + device +
".port=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".rate=" + deviceTok.nextToken() + "\n");
- out.write("service.r.mp." + device +
".password=" + deviceTok.nextToken() + "\n");
+ out.write("service.r.mp." + device +
".password=" + PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +
"\n");
out.write("service.r.mp." + device +
".bgp.port=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".bgp.prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".bgp.password=" + deviceTok.nextToken() + "\n");
@@ -176,7 +182,7 @@
out.write("service.r.mp." + device +
".prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".rate=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
- out.write("service.r.mp." + device +
".password=" + deviceTok.nextToken() + "\n");
+ out.write("service.r.mp." + device +
".password=" + PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +
"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else if
(deviceType.equalsIgnoreCase("ciscossh")) {
out.write("service.mp."+ device
@@ -186,7 +192,7 @@
out.write("service.r.mp." + device +
".prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".rate=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
- out.write("service.r.mp." + device +
".password=" + deviceTok.nextToken() + "\n");
+ out.write("service.r.mp." + device +
".password=" + PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +
"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else if
(deviceType.equalsIgnoreCase("ciscokey")) {
out.write("service.mp."+ device
@@ -198,7 +204,7 @@
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".keyUrl=" + deviceTok.nextToken() + "\n");
if (deviceTok.hasMoreTokens())
- out.write("service.r.mp." +
device + ".passphrase=" + deviceTok.nextToken() +"\n");
+ out.write("service.r.mp." +
device + ".passphrase=" +
PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else if
(deviceType.equalsIgnoreCase("junipertelnet")) {
out.write("service.mp."+ device
@@ -208,7 +214,7 @@
out.write("service.r.mp." + device +
".prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".rate=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
- out.write("service.r.mp." + device +
".password=" + deviceTok.nextToken() + "\n");
+ out.write("service.r.mp." + device +
".password=" + PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +
"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else if
(deviceType.equalsIgnoreCase("juniperssh")) {
out.write("service.mp."+ device
@@ -218,7 +224,7 @@
out.write("service.r.mp." + device +
".prompt=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".rate=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
- out.write("service.r.mp." + device +
".password=" + deviceTok.nextToken() + "\n");
+ out.write("service.r.mp." + device +
".password=" + PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +
"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else if
(deviceType.equalsIgnoreCase("juniperkey")) {
out.write("service.mp."+ device
@@ -230,7 +236,7 @@
out.write("service.r.mp." + device +
".username=" + deviceTok.nextToken() + "\n");
out.write("service.r.mp." + device +
".keyUrl=" + deviceTok.nextToken() + "\n");
if (deviceTok.hasMoreTokens())
- out.write("service.r.mp." +
device + ".passphrase=" + deviceTok.nextToken() +"\n");
+ out.write("service.r.mp." +
device + ".passphrase=" +
PasswordEncryptor.encryptPassword(deviceTok.nextToken()) +"\n");
out.write("service.r.mp." + device +
".cache=0\n");
} else {
@@ -252,7 +258,7 @@
//Then use this temporary file for writing
all command info
addSelectedCommandsToConfig(device,
outputFile, tempFile.toString());
}
-
+
out.write("service.mp.devices=");
String tmp = "";
for (int i=0; i<devicesArray.length &&
devicesArray[i] != null ; i++){
@@ -322,94 +328,94 @@
System.out.println(devices.size() + " devices
added.");
//devicesString += it.next();
//while (it.hasNext()) {
-
- System.out.println("");
- System.out
- .println("Choose one of the following
types of equipment for every ");
- System.out.println("device specified
previously ...");
- System.out.println("1) Quagga -
Password Login (Telnet)");
- System.out.println("2) Cisco -
Password Login (Telnet)");
- System.out.println("3) Cisco -
Password Login (SSH)");
- System.out.println("4) Cisco -
Key-based Login (SSH)");
- System.out.println("5) Juniper -
Password Login (Telnet)");
- System.out.println("6) Juniper -
Password Login (SSH)");
- System.out.println("7) Juniper -
Key-based Login (SSH)");
- System.out.println();
- Iterator it2 = devices.iterator();
- String device = null;
- while (it2.hasNext()) {
- device = (String) it2.next();
- System.out.println(device +
": ");
- input = br.readLine();
- boolean invalid = true;
- while (invalid) {
- try {
- int t =
Integer.parseInt(input);
- if (t <= 7 &&
t > 0)
-
invalid = false;
- else {
-
System.out.println("Please provide a number between 1 and 7.");
- input
= br.readLine();
- }
- } catch
(NumberFormatException e) {
- invalid =
true;
+ System.out.println("");
+ System.out
+ .println("Choose one of the following types
of equipment for every ");
+ System.out.println("device specified
previously ...");
+ System.out.println("1) Quagga - Password
Login (Telnet)");
+ System.out.println("2) Cisco - Password Login
(Telnet)");
+ System.out.println("3) Cisco - Password Login
(SSH)");
+ System.out.println("4) Cisco - Key-based
Login (SSH)");
+ System.out.println("5) Juniper - Password
Login (Telnet)");
+ System.out.println("6) Juniper - Password
Login (SSH)");
+ System.out.println("7) Juniper - Key-based
Login (SSH)");
+ System.out.println();
+ Iterator it2 = devices.iterator();
+
+ String device = null;
+ while (it2.hasNext()) {
+ device = (String) it2.next();
+ System.out.println(device + ": ");
+ input = br.readLine();
+ boolean invalid = true;
+ while (invalid) {
+ try {
+ int t =
Integer.parseInt(input);
+ if (t <= 7 && t > 0)
+ invalid =
false;
+ else {
System.out.println("Please provide a number between 1 and 7.");
input =
br.readLine();
}
+ } catch
(NumberFormatException e) {
+ invalid = true;
+
System.out.println("Please provide a number between 1 and 7.");
+ input = br.readLine();
}
- types.add(input);
+ }
+ types.add(input);
- if
(input.equalsIgnoreCase("1"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.QuaggaAdapter\n");
- else if
(input.equalsIgnoreCase("2"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoAdapter\n");
- else if
(input.equalsIgnoreCase("3"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoSshAdapter\n");
+ if (input.equalsIgnoreCase("1"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.QuaggaAdapter\n");
+ else if (input.equalsIgnoreCase("2"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoAdapter\n");
+ else if (input.equalsIgnoreCase("3"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoSshAdapter\n");
- else if
(input.equalsIgnoreCase("4"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoKeyAdapter\n");
+ else if (input.equalsIgnoreCase("4"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.CiscoKeyAdapter\n");
- else if
(input.equalsIgnoreCase("5"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperAdapter\n");
+ else if (input.equalsIgnoreCase("5"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperAdapter\n");
- else if
(input.equalsIgnoreCase("6"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperSshAdapter\n");
+ else if (input.equalsIgnoreCase("6"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperSshAdapter\n");
- else if
(input.equalsIgnoreCase("7"))
- out
- .write("service.mp."
- +
device
- +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperKeyAdapter\n");
- }
- System.out.println();
+ else if (input.equalsIgnoreCase("7"))
+ out
+ .write("service.mp."
+ + device
+ +
".class_name=org.perfsonar.service.measurementPoint.lookingGlassType.engine.adapters.JuniperKeyAdapter\n");
+ }
+ System.out.println();
- System.out.println("According to the
chosen type of device and access method, " +
- "some\nmore questions
will be asked to configure the URL, port, username,\n" +
- "password or key,
prompt and access-rate (Here you can specify what\n" +
- "the minimum interval has to be
between requests (in ms)).");
- //System.out
- // .println("Now, some
access parameters will be asked ...");
- System.out.println();
+ System.out.println("According to the chosen
type of device and access method, " +
+ "some\nmore questions will be
asked to configure the URL, port, username,\n" +
+ "password or key, prompt and
access-rate (Here you can specify what\n" +
+ "the minimum interval has to be between
requests (in ms)).");
+ //System.out
+ // .println("Now, some access
parameters will be asked ...");
+ System.out.println();
//}
it = devices.iterator();
int index = -1;
@@ -426,7 +432,7 @@
//if (previousDevices.equals(""))
//
out.write("service.mp.devices=" +
devicesString.substring(0,devicesString.length()-1) + "\n");
//else
out.write("service.mp.devices=" + previousDevices +"," + devicesString +
"\n");
-
+
System.out.println(device);
System.out.println("======");
System.out.println();
@@ -466,7 +472,7 @@
input = br.readLine();
}
out.write("service.r.mp." +
device + ".password="
- + input +
"\n");
+ +
PasswordEncryptor.encryptPassword(input) + "\n");
System.out
.println("Please give the
bgp-daemon port for device: "
+ device + ":
");
@@ -484,7 +490,7 @@
+ device + ":
");
input = br.readLine();
out.write("service.r.mp." +
device + "bgp.password="
- + input +
"\n");
+ +
PasswordEncryptor.encryptPassword(input) + "\n");
} else if (type.equalsIgnoreCase("2")
||
type.equalsIgnoreCase("3")
||
type.equalsIgnoreCase("5")
@@ -536,7 +542,7 @@
input = br.readLine();
}
out.write("service.r.mp." +
device + ".password="
- + input +
"\n");
+ +
PasswordEncryptor.encryptPassword(input) + "\n");
} else if (type.equalsIgnoreCase("4")
||
type.equalsIgnoreCase("7")) {
System.out.println("Please
give the url for device: "
@@ -589,10 +595,10 @@
+ "\n");
System.out
.println("Please provide the
passphrase for the public ssh key. " +
- "Leave this
blank if you don't have to enter a passphrase.");
+ "Leave this blank if you
don't have to enter a passphrase.");
input = br.readLine();
if (input != null &&
!input.equals("")){
-
out.write("service.r.mp." + device + ".passphrase=" + input + "\n");
+
out.write("service.r.mp." + device + ".passphrase=" +
PasswordEncryptor.encryptPassword(input) + "\n");
}
}
@@ -947,22 +953,22 @@
inputfile.delete();
}
- public static void main(String[] args) {
+public static void main(String[] args) {
- try {
- if (args.length != 1) {
- System.err.println("Wrong number of
arguments!");
- System.exit(0);
- } else {
- //System.out.println(args[0]);
- ServicePropertiesConfigurator stitcher = new
ServicePropertiesConfigurator();
- stitcher.doStuff(args[0]);
- //createServiceStorageXML(args[0], args[0] +
"XML.xml");
+ try {
+ if (args.length != 1) {
+ System.err.println("Wrong number of arguments!");
+ System.exit(0);
+ } else {
+ //System.out.println(args[0]);
+ ServicePropertiesConfigurator stitcher = new
ServicePropertiesConfigurator();
+ stitcher.doStuff(args[0]);
+ //createServiceStorageXML(args[0], args[0] +
"XML.xml");
- }
- } catch (RuntimeException e) {
-
}
+ } catch (RuntimeException e) {
}
+
}
+}
Modified:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshKeyManager.java
===================================================================
---
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshKeyManager.java
2007-11-21 15:12:56 UTC (rev 3068)
+++
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshKeyManager.java
2007-11-22 16:29:58 UTC (rev 3069)
@@ -12,6 +12,7 @@
import org.perfsonar.base.auxiliary.ComponentNames;
import org.perfsonar.base.auxiliary.components.logger.LoggerComponent;
import org.perfsonar.base.exceptions.PerfSONARException;
+import
org.perfsonar.service.measurementPoint.lookingGlassType.encryption.PasswordEncryptor;
import org.perfsonar.service.measurementPoint.remote.common.RemoteManager;
import com.jcraft.jsch.Channel;
@@ -171,7 +172,7 @@
jsch = new JSch();
//Set key identity file
- jsch.addIdentity(keyUrl, passphrase);
+ jsch.addIdentity(keyUrl,
PasswordEncryptor.decryptPassword(passphrase));
//Create session
session = jsch.getSession(userName, url, 22);
Modified:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshManager.java
===================================================================
---
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshManager.java
2007-11-21 15:12:56 UTC (rev 3068)
+++
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/ssh/SshManager.java
2007-11-22 16:29:58 UTC (rev 3069)
@@ -12,6 +12,7 @@
import org.perfsonar.base.auxiliary.ComponentNames;
import org.perfsonar.base.auxiliary.components.logger.LoggerComponent;
import org.perfsonar.base.exceptions.PerfSONARException;
+import
org.perfsonar.service.measurementPoint.lookingGlassType.encryption.PasswordEncryptor;
import org.perfsonar.service.measurementPoint.remote.common.RemoteManager;
import com.jcraft.jsch.Channel;
@@ -248,7 +249,7 @@
public void connect(String userName, String passwd)
throws PerfSONARException {
- connect(userName, "Username:", passwd, "Password:");
+ connect(userName, "Username:",
PasswordEncryptor.decryptPassword(passwd), "Password:");
}
@@ -264,7 +265,7 @@
}
public String getPassword() {
- return passwd;
+ return PasswordEncryptor.decryptPassword(passwd);
}
public boolean promptYesNo(String str) {
Modified:
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/telnet/TelnetManager.java
===================================================================
---
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/telnet/TelnetManager.java
2007-11-21 15:12:56 UTC (rev 3068)
+++
trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint/remote/telnet/TelnetManager.java
2007-11-22 16:29:58 UTC (rev 3069)
@@ -11,6 +11,7 @@
import org.perfsonar.base.auxiliary.ComponentNames;
import org.perfsonar.base.auxiliary.components.logger.LoggerComponent;
import org.perfsonar.base.exceptions.PerfSONARException;
+import
org.perfsonar.service.measurementPoint.lookingGlassType.encryption.PasswordEncryptor;
import org.perfsonar.service.measurementPoint.remote.common.RemoteManager;
import de.mud.telnet.TelnetWrapper;
@@ -126,7 +127,7 @@
//System.out.println("---------------------------------------------");
telnet.connect(url, port);
//System.out.println("Logging in ...");
- telnet.login(userName, loginPrompt, passwd,
passwdPrompt);
+ telnet.login(userName, loginPrompt,
PasswordEncryptor.decryptPassword(passwd), passwdPrompt);
//System.out.println("logged in !!");
} catch (IOException e) {
@@ -230,7 +231,7 @@
public void connect(String userName, String passwd) throws
PerfSONARException {
- connect(userName, "Username:", passwd, "Password:");
+ connect(userName, "Username:",
PasswordEncryptor.decryptPassword(passwd), "Password:");
}
}
- perfsonar: r3069 - in trunk/geant2_java-sshtelnet-mp/src/main/java/org/perfsonar/service/measurementPoint: lookingGlassType lookingGlassType/encryption lookingGlassType/engine/adapters remote/ssh remote/telnet, svnlog, 11/22/2007
Archive powered by MHonArc 2.6.16.