Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
describe and set protocol in Java test application
  • Loading branch information
dlenski committed Aug 5, 2018
1 parent 1391c86 commit 42918c3
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 6 deletions.
2 changes: 1 addition & 1 deletion java/README
Expand Up @@ -11,7 +11,7 @@ From the top level, run:
make
cd java
ant
sudo java -Djava.library.path=../.libs -jar dist/example.jar <server_ip>
sudo java -Djava.library.path=../.libs -jar dist/example.jar <server_name> [protocol]

If ocproxy[1] is installed somewhere in your $PATH, this can be run as a
non-root user and it should be pingable from across the VPN.
Expand Down
44 changes: 39 additions & 5 deletions java/src/com/example/LibTest.java
Expand Up @@ -204,26 +204,60 @@ private static void printIPInfo(LibOpenConnect.IPInfo ip) {
System.out.println("");
}

private static void describeProtocol(LibOpenConnect.VPNProto vp) {
ArrayList<String> flags = new ArrayList<String>();
if ((vp.flags & LibOpenConnect.OC_PROTO_PROXY) != 0) flags.add("proxy");
if ((vp.flags & LibOpenConnect.OC_PROTO_CSD) != 0) flags.add("CSD");
if ((vp.flags & LibOpenConnect.OC_PROTO_AUTH_CERT) != 0) flags.add("auth-cert");
if ((vp.flags & LibOpenConnect.OC_PROTO_AUTH_OTP) != 0) flags.add("auth-otp");
if ((vp.flags & LibOpenConnect.OC_PROTO_AUTH_OTP) != 0) flags.add("auth-stoken");

System.out.println(" " + vp.name +
") PRETTY_NAME=" + vp.prettyName +
", DESCRIPTION=" + vp.description +
", FLAGS=" + String.join("+", flags));
}

public static void main(String argv[]) {
System.loadLibrary("openconnect-wrapper");
LibOpenConnect lib = new TestLib();
String server_name, protocol;

if (argv.length != 1)
die("usage: LibTest <server_name>");
if (argv.length != 1 && argv.length != 2)
die("usage: LibTest <server_name> [protocol]");

server_name = argv[0];
protocol = argv.length == 2 ? argv[1] : null;

System.out.println("OpenConnect version: " + lib.getVersion());
System.out.println(" PKCS=" + lib.hasPKCS11Support() +
", TSS=" + lib.hasTSSBlobSupport() +
", STOKEN=" + lib.hasStokenSupport() +
", OATH=" + lib.hasOATHSupport() +
", YUBIOATH=" + lib.hasYubiOATHSupport());

System.out.println("Supported protocols:");
for (LibOpenConnect.VPNProto vp : lib.getSupportedProtocols())
describeProtocol(vp);
if (protocol == null) {
System.out.println("Using default VPN protocol of " + lib.getProtocol());
} else {
System.out.println("Setting VPN protocol to " + protocol);
if (lib.setProtocol(protocol) != 0)
die("Error setting VPN protocol");
}

lib.setReportedOS("win");
lib.setLogLevel(lib.PRG_DEBUG);
//lib.setTokenMode(LibOpenConnect.OC_TOKEN_MODE_STOKEN, null);
if (new File("csd.sh").exists()) {
lib.setCSDWrapper("csd.sh", null, null);
String csd_wrapper = "./csd-" + lib.getProtocol() + ".sh";
if (new File(csd_wrapper).exists()) {
System.out.println("Using CSD wrapper script " + csd_wrapper);
lib.setCSDWrapper(csd_wrapper, null, null);
} else {
System.out.println("Skipping CSD wrapper (script " + csd_wrapper + " doesn't exist)");
}
lib.parseURL(argv[0]);
lib.parseURL(server_name);
lib.setSystemTrust(true);
int ret = lib.obtainCookie();
if (ret < 0)
Expand Down

0 comments on commit 42918c3

Please sign in to comment.