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);
 


Reply via email to