When compiling SQLite, enable the SQLITE_OMIT_WAL compile-time option.
[svn/apache.git] / tools / examples / ExampleAuthn.java
blob8fb73b51b0c9952878ed27e07e163e7313fc9980
1 /* Username/password prompt/save using 1.9 org.apache.subversion API.
3 Compile against non-installed Subversion JavaHL build:
5 javac -cp subversion/bindings/javahl/classes -d subversion/bindings/javahl/classes ExampleAuthn.java
7 Run:
9 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>
12 import org.apache.subversion.javahl.*;
13 import org.apache.subversion.javahl.types.*;
14 import org.apache.subversion.javahl.remote.*;
15 import org.apache.subversion.javahl.callback.*;
16 import java.io.Console;
18 public class ExampleAuthn {
20 protected static class MyAuthn {
22 public static AuthnCallback getAuthn() {
23 return new MyAuthnCallback();
26 private static class MyAuthnCallback
27 implements AuthnCallback {
29 public UserPasswordResult
30 userPasswordPrompt(String realm, String username, boolean maySave) {
31 System.out.println("userPasswordPrompt");
32 System.out.println("Realm: " + realm);
33 String prompt;
34 if (username == null) {
35 System.out.print("Username: ");
36 username = System.console().readLine();
37 prompt = "Password: ";
38 } else {
39 prompt = "Password for " + username + ": ";
41 String password = new String(System.console().readPassword(prompt));
42 return new UserPasswordResult(username, password, maySave);
45 public boolean
46 allowStorePlaintextPassword(String realm) {
47 System.out.println("allowStorePlaintextPassword");
48 System.out.println("Realm: " + realm);
49 System.out.print("Store plaintext password on disk? (y/n): ");
50 String s = System.console().readLine();
51 return s.equals("y") ? true : false;
54 public UsernameResult
55 usernamePrompt(String realm, boolean maySave) {
56 System.out.println("usernamePrompt not implemented!");
57 return null;
60 public boolean
61 allowStorePlaintextPassphrase(String realm) {
62 System.out.println("allowStorePlaintextPassphrase not implemented!");
63 return false;
66 public SSLServerTrustResult
67 sslServerTrustPrompt(String realm,
68 SSLServerCertFailures failures,
69 SSLServerCertInfo info,
70 boolean maySave) {
71 System.out.println("sslServerTrustPrompt");
72 System.out.println("(r)eject or (t)emporary?");
73 String s = System.console().readLine();
74 return s.equals("t") ? SSLServerTrustResult.acceptTemporarily()
75 : SSLServerTrustResult.reject();
78 public SSLClientCertResult
79 sslClientCertPrompt(String realm, boolean maySave) {
80 System.out.println("sslClientCertPrompt not implemented!");
81 return null;
84 public SSLClientCertPassphraseResult
85 sslClientCertPassphrasePrompt(String realm, boolean maySave) {
86 System.out.println("sslClientCertPassphrasePrompt not implemented!");
87 return null;
92 public static void main(String argv[]) {
94 if (argv.length != 2) {
95 System.err.println("usage: ExampleAuthn <URL> <config-dir>");
96 return;
98 RemoteFactory factory = new RemoteFactory();
99 factory.setConfigDirectory(argv[1]);
100 factory.setPrompt(MyAuthn.getAuthn());
101 try {
102 ISVNRemote raSession = factory.openRemoteSession(argv[0]);
103 raSession.getReposUUID();
104 } catch (Exception e) {
105 e.printStackTrace();