Author: brane
Date: Fri Jun 6 20:00:20 2014
New Revision: 1600993
URL: http://svn.apache.org/r1600993
Log:
Modify JavaHL tests to enable testing with the deprecated
UserPasswordCallback authentication interface.
* Makefile.in
(check-deprecated-authn-javahl): New target.
(check-all-javahl): Include dependency on check-deprecated-authn-javahl.
[in subversion/bindings/javahl]
* src/org/apache/subversion/javahl/ISVNClient.java,
src/org/apache/subversion/javahl/SVNClient.java
(ISVNClient.setPrompt): Add overloads for both AuthnCallback
and UserPasswordCallback variants.
* src/org/apache/subversion/javahl/remote/RemoteFactory.java
(RemoteFactory.RemoteFactory, RemoteFactory.setPrompt): Likewise.
(RemoteFactory.open): Handler both types of prompters. Update all callers.
* native/org_apache_subversion_javahl_SVNClient.cpp
(Java_org_apache_subversion_javahl_SVNClient_setPrompt*): Implement native
overloads
of the ISVNClent.setPrompt() method.
* native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
(Java_org_apache_subversion_javahl_remote_RemoteFactory_open):
Adjust implementation for changed prototype.
* native/RemoteSession.h, native/RemoteSession.cpp
(RemoteSession::open): Create prompter wrapper depending on which type
of prompter was set in the factory.
* tests/org/apache/subversion/javahl/SVNTests.java
(SVNTests.DefaultPromptUserPassword): Removed.
(SVNTests.DefaultAuthn): New; factory for both variants of the prompter.
(SVNTests.initClient): Select prompter based on system propery settings.
* tests/org/apache/subversion/javahl/BasicTests.java,
tests/org/apache/subversion/javahl/SVNRemoteTests.java:
Select prompter based on system propery settings.
Modified:
subversion/trunk/Makefile.in
subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
Modified: subversion/trunk/Makefile.in
URL:
http://svn.apache.org/viewvc/subversion/trunk/Makefile.in?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/Makefile.in (original)
+++ subversion/trunk/Makefile.in Fri Jun 6 20:00:20 2014
@@ -504,9 +504,14 @@ check-apache-javahl: javahl
$(TEST_SHLIB_VAR_JAVAHL) \
$(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)"
"-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)"
"-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)"
-classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)"
"-Dtest.tests=$(JAVAHL_TESTS)" org.apache.subversion.javahl.RunTests
+check-deprecated-authn-javahl: javahl
+ @FIX_JAVAHL_LIB@
+ $(TEST_SHLIB_VAR_JAVAHL) \
+ $(JAVA) "-Dtest.rootdir=$(javahl_test_rootdir)"
"-Dtest.srcdir=$(javahl_test_srcdir)" "-Dtest.rooturl=$(BASE_URL)"
"-Dtest.fstype=$(FS_TYPE)" "-Djava.library.path=@JAVAHL_OBJDIR@:$(libdir)"
-classpath "$(javahl_tests_PATH):$(javahl_tests_CLASSPATH)"
"-Dtest.tests=$(JAVAHL_TESTS)" "-Dtest.authn.deprecated=true"
org.apache.subversion.javahl.RunTests
+
check-javahl: check-apache-javahl
-check-all-javahl: check-apache-javahl check-tigris-javahl
+check-all-javahl: check-apache-javahl check-tigris-javahl
check-deprecated-authn-javahl
# "make check CLEANUP=true" will clean up directories for successful tests.
# "make check TESTS=subversion/tests/cmdline/basic_tests.py"
Modified: subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/RemoteSession.cpp Fri
Jun 6 20:00:20 2014
@@ -68,9 +68,11 @@ RemoteSession::open(jint jretryAttempts,
jstring jurl, jstring juuid,
jstring jconfigDirectory,
jstring jusername, jstring jpassword,
- jobject jprompter, jobject jprogress,
- jobject jcfgcb, jobject jtunnelcb)
+ jobject jprompter, jobject jdeprecatedPrompter,
+ jobject jprogress, jobject jcfgcb, jobject jtunnelcb)
{
+ SVN_ERR_ASSERT_NO_RETURN(!jprompter != !jdeprecatedPrompter);
+
JNIEnv *env = JNIUtil::getEnv();
SVN::Pool requestPool;
@@ -101,7 +103,8 @@ RemoteSession::open(jint jretryAttempts,
return NULL;
env->DeleteLocalRef(jpassword);
- Prompter::UniquePtr prompter(CompatPrompter::create(jprompter));
+ Prompter::UniquePtr prompter(jprompter ? Prompter::create(jprompter)
+ : CompatPrompter::create(jdeprecatedPrompter));
if (JNIUtil::isExceptionThrown())
return NULL;
Modified: subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/RemoteSession.h Fri Jun
6 20:00:20 2014
@@ -48,8 +48,8 @@ class RemoteSession : public SVNBase
jstring jurl, jstring juuid,
jstring jconfigDirectory,
jstring jusername, jstring jpassword,
- jobject jprompter, jobject jprogress,
- jobject jcfgcb, jobject jtunnelcb);
+ jobject jprompter, jobject jdeprecatedPrompter,
+ jobject jprogress, jobject jcfgcb, jobject jtunnelcb);
static jobject open(jint jretryAttempts,
const char* url, const char* uuid,
const char* configDirectory,
Modified:
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
(original)
+++
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
Fri Jun 6 20:00:20 2014
@@ -258,7 +258,25 @@ Java_org_apache_subversion_javahl_SVNCli
}
JNIEXPORT void JNICALL
-Java_org_apache_subversion_javahl_SVNClient_setPrompt
+Java_org_apache_subversion_javahl_SVNClient_setPrompt__Lorg_apache_subversion_javahl_callback_AuthnCallback_2
+(JNIEnv *env, jobject jthis, jobject jprompter)
+{
+ JNIEntry(SVNClient, setPrompt);
+ SVNClient *cl = SVNClient::getCppObject(jthis);
+ if (cl == NULL)
+ {
+ JNIUtil::throwError(_("bad C++ this"));
+ return;
+ }
+ Prompter::UniquePtr prompter(Prompter::create(jprompter));
+ if (JNIUtil::isExceptionThrown())
+ return;
+
+ cl->getClientContext().setPrompt(prompter);
+}
+
+JNIEXPORT void JNICALL
+Java_org_apache_subversion_javahl_SVNClient_setPrompt__Lorg_apache_subversion_javahl_callback_UserPasswordCallback_2
(JNIEnv *env, jobject jthis, jobject jprompter)
{
JNIEntry(SVNClient, setPrompt);
Modified:
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
(original)
+++
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_remote_RemoteFactory.cpp
Fri Jun 6 20:00:20 2014
@@ -40,8 +40,8 @@ Java_org_apache_subversion_javahl_remote
jstring jurl, jstring juuid,
jstring jconfigDirectory,
jstring jusername, jstring jpassword,
- jobject jprompter, jobject jprogress,
- jobject jcfgcb, jobject jtunnelcb)
+ jobject jprompter, jobject jdeprecatedPrompter,
+ jobject jprogress, jobject jcfgcb, jobject jtunnelcb)
{
//JNI macros need jthis but this is a static call
JNIEntryStatic(RemoteFactory, open);
@@ -51,8 +51,9 @@ Java_org_apache_subversion_javahl_remote
*/
jobject jremoteSession = RemoteSession::open(
jretryAttempts, jurl, juuid,
- jconfigDirectory, jusername, jpassword, jprompter, jprogress,
- jcfgcb, jtunnelcb);
+ jconfigDirectory, jusername, jpassword,
+ jprompter, jdeprecatedPrompter,
+ jprogress, jcfgcb, jtunnelcb);
if (JNIUtil::isJavaExceptionThrown())
return NULL;
Modified:
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
Fri Jun 6 20:00:20 2014
@@ -160,6 +160,16 @@ public interface ISVNClient
* accepted by the command-line client.
* @param prompt the callback interface
*/
+ void setPrompt(AuthnCallback prompt);
+
+ /**
+ * Register callback interface to supply username and password on demand.
+ * This callback can also be used to provide theequivalent of the
+ * <code>--no-auth-cache</code> and <code>--non-interactive</code>
arguments
+ * accepted by the command-line client.
+ * @param prompt the callback interface
+ */
+ @SuppressWarnings("deprecation")
void setPrompt(UserPasswordCallback prompt);
/**
Modified:
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
Fri Jun 6 20:00:20 2014
@@ -150,6 +150,9 @@ public class SVNClient implements ISVNCl
public native void password(String password);
+ public native void setPrompt(AuthnCallback prompt);
+
+ @SuppressWarnings("deprecation")
public native void setPrompt(UserPasswordCallback prompt);
public native void setTunnelAgent(TunnelAgent tunnelAgent);
Modified:
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/remote/RemoteFactory.java
Fri Jun 6 20:00:20 2014
@@ -58,6 +58,26 @@ public class RemoteFactory
*/
public RemoteFactory(String configDirectory,
String username, String password,
+ AuthnCallback prompt,
+ ProgressCallback progress,
+ ConfigEvent configHandler,
+ TunnelAgent tunnelAgent)
+ {
+ setConfigDirectory(configDirectory);
+ setUsername(username);
+ setPassword(password);
+ setPrompt(prompt);
+ setProgressCallback(progress);
+ setConfigEventHandler(configHandler);
+ setTunnelAgent(tunnelAgent);
+ }
+
+ /**
+ * Initializing constructor. Any or all of its arguments may be null.
+ */
+ @SuppressWarnings("deprecation")
+ public RemoteFactory(String configDirectory,
+ String username, String password,
UserPasswordCallback prompt,
ProgressCallback progress,
ConfigEvent configHandler,
@@ -105,12 +125,27 @@ public class RemoteFactory
* arguments accepted by the command-line client.
* @param prompt the callback interface
*/
- public void setPrompt(UserPasswordCallback prompt)
+ public void setPrompt(AuthnCallback prompt)
{
+ assert(this.deprecatedPrompt == null);
this.prompt = prompt;
}
/**
+ * Register callback interface to supply username and password on demand.
+ * This callback can also be used to provide theequivalent of the
+ * <code>--no-auth-cache</code> and <code>--non-interactive</code>
+ * arguments accepted by the command-line client.
+ * @param prompt the callback interface
+ */
+ @SuppressWarnings("deprecation")
+ public void setPrompt(UserPasswordCallback prompt)
+ {
+ assert(this.prompt == null);
+ this.deprecatedPrompt = prompt;
+ }
+
+ /**
* Set the progress callback for new sessions.
*
* @param progress The progress callback.
@@ -163,7 +198,7 @@ public class RemoteFactory
throws ClientException, SubversionException
{
return open(1, url, null, configDirectory,
- username, password, prompt, progress,
+ username, password, prompt, deprecatedPrompt, progress,
configHandler, tunnelAgent);
}
@@ -191,7 +226,7 @@ public class RemoteFactory
throw new IllegalArgumentException(
"retryAttempts must be positive");
return open(retryAttempts, url, null, configDirectory,
- username, password, prompt, progress,
+ username, password, prompt, deprecatedPrompt, progress,
configHandler, tunnelAgent);
}
@@ -219,7 +254,7 @@ public class RemoteFactory
if (reposUUID == null)
throw new IllegalArgumentException("reposUUID may not be null");
return open(1, url, reposUUID, configDirectory,
- username, password, prompt, progress,
+ username, password, prompt, deprecatedPrompt, progress,
configHandler, tunnelAgent);
}
@@ -254,24 +289,28 @@ public class RemoteFactory
throw new IllegalArgumentException(
"retryAttempts must be positive");
return open(retryAttempts, url, reposUUID, configDirectory,
- username, password, prompt, progress,
+ username, password, prompt, deprecatedPrompt, progress,
configHandler, tunnelAgent);
}
private String configDirectory;
private String username;
private String password;
- private UserPasswordCallback prompt;
+ private AuthnCallback prompt;
+ @SuppressWarnings("deprecation")
+ private UserPasswordCallback deprecatedPrompt;
private ProgressCallback progress;
private ConfigEvent configHandler;
private TunnelAgent tunnelAgent;
/* Native factory implementation. */
+ @SuppressWarnings("deprecation")
private static native ISVNRemote open(int retryAttempts,
String url, String reposUUID,
String configDirectory,
String username, String password,
- UserPasswordCallback prompt,
+ AuthnCallback prompt,
+ UserPasswordCallback deprecatedPompt,
ProgressCallback progress,
ConfigEvent configHandler,
TunnelAgent tunnelAgent)
Modified:
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
Fri Jun 6 20:00:20 2014
@@ -4049,7 +4049,10 @@ public class BasicTests extends SVNTests
SVNClient cl = new SVNClient();
try {
cl.notification2(new MyNotifier());
- cl.setPrompt(new DefaultPromptUserPassword());
+ if (DefaultAuthn.useDeprecated())
+ cl.setPrompt(DefaultAuthn.getDeprecated());
+ else
+ cl.setPrompt(DefaultAuthn.getDefault());
cl.username(USERNAME);
cl.setProgressCallback(new DefaultProgressListener());
cl.setConfigDirectory(conf.getAbsolutePath());
Modified:
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNRemoteTests.java
Fri Jun 6 20:00:20 2014
@@ -79,7 +79,10 @@ public class SVNRemoteTests extends SVNT
factory.setConfigDirectory(configDirectory);
factory.setUsername(USERNAME);
// Do not set default password, exercise prompter instead.
- factory.setPrompt(new DefaultPromptUserPassword());
+ if (DefaultAuthn.useDeprecated())
+ factory.setPrompt(DefaultAuthn.getDeprecated());
+ else
+ factory.setPrompt(DefaultAuthn.getDefault());
ISVNRemote raSession = factory.openRemoteSession(url);
assertNotNull("Null session was returned by factory", raSession);
@@ -111,13 +114,20 @@ public class SVNRemoteTests extends SVNT
ISVNRemote session;
try
{
- session = new RemoteFactory(
- super.conf.getAbsolutePath(),
- USERNAME, null, // Do not set default password.
-
- new DefaultPromptUserPassword(),
- null, null, null)
- .openRemoteSession(getTestRepoUrl());
+ if (DefaultAuthn.useDeprecated())
+ session = new RemoteFactory(
+ super.conf.getAbsolutePath(),
+ USERNAME, null, // Do not set default password.
+ DefaultAuthn.getDeprecated(),
+ null, null, null)
+ .openRemoteSession(getTestRepoUrl());
+ else
+ session = new RemoteFactory(
+ super.conf.getAbsolutePath(),
+ USERNAME, null, // Do not set default password.
+ DefaultAuthn.getDefault(),
+ null, null, null)
+ .openRemoteSession(getTestRepoUrl());
}
catch (ClientException ex)
{
@@ -140,10 +150,19 @@ public class SVNRemoteTests extends SVNT
try {
String prefix = getTestRepoUrl().substring(
0, 1 + getTestRepoUrl().lastIndexOf("/"));
+
+ if (DefaultAuthn.useDeprecated())
+ new RemoteFactory(
+ super.conf.getAbsolutePath(),
+ USERNAME, null, // Do not set default password.
+ DefaultAuthn.getDeprecated(),
+ null, null, null)
+ .openRemoteSession(prefix + "repositorydoesnotexisthere");
+ else
new RemoteFactory(
super.conf.getAbsolutePath(),
USERNAME, null, // Do not set default password.
- new DefaultPromptUserPassword(),
+ DefaultAuthn.getDefault(),
null, null, null)
.openRemoteSession(prefix + "repositorydoesnotexisthere");
}
@@ -986,12 +1005,20 @@ public class SVNRemoteTests extends SVNT
ISVNRemote session;
try
{
- session = new RemoteFactory(
- super.conf.getAbsolutePath(),
- USERNAME, null, // Do not set default password.
- new DefaultPromptUserPassword(),
- null, handler, null)
- .openRemoteSession(getTestRepoUrl());
+ if (DefaultAuthn.useDeprecated())
+ session = new RemoteFactory(
+ super.conf.getAbsolutePath(),
+ USERNAME, null, // Do not set default password.
+ DefaultAuthn.getDeprecated(),
+ null, handler, null)
+ .openRemoteSession(getTestRepoUrl());
+ else
+ session = new RemoteFactory(
+ super.conf.getAbsolutePath(),
+ USERNAME, null, // Do not set default password.
+ DefaultAuthn.getDefault(),
+ null, handler, null)
+ .openRemoteSession(getTestRepoUrl());
}
catch (ClientException ex)
{
Modified:
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=1600993&r1=1600992&r2=1600993&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
(original)
+++
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
Fri Jun 6 20:00:20 2014
@@ -296,62 +296,136 @@ class SVNTests extends TestCase
{
this.client = new SVNClient();
this.client.notification2(new MyNotifier());
- this.client.setPrompt(new DefaultPromptUserPassword());
+ if (DefaultAuthn.useDeprecated())
+ this.client.setPrompt(DefaultAuthn.getDeprecated());
+ else
+ this.client.setPrompt(DefaultAuthn.getDefault());
this.client.username(USERNAME);
this.client.setProgressCallback(new DefaultProgressListener());
this.client.setConfigDirectory(this.conf.getAbsolutePath());
this.expectedCommitItems = new HashMap<String, MyCommitItem>();
}
/**
- * the default prompt : never prompts the user, provides defaults answers
+ * the default prompts : never prompt the user, provide default answers
*/
- protected static class DefaultPromptUserPassword implements
UserPasswordCallback
+ protected static class DefaultAuthn
{
-
- public int askTrustSSLServer(String info, boolean allowPermanently)
+ public static boolean useDeprecated()
{
- return UserPasswordCallback.AcceptTemporary;
+ String prop = System.getProperty("test.authn.deprecated");
+ return (prop != null && !prop.isEmpty());
}
- public String askQuestion(String realm, String question, boolean
showAnswer)
+ public static AuthnCallback getDefault()
{
- return "";
+ return new DefaultAuthnCallback();
}
- public boolean askYesNo(String realm, String question, boolean
yesIsDefault)
+ @SuppressWarnings("deprecation")
+ public static UserPasswordCallback getDeprecated()
{
- return yesIsDefault;
+ return new DeprecatedAuthnCallback();
}
- public String getPassword()
+ private static class DefaultAuthnCallback
+ implements AuthnCallback
{
- return PASSWORD;
- }
+ public UsernameResult
+ usernamePrompt(String realm, boolean maySave)
+ {
+ return new UsernameResult(USERNAME);
+ }
- public String getUsername()
- {
- return USERNAME;
- }
+ public UserPasswordResult
+ userPasswordPrompt(String realm, String username,
+ boolean maySave)
+ {
+ return new UserPasswordResult(USERNAME, PASSWORD);
+ }
- public boolean prompt(String realm, String username)
- {
- return true;
- }
+ public SSLServerTrustResult
+ sslServerTrustPrompt(String realm,
+ SSLServerCertFailures failures,
+ SSLServerCertInfo info,
+ boolean maySave)
+ {
+ return SSLServerTrustResult.acceptTemporarily();
+ }
- public boolean prompt(String realm, String username, boolean maySave)
- {
- return true;
- }
+ public SSLClientCertResult
+ sslClientCertPrompt(String realm, boolean maySave)
+ {
+ return null;
+ }
- public String askQuestion(String realm, String question,
- boolean showAnswer, boolean maySave)
- {
- return "";
+ public SSLClientCertPassphraseResult
+ sslClientCertPassphrasePrompt(String realm, boolean maySave)
+ {
+ return null;
+ }
+
+ public boolean allowStorePlaintextPassword(String realm)
+ {
+ return false;
+ }
+
+ public boolean allowStorePlaintextPassphrase(String realm)
+ {
+ return false;
+ }
}
- public boolean userAllowedSave()
+ @SuppressWarnings("deprecation")
+ private static class DeprecatedAuthnCallback
+ implements UserPasswordCallback
{
- return false;
+ public int askTrustSSLServer(String info, boolean allowPermanently)
+ {
+ return UserPasswordCallback.AcceptTemporary;
+ }
+
+ public String askQuestion(String realm, String question,
+ boolean showAnswer)
+ {
+ return "";
+ }
+
+ public boolean askYesNo(String realm, String question,
+ boolean yesIsDefault)
+ {
+ return yesIsDefault;
+ }
+
+ public String getPassword()
+ {
+ return PASSWORD;
+ }
+
+ public String getUsername()
+ {
+ return USERNAME;
+ }
+
+ public boolean prompt(String realm, String username)
+ {
+ return true;
+ }
+
+ public boolean prompt(String realm, String username, boolean
maySave)
+ {
+ return true;
+ }
+
+ public String askQuestion(String realm, String question,
+ boolean showAnswer, boolean maySave)
+ {
+ return "";
+ }
+
+ public boolean userAllowedSave()
+ {
+ return false;
+ }
}
}