chemistry-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From f...@apache.org
Subject svn commit: r1751653 - in /chemistry/portcmis/trunk: PortCMIS/binding/BindingIntf.cs PortCMIS/client/SessionParameter.cs PortCMISWin/binding/WindowsBindingIntf.cs
Date Wed, 06 Jul 2016 10:32:56 GMT
Author: fmui
Date: Wed Jul  6 10:32:56 2016
New Revision: 1751653

URL: http://svn.apache.org/viewvc?rev=1751653&view=rev
Log:
CMIS-989: added preemptiv authentication parameter

Modified:
    chemistry/portcmis/trunk/PortCMIS/binding/BindingIntf.cs
    chemistry/portcmis/trunk/PortCMIS/client/SessionParameter.cs
    chemistry/portcmis/trunk/PortCMISWin/binding/WindowsBindingIntf.cs

Modified: chemistry/portcmis/trunk/PortCMIS/binding/BindingIntf.cs
URL: http://svn.apache.org/viewvc/chemistry/portcmis/trunk/PortCMIS/binding/BindingIntf.cs?rev=1751653&r1=1751652&r2=1751653&view=diff
==============================================================================
--- chemistry/portcmis/trunk/PortCMIS/binding/BindingIntf.cs (original)
+++ chemistry/portcmis/trunk/PortCMIS/binding/BindingIntf.cs Wed Jul  6 10:32:56 2016
@@ -384,7 +384,17 @@ namespace PortCMIS.Binding
 
             if (User != null)
             {
-                httpClientHandler.Credentials = new NetworkCredential(User, Password);
+                httpClientHandler.PreAuthenticate = true;
+                string preemptiveFlag = Session.GetValue(SessionParameter.PreemptivAuthentication)
as string;
+                if (preemptiveFlag != null && preemptiveFlag.ToLowerInvariant().Equals("true"))
+                {
+                    var userPassword = Encoding.UTF8.GetBytes(User + ":" + Password);
+                    AuthenticationHeader = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(userPassword));
+                }
+                else
+                {
+                    httpClientHandler.Credentials = new NetworkCredential(User, Password);
+                }
             }
             else
             {

Modified: chemistry/portcmis/trunk/PortCMIS/client/SessionParameter.cs
URL: http://svn.apache.org/viewvc/chemistry/portcmis/trunk/PortCMIS/client/SessionParameter.cs?rev=1751653&r1=1751652&r2=1751653&view=diff
==============================================================================
--- chemistry/portcmis/trunk/PortCMIS/client/SessionParameter.cs (original)
+++ chemistry/portcmis/trunk/PortCMIS/client/SessionParameter.cs Wed Jul  6 10:32:56 2016
@@ -35,6 +35,9 @@ namespace PortCMIS.Client
         /// <summary>Password</summary>
         public const string Password = "org.apache.chemistry.portcmis.password";
 
+        /// <summary>Preemptive authentication ("true" or "false") (basic auth only)</summary>
+        public const string PreemptivAuthentication = "org.apache.chemistry.portcmis.binding.auth.http.preemptive";
+
         // ---- provider parameter ----
 
         /// <summary>Binding Type ("atompub" or "browser")</summary>

Modified: chemistry/portcmis/trunk/PortCMISWin/binding/WindowsBindingIntf.cs
URL: http://svn.apache.org/viewvc/chemistry/portcmis/trunk/PortCMISWin/binding/WindowsBindingIntf.cs?rev=1751653&r1=1751652&r2=1751653&view=diff
==============================================================================
--- chemistry/portcmis/trunk/PortCMISWin/binding/WindowsBindingIntf.cs (original)
+++ chemistry/portcmis/trunk/PortCMISWin/binding/WindowsBindingIntf.cs Wed Jul  6 10:32:56
2016
@@ -18,8 +18,9 @@
 */
 
 using PortCMIS.Client;
+using System;
+using System.Text;
 using Windows.Security.Credentials;
-using Windows.Security.Cryptography;
 using Windows.Web.Http;
 using Windows.Web.Http.Filters;
 using Windows.Web.Http.Headers;
@@ -95,7 +96,17 @@ namespace PortCMIS.Binding
 
             if (User != null)
             {
-                httpClientFilter.ServerCredential = new PasswordCredential("cmis", User,
Password);
+                string preemptiveFlag = Session.GetValue(SessionParameter.PreemptivAuthentication)
as string;
+                if (preemptiveFlag != null && preemptiveFlag.ToLowerInvariant().Equals("true"))
+                {
+                    var userPassword = Encoding.UTF8.GetBytes(User + ":" + Password);
+                    AuthenticationHeader = new HttpCredentialsHeaderValue("Basic", Convert.ToBase64String(userPassword));
+                }
+                else
+                {
+                    httpClientFilter.ServerCredential = new PasswordCredential("cmis", User,
Password);
+
+                }
             }
             else if (BearerToken != null)
             {
@@ -104,8 +115,8 @@ namespace PortCMIS.Binding
 
             if (ProxyUser != null)
             {
-                var userPassword = CryptographicBuffer.ConvertStringToBinary(ProxyUser +
":" + ProxyPassword, BinaryStringEncoding.Utf16LE);
-                ProxyAuthenticationHeader = new HttpCredentialsHeaderValue("Basic", CryptographicBuffer.EncodeToBase64String(userPassword));
+                var userPassword = Encoding.UTF8.GetBytes(ProxyUser + ":" + ProxyPassword);
+                ProxyAuthenticationHeader = new HttpCredentialsHeaderValue("Basic", Convert.ToBase64String(userPassword));
             }
 
             if (CsrfHeader != null)



Mime
View raw message