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