1 /* Username/password prompt/save using very old org.tigris.subversion API. 2 3 Compile against non-installed Subversion JavaHL build: 4 5 javac -cp subversion/bindings/javahl/classes -d subversion/bindings/javahl/classes ExampleAuthnVeryOld.java 6 7 Run: 8 9 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> 10 11 */ 12 import org.tigris.subversion.javahl.*; 13 import java.io.Console; 14 15 public class ExampleAuthnVeryOld { 16 17 protected static class MyAuthn { 18 getAuthn()19 public static PromptUserPassword3 getAuthn() { 20 return new MyUserPasswordCallback(); 21 } 22 23 private static class MyUserPasswordCallback 24 implements PromptUserPassword3 { 25 26 private String _username = null; 27 28 public String getUsername()29 getUsername() { 30 System.out.println("getUsername"); 31 return _username; 32 } 33 34 private String _password = null; 35 36 public String getPassword()37 getPassword() { 38 System.out.println("getPassword"); 39 return _password; 40 } 41 42 public boolean userAllowedSave()43 userAllowedSave() { 44 System.out.println("userAllowedSave"); 45 return true; 46 } 47 48 public boolean askYesNo(String realm, String question, boolean yesIsDefault)49 askYesNo(String realm, String question, boolean yesIsDefault) { 50 System.out.println("askYesNo"); 51 System.out.print(question + " (y/n): "); 52 String s = System.console().readLine(); 53 return s.equals("y") ? true : s.equals("") ? yesIsDefault : false; 54 } 55 56 public boolean prompt(String realm, String username, boolean maySave)57 prompt(String realm, String username, boolean maySave) { 58 System.out.println("prompt"); 59 System.out.println("Realm: " + realm); 60 String prompt; 61 if (username == null) { 62 System.out.print("Username: "); 63 _username = System.console().readLine(); 64 prompt = "Password: "; 65 } else { 66 _username = username; 67 prompt = "Password for " + username + ": "; 68 } 69 _password = new String(System.console().readPassword(prompt)); 70 return maySave; 71 } 72 73 public boolean prompt(String realm, String username)74 prompt(String realm, String username) { 75 System.out.println("prompt not implemented!"); 76 return true; 77 } 78 79 public String askQuestion(String realm, String question, boolean showAnswer, boolean maySave)80 askQuestion(String realm, 81 String question, 82 boolean showAnswer, 83 boolean maySave) { 84 System.out.println("askQuestion not implemented!"); 85 return null; 86 } 87 88 public String askQuestion(String realm, String question, boolean showAnswer)89 askQuestion(String realm, String question, boolean showAnswer) { 90 System.out.println("askQuestion not implemented!"); 91 return null; 92 } 93 94 public int askTrustSSLServer(String info, boolean allowPermanently)95 askTrustSSLServer(String info, boolean allowPermanently) { 96 System.out.println("askTrustSSLServer not implemented!"); 97 return PromptUserPassword3.AcceptTemporary; 98 } 99 } 100 } 101 main(String argv[])102 public static void main(String argv[]) { 103 104 if (argv.length != 2) { 105 System.err.println("usage: ExampleAuthnVeryOld <URL> <config-dir>"); 106 return; 107 } 108 SVNClientInterface client = new SVNClient(); 109 client.setPrompt(MyAuthn.getAuthn()); 110 try { 111 client.setConfigDirectory(argv[1]); 112 client.logMessages(argv[0], Revision.getInstance(0), 113 Revision.getInstance(0), false, false, 0); 114 } catch (Exception e) { 115 e.printStackTrace(); 116 } 117 } 118 } 119