Believed to alleviate the following symptoms:
1) NTLM auth method didn't use credentials collected
from ne_set_server_auth

--- src/ne_auth.c       2005-06-21 03:31:30.000000000 -0700
+++ src1/ne_auth.c      2005-07-22 09:00:37.529316800 -0700
@@ -1,7 +1,7 @@
 /* 
    HTTP Authentication routines
    Copyright (C) 1999-2005, Joe Orton
<[EMAIL PROTECTED]>
-
+ 
    This library is free software; you can
redistribute it and/or
    modify it under the terms of the GNU Library
General Public
    License as published by the Free Software
Foundation; either
@@ -510,12 +510,14 @@
     return ne_concat(mechanism, " ",
sess->sspi_token, "\r\n", NULL);
 }
 
+
 static int sspi_challenge(auth_session *sess, struct
auth_challenge *parms,
                           int ntlm) 
 {
     int status;
     char *response = NULL;
-    
+       char password[NE_ABUFSIZ];
+
     NE_DEBUG(NE_DBG_HTTPAUTH, "auth: SSPI
challenge.\n");
     
     if (!sess->sspi_context) {
@@ -524,8 +526,18 @@
         if (status) {
             return status;
         }
-    }
-    
+          if (!get_credentials(sess, password)) {
+               /* username is DOMAIN\USER, password is password */
+           /* process that into the security context */
+               ne_sspi_alt_creds(sess->sspi_context,
+                                                        sess->username,
+                                                        sess->realm,
+                                                        
sess->scheme,password); 
+
+          }
+          
+       }
+
     status = ne_sspi_authenticate(sess->sspi_context,
parms->opaque, &response);
     if (status) {
         return status;
@@ -941,6 +953,7 @@
 static int auth_challenge(auth_session *sess, const
char *value) 
 {
     char *pnt, *key, *val, *hdr, sep;
+       
     struct auth_challenge *chall = NULL, *challenges
= NULL;
     int success;
 
@@ -970,9 +983,21 @@
 #ifdef HAVE_SSPI
             else if (strcasecmp(key, "negotiate") ==
0) {
                 scheme = auth_scheme_sspi_negotiate;
+#if 0
+                               if (get_credentials(sess, password)) {
+                               /* Failed to get credentials */
+                                       return -1;
+                               }
+#endif
             } else if (strcasecmp(key, "ntlm") == 0)
{
                 scheme = auth_scheme_sspi_ntlm;
-            }
+#if 0
+                               if (get_credentials(sess, password)) {
+                               /* Failed to get credentials */
+                                       return -1;
+                               }
+#endif
+                       }
 #endif
 #endif
             else {


_______________________________________________
neon mailing list
[email protected]
http://mailman.webdav.org/mailman/listinfo/neon

Reply via email to