Author: brane
Date: Fri Jun 6 11:56:32 2014
New Revision: 1600854
URL: http://svn.apache.org/r1600854
Log:
Implement the new native wrapper for the AuthnCallback and
deprecated UserPasswordCallback in JavaHL.
[in subversion/bindings/javahl]
* native/AuthnCallback.cpp:
Implement all native wrappers.
* native/jniwrapper/jni_object.hpp
(ClassCache::user_passwd_cb): Declare new cache member.
* native/jniwrapper/jni_class_cache.cpp
(ClassCache::user_passwd_cb): Initialize.
Modified:
subversion/trunk/subversion/bindings/javahl/native/AuthnCallback.cpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_object.hpp
Modified: subversion/trunk/subversion/bindings/javahl/native/AuthnCallback.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/AuthnCallback.cpp?rev=1600854&r1=1600853&r2=1600854&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/AuthnCallback.cpp
(original)
+++ subversion/trunk/subversion/bindings/javahl/native/AuthnCallback.cpp Fri
Jun 6 11:56:32 2014
@@ -87,6 +87,64 @@ void AuthnCallback::static_init(::Java::
"(Ljava/lang/String;)Z");
}
+jobject AuthnCallback::username_prompt(const ::Java::String& realm,
+ bool may_save)
+{
+ return m_env.CallObjectMethod(m_jthis, m_mid_username_prompt,
+ realm.get(), jboolean(may_save));
+}
+
+
+jobject AuthnCallback::user_password_prompt(const ::Java::String& realm,
+ const ::Java::String& username,
+ bool may_save)
+{
+ return m_env.CallObjectMethod(m_jthis, m_mid_user_password_prompt,
+ realm.get(), username.get(),
+ jboolean(may_save));
+}
+
+jobject AuthnCallback::ssl_server_trust_prompt(
+ const ::Java::String& realm,
+ const SSLServerCertFailures& failures,
+ const SSLServerCertInfo& info,
+ bool may_save)
+{
+ return m_env.CallObjectMethod(m_jthis, m_mid_ssl_server_trust_prompt,
+ realm.get(), failures.get(), info.get(),
+ jboolean(may_save));
+}
+
+jobject AuthnCallback::ssl_client_cert_prompt(const ::Java::String&
+ realm, bool may_save)
+{
+ return m_env.CallObjectMethod(m_jthis, m_mid_ssl_client_cert_prompt,
+ realm.get(), jboolean(may_save));
+}
+
+jobject AuthnCallback::ssl_client_cert_passphrase_prompt(
+ const ::Java::String& realm,
+ bool may_save)
+{
+ return m_env.CallObjectMethod(m_jthis,
+ m_mid_ssl_client_cert_passphrase_prompt,
+ realm.get(), jboolean(may_save));
+}
+
+bool AuthnCallback::allow_store_plaintext_password(const ::Java::String& realm)
+{
+ return m_env.CallBooleanMethod(m_jthis,
+ m_mid_allow_store_plaintext_password,
+ realm.get());
+}
+
+bool AuthnCallback::allow_store_plaintext_passphrase(const ::Java::String&
realm)
+{
+ return m_env.CallBooleanMethod(m_jthis,
+ m_mid_allow_store_plaintext_passphrase,
+ realm.get());
+}
+
// Class JavaHL::AuthnCallback::AuthnResult
const char* const AuthnCallback::AuthnResult::m_class_name =
@@ -165,4 +223,128 @@ AuthnCallback::SSLServerCertInfo::SSLSer
issuer.get(), der.get()))
{}
+
+// Class JavaHL::UserPasswordCallback
+const char* const UserPasswordCallback::m_class_name =
+ JAVA_PACKAGE"/callback/UserPasswordCallback";
+
+::Java::MethodID UserPasswordCallback::m_mid_ask_trust_ssl_server;
+::Java::MethodID UserPasswordCallback::m_mid_prompt_2arg;
+::Java::MethodID UserPasswordCallback::m_mid_ask_yes_no;
+::Java::MethodID UserPasswordCallback::m_mid_ask_question_3arg;
+::Java::MethodID UserPasswordCallback::m_mid_get_username;
+::Java::MethodID UserPasswordCallback::m_mid_get_password;
+::Java::MethodID UserPasswordCallback::m_mid_prompt;
+::Java::MethodID UserPasswordCallback::m_mid_ask_question;
+::Java::MethodID UserPasswordCallback::m_mid_user_allowed_save;
+
+void UserPasswordCallback::static_init(::Java::Env env)
+{
+ const jclass cls = ::Java::ClassCache::get_user_passwd_cb();
+
+ m_mid_ask_trust_ssl_server =
+ env.GetMethodID(cls, "askTrustSSLServer",
+ "(Ljava/lang/String;Z)I");
+
+ m_mid_prompt_2arg =
+ env.GetMethodID(cls, "prompt",
+ "(Ljava/lang/String;Ljava/lang/String;)Z");
+
+ m_mid_ask_yes_no =
+ env.GetMethodID(cls, "askYesNo",
+ "(Ljava/lang/String;Ljava/lang/String;Z)Z");
+
+ m_mid_ask_question_3arg =
+ env.GetMethodID(cls, "askQuestion",
+ "(Ljava/lang/String;Ljava/lang/String;Z)"
+ "Ljava/lang/String;");
+
+ m_mid_get_username =
+ env.GetMethodID(cls, "getUsername",
+ "()Ljava/lang/String;");
+
+ m_mid_get_password =
+ env.GetMethodID(cls, "getPassword",
+ "()Ljava/lang/String;");
+
+ m_mid_prompt =
+ env.GetMethodID(cls, "prompt",
+ "(Ljava/lang/String;Ljava/lang/String;Z)Z");
+
+ m_mid_ask_question =
+ env.GetMethodID(cls, "askQuestion",
+ "(Ljava/lang/String;Ljava/lang/String;ZZ)"
+ "Ljava/lang/String;");
+
+ m_mid_user_allowed_save =
+ env.GetMethodID(cls, "userAllowedSave", "()Z");
+}
+
+
+jint UserPasswordCallback::ask_trust_ssl_server(const ::Java::String& info,
+ bool allow_permanently)
+{
+ return m_env.CallIntMethod(m_jthis, m_mid_ask_trust_ssl_server,
+ info.get(), jboolean(allow_permanently));
+}
+
+bool UserPasswordCallback::prompt(const ::Java::String& realm,
+ const ::Java::String& username)
+{
+ return m_env.CallBooleanMethod(m_jthis, m_mid_prompt_2arg,
+ realm.get(), username.get());
+}
+
+bool UserPasswordCallback::ask_yes_no(const ::Java::String& realm,
+ const ::Java::String& question,
+ bool yes_is_default)
+{
+ return m_env.CallBooleanMethod(m_jthis, m_mid_ask_yes_no,
+ realm.get(), question.get(),
+ jboolean(yes_is_default));
+}
+
+jstring UserPasswordCallback::ask_question(const ::Java::String& realm,
+ const ::Java::String& question,
+ bool show_answer)
+{
+ return jstring(m_env.CallObjectMethod(m_jthis, m_mid_ask_question_3arg,
+ realm.get(), question.get(),
+ jboolean(show_answer)));
+}
+
+jstring UserPasswordCallback::get_username()
+{
+ return jstring(m_env.CallObjectMethod(m_jthis, m_mid_get_username));
+}
+
+jstring UserPasswordCallback::get_password()
+{
+ return jstring(m_env.CallObjectMethod(m_jthis, m_mid_get_password));
+}
+
+bool UserPasswordCallback::prompt(const ::Java::String& realm,
+ const ::Java::String& username,
+ bool may_save)
+{
+ return m_env.CallBooleanMethod(m_jthis, m_mid_prompt,
+ realm.get(), username.get(),
+ jboolean(may_save));
+}
+
+jstring UserPasswordCallback::ask_question(const ::Java::String& realm,
+ const ::Java::String& question,
+ bool show_answer, bool may_save)
+{
+ return jstring(m_env.CallObjectMethod(m_jthis, m_mid_ask_question,
+ realm.get(), question.get(),
+ jboolean(show_answer),
+ jboolean(may_save)));
+}
+
+bool UserPasswordCallback::user_allowed_save()
+{
+ return m_env.CallBooleanMethod(m_jthis, m_mid_user_allowed_save);
+}
+
} // namespace JavaHL
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp?rev=1600854&r1=1600853&r2=1600854&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp
(original)
+++
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_class_cache.cpp
Fri Jun 6 11:56:32 2014
@@ -132,6 +132,8 @@ ClassCache::ClassCache(Env env)
SVN_JAVAHL_JNIWRAPPER_CLASS_CACHE_INIT(
authn_ssl_server_cert_info,
::JavaHL::AuthnCallback::SSLServerCertInfo),
+ SVN_JAVAHL_JNIWRAPPER_CLASS_CACHE_INIT(user_passwd_cb,
+ ::JavaHL::UserPasswordCallback),
SVN_JAVAHL_JNIWRAPPER_CLASS_CACHE_INIT(external_item,
::JavaHL::ExternalItem),
@@ -173,6 +175,7 @@ ClassCache::ClassCache(Env env)
::JavaHL::AuthnCallback::AuthnResult::static_init(env);
::JavaHL::AuthnCallback::SSLServerCertFailures::static_init(env);
::JavaHL::AuthnCallback::SSLServerCertInfo::static_init(env);
+ ::JavaHL::UserPasswordCallback::static_init(env);
::JavaHL::ExternalItem::static_init(env);
Modified:
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_object.hpp
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_object.hpp?rev=1600854&r1=1600853&r2=1600854&view=diff
==============================================================================
---
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_object.hpp
(original)
+++
subversion/trunk/subversion/bindings/javahl/native/jniwrapper/jni_object.hpp
Fri Jun 6 11:56:32 2014
@@ -167,6 +167,7 @@ class ClassCache
SVN_JAVAHL_JNIWRAPPER_CACHED_CLASS(authn_result);
SVN_JAVAHL_JNIWRAPPER_CACHED_CLASS(authn_ssl_server_cert_failures);
SVN_JAVAHL_JNIWRAPPER_CACHED_CLASS(authn_ssl_server_cert_info);
+ SVN_JAVAHL_JNIWRAPPER_CACHED_CLASS(user_passwd_cb);
SVN_JAVAHL_JNIWRAPPER_CACHED_CLASS(external_item);