01: /**
02: * @copyright
03: * ====================================================================
04: * Copyright (c) 2003-2005 CollabNet. All rights reserved.
05: *
06: * This software is licensed as described in the file COPYING, which
07: * you should have received as part of this distribution. The terms
08: * are also available at http://subversion.tigris.org/license-1.html.
09: * If newer versions of this license are posted there, you may use a
10: * newer version instead, at your option.
11: *
12: * This software consists of voluntary contributions made by many
13: * individuals. For exact contribution history, see the revision
14: * history and logs, available at http://subversion.tigris.org/.
15: * ====================================================================
16: * @endcopyright
17: */package org.tigris.subversion.javahl;
18:
19: /**
20: * <p>The interface for requesting authentication credentials from the
21: * user. Should the javahl bindings need the matching information,
22: * these methodes will be called.</p>
23: *
24: * <p>This callback can also be used to provide the equivalent of the
25: * <code>--no-auth-cache</code> and <code>--non-interactive</code>
26: * arguments accepted by the command-line client.</p>
27: */
28: public interface PromptUserPassword3 extends PromptUserPassword2 {
29: /**
30: * Request a user name and password from the user, and (usually)
31: * store the auth credential caching preference specified by
32: * <code>maySave</code> (used by {@link #userAllowedSave()}).
33: * Applications wanting to emulate the behavior of
34: * <code>--non-interactive</code> will implement this method in a
35: * manner which does not require user interaction (e.g. a no-op
36: * which assumes pre-cached auth credentials).
37: *
38: * @param realm The realm from which the question originates.
39: * @param username The name of the user in <code>realm</code>.
40: * @param maySave Whether caching of credentials is allowed.
41: * Usually affects the return value of the {@link
42: * #userAllowedSave()} method.
43: * @return Whether the prompt for authentication credentials was
44: * successful (e.g. in a GUI application whether the dialog box
45: * was canceled).
46: */
47: public boolean prompt(String realm, String username, boolean maySave);
48:
49: /**
50: * Ask the user a question, and (usually) store the auth
51: * credential caching preference specified by <code>maySave</code>
52: * (used by {@link #userAllowedSave()}). Applications wanting to
53: * emulate the behavior of <code>--non-interactive</code> will
54: * implement this method in a manner which does not require user
55: * interaction (e.g. a no-op).
56: *
57: * @param realm The realm from which the question originates.
58: * @param question The text of the question.
59: * @param showAnswer Whether the answer may be displayed.
60: * @param maySave Whether caching of credentials is allowed.
61: * Usually affects the return value of the {@link
62: * #userAllowedSave()} method.
63: * @return answer as entered or null if canceled
64: */
65: public String askQuestion(String realm, String question,
66: boolean showAnswer, boolean maySave);
67:
68: /**
69: * @return Whether the caller allowed caching of credentials the
70: * last time {@link #prompt(String, String, boolean)} was called.
71: * Applications wanting to emulate the behavior of
72: * <code>--no-auth-cache</code> will probably always return
73: * <code>false</code>.
74: */
75: public boolean userAllowedSave();
76: }
|