Author: philip
Date: Wed Nov 19 11:46:32 2014
New Revision: 1640533

URL: http://svn.apache.org/r1640533
Log:
Add some simple Java clients that use the JavaHL authn API.

* tools/examples/ExampleAuthn.java: New.
* tools/examples/ExampleAuthnOld.java: New.
* tools/examples/ExampleAuthnVeryOld.java: New.

Added:
    subversion/trunk/tools/examples/ExampleAuthn.java   (with props)
    subversion/trunk/tools/examples/ExampleAuthnOld.java   (with props)
    subversion/trunk/tools/examples/ExampleAuthnVeryOld.java   (with props)

Added: subversion/trunk/tools/examples/ExampleAuthn.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/examples/ExampleAuthn.java?rev=1640533&view=auto
==============================================================================
--- subversion/trunk/tools/examples/ExampleAuthn.java (added)
+++ subversion/trunk/tools/examples/ExampleAuthn.java Wed Nov 19 11:46:32 2014
@@ -0,0 +1,105 @@
+/* Username/password prompt/save using 1.9 org.apache.subversion API.
+
+   Compile against non-installed Subversion JavaHL build:
+
+     javac -cp subversion/bindings/javahl/classes -d 
subversion/bindings/javahl/classes ExampleAuthn.java
+
+   Run:
+
+     LD_LIBRARY_PATH=subversion/libsvn_auth_gnome_keyring/.libs java -cp 
subversion/bindings/javahl/classes 
-Djava.library.path=subversion/bindings/javahl/native/.libs ExampleAuthn <URL> 
<config-dir>
+
+ */
+import org.apache.subversion.javahl.*;
+import org.apache.subversion.javahl.types.*;
+import org.apache.subversion.javahl.remote.*;
+import org.apache.subversion.javahl.callback.*;
+import java.io.Console;
+
+public class ExampleAuthn {
+
+    protected static class MyAuthn {
+
+      public static AuthnCallback getAuthn() {
+        return new MyAuthnCallback();
+      }
+
+      private static class MyAuthnCallback
+      implements AuthnCallback {
+
+        public UserPasswordResult
+        userPasswordPrompt(String realm, String username, boolean maySave) {
+          System.out.println("userPasswordPrompt");
+          System.out.println("Realm: " + realm);
+          String prompt;
+          if (username == null) {
+            System.out.print("Username: ");
+            username = System.console().readLine();
+            prompt = "Password: ";
+          } else {
+            prompt = "Password for " + username + ": ";
+          }
+          String password = new String(System.console().readPassword(prompt));
+          return new UserPasswordResult(username, password, maySave);
+        }
+
+        public boolean
+        allowStorePlaintextPassword(String realm) {
+          System.out.println("allowStorePlaintextPassword");
+          System.out.println("Realm: " + realm);
+          System.out.print("Store plaintext password on disk? (y/n): ");
+          String s = System.console().readLine();
+          return s.equals("y") ? true : false;
+        }
+
+        public UsernameResult
+        usernamePrompt(String realm, boolean maySave) {
+          System.out.println("usernamePrompt not implemented!");
+          return null;
+        }
+
+        public boolean
+        allowStorePlaintextPassphrase(String realm) {
+          System.out.println("allowStorePlaintextPassphrase not implemented!");
+          return false;
+        }
+
+        public SSLServerTrustResult
+        sslServerTrustPrompt(String realm,
+                             SSLServerCertFailures failures,
+                             SSLServerCertInfo info,
+                             boolean maySave) {
+          System.out.println("sslServerTrustPrompt not implemented!");
+          return SSLServerTrustResult.acceptTemporarily();
+        }
+
+        public SSLClientCertResult
+        sslClientCertPrompt(String realm, boolean maySave) {
+          System.out.println("sslClientCertPrompt not implemented!");
+          return null;
+        }
+
+        public SSLClientCertPassphraseResult
+        sslClientCertPassphrasePrompt(String realm, boolean maySave) {
+          System.out.println("sslClientCertPassphrasePrompt not implemented!");
+          return null;
+        }
+      }
+    }
+
+  public static void main(String argv[]) {
+
+    if (argv.length != 2) {
+      System.err.println("usage: ExampleAuthn <URL> <config-dir>");
+      return;
+    }
+    RemoteFactory factory = new RemoteFactory();
+    factory.setConfigDirectory(argv[1]);
+    factory.setPrompt(MyAuthn.getAuthn());
+    try {
+      ISVNRemote raSession = factory.openRemoteSession(argv[0]);
+      raSession.getReposUUID();
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}

Propchange: subversion/trunk/tools/examples/ExampleAuthn.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: subversion/trunk/tools/examples/ExampleAuthnOld.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/examples/ExampleAuthnOld.java?rev=1640533&view=auto
==============================================================================
--- subversion/trunk/tools/examples/ExampleAuthnOld.java (added)
+++ subversion/trunk/tools/examples/ExampleAuthnOld.java Wed Nov 19 11:46:32 
2014
@@ -0,0 +1,119 @@
+/* Username/password prompt/save using old org.apache.subversion API.
+
+   Compile against non-installed Subversion JavaHL build:
+
+     javac -cp subversion/bindings/javahl/classes -d 
subversion/bindings/javahl/classes ExampleAuthnOld.java
+
+   Run:
+
+     LD_LIBRARY_PATH=subversion/libsvn_auth_gnome_keyring/.libs java -cp 
subversion/bindings/javahl/classes 
-Djava.library.path=subversion/bindings/javahl/native/.libs ExampleAuthnOld 
<URL> <config-dir>
+
+ */
+import org.apache.subversion.javahl.*;
+import org.apache.subversion.javahl.types.*;
+import org.apache.subversion.javahl.callback.*;
+import java.io.Console;
+
+public class ExampleAuthnOld {
+
+    protected static class MyAuthn {
+
+      public static UserPasswordCallback getAuthn() {
+        return new MyUserPasswordCallback();
+      }
+
+      private static class MyUserPasswordCallback
+      implements UserPasswordCallback {
+
+        private String _username = null;
+
+        public String
+        getUsername() {
+          System.out.println("getUsername");
+          return _username;
+        }
+
+        private String _password = null;
+
+        public String
+        getPassword() {
+          System.out.println("getPassword");
+          return _password;
+        }
+
+        public boolean
+        userAllowedSave() {
+          System.out.println("userAllowedSave");
+          return true;
+        }
+
+        public boolean
+        askYesNo(String realm, String question, boolean yesIsDefault) {
+          System.out.println("askYesNo");
+          System.out.print(question + " (y/n): ");
+          String s = System.console().readLine();
+          return s.equals("y") ? true : s.equals("") ? yesIsDefault : false;
+        }
+
+        public boolean
+        prompt(String realm, String username, boolean maySave) {
+          System.out.println("prompt");
+          System.out.println("Realm: " + realm);
+          String prompt;
+          if (username == null) {
+            System.out.print("Username: ");
+            _username = System.console().readLine();
+            prompt = "Password: ";
+          } else {
+            _username = username;
+            prompt = "Password for " + username + ": ";
+          }
+          _password = new String(System.console().readPassword(prompt));
+          return maySave;
+        }
+
+        public boolean
+        prompt(String realm, String username) {
+          System.out.println("prompt not implemented!");
+          return true;
+        }
+
+        public String
+        askQuestion(String realm,
+                    String question,
+                    boolean showAnswer,
+                    boolean maySave) {
+          System.out.println("askQuestion not implemented!");
+          return null;
+        }
+
+        public String
+        askQuestion(String realm, String question, boolean showAnswer) {
+          System.out.println("askQuestion not implemented!");
+          return null;
+        }
+
+        public int
+        askTrustSSLServer(String info, boolean allowPermanently) {
+          System.out.println("askTrustSSLServer not implemented!");
+          return UserPasswordCallback.AcceptTemporary;
+        }
+      }
+    }
+
+  public static void main(String argv[]) {
+
+    if (argv.length != 2) {
+      System.err.println("usage: ExampleAuthnOld <URL> <config-dir>");
+      return;
+    }
+    ISVNClient client = new SVNClient();
+    client.setPrompt(MyAuthn.getAuthn());
+    try {
+      client.setConfigDirectory(argv[1]);
+      client.revProperty(argv[0], "svn:log", Revision.getInstance(0));
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}

Propchange: subversion/trunk/tools/examples/ExampleAuthnOld.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: subversion/trunk/tools/examples/ExampleAuthnVeryOld.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/tools/examples/ExampleAuthnVeryOld.java?rev=1640533&view=auto
==============================================================================
--- subversion/trunk/tools/examples/ExampleAuthnVeryOld.java (added)
+++ subversion/trunk/tools/examples/ExampleAuthnVeryOld.java Wed Nov 19 
11:46:32 2014
@@ -0,0 +1,118 @@
+/* Username/password prompt/save using very old org.tigris.subversion API.
+
+   Compile against non-installed Subversion JavaHL build:
+
+     javac -cp subversion/bindings/javahl/classes -d 
subversion/bindings/javahl/classes ExampleAuthnVeryOld.java
+
+   Run:
+
+     LD_LIBRARY_PATH=subversion/libsvn_auth_gnome_keyring/.libs java -cp 
subversion/bindings/javahl/classes 
-Djava.library.path=subversion/bindings/javahl/native/.libs ExampleAuthnVeryOld 
<URL> <config-dir>
+
+ */
+import org.tigris.subversion.javahl.*;
+import java.io.Console;
+
+public class ExampleAuthnVeryOld {
+
+    protected static class MyAuthn {
+
+      public static PromptUserPassword3 getAuthn() {
+        return new MyUserPasswordCallback();
+      }
+
+      private static class MyUserPasswordCallback
+      implements PromptUserPassword3 {
+
+        private String _username = null;
+
+        public String
+        getUsername() {
+          System.out.println("getUsername");
+          return _username;
+        }
+
+        private String _password = null;
+
+        public String
+        getPassword() {
+          System.out.println("getPassword");
+          return _password;
+        }
+
+        public boolean
+        userAllowedSave() {
+          System.out.println("userAllowedSave");
+          return true;
+        }
+
+        public boolean
+        askYesNo(String realm, String question, boolean yesIsDefault) {
+          System.out.println("askYesNo");
+          System.out.print(question + " (y/n): ");
+          String s = System.console().readLine();
+          return s.equals("y") ? true : s.equals("") ? yesIsDefault : false;
+        }
+
+        public boolean
+        prompt(String realm, String username, boolean maySave) {
+          System.out.println("prompt");
+          System.out.println("Realm: " + realm);
+          String prompt;
+          if (username == null) {
+            System.out.print("Username: ");
+            _username = System.console().readLine();
+            prompt = "Password: ";
+          } else {
+            _username = username;
+            prompt = "Password for " + username + ": ";
+          }
+          _password = new String(System.console().readPassword(prompt));
+          return maySave;
+        }
+
+        public boolean
+        prompt(String realm, String username) {
+          System.out.println("prompt not implemented!");
+          return true;
+        }
+
+        public String
+        askQuestion(String realm,
+                    String question,
+                    boolean showAnswer,
+                    boolean maySave) {
+          System.out.println("askQuestion not implemented!");
+          return null;
+        }
+
+        public String
+        askQuestion(String realm, String question, boolean showAnswer) {
+          System.out.println("askQuestion not implemented!");
+          return null;
+        }
+
+        public int
+        askTrustSSLServer(String info, boolean allowPermanently) {
+          System.out.println("askTrustSSLServer not implemented!");
+          return PromptUserPassword3.AcceptTemporary;
+        }
+      }
+    }
+
+  public static void main(String argv[]) {
+
+    if (argv.length != 2) {
+      System.err.println("usage: ExampleAuthnVeryOld <URL> <config-dir>");
+      return;
+    }
+    SVNClientInterface client = new SVNClient();
+    client.setPrompt(MyAuthn.getAuthn());
+    try {
+      client.setConfigDirectory(argv[1]);
+      client.logMessages(argv[0], Revision.getInstance(0),
+                         Revision.getInstance(0), false, false, 0);
+    } catch (Exception e) {
+      e.printStackTrace();
+    }
+  }
+}

Propchange: subversion/trunk/tools/examples/ExampleAuthnVeryOld.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to