changeset 94879:fc66ed3d9938

Add autoload cookie for `auth-source-user-or-password'. (url-basic-auth, url-digest-auth): Use it with any realm, overriding the user name and password before the prompt.
author Teodor Zlatanov <tzz@lifelogs.com>
date Mon, 12 May 2008 12:39:46 +0000
parents 112212c5e23c
children e1d2da11b5ac
files lisp/url/ChangeLog lisp/url/url-auth.el
diffstat 2 files changed, 40 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/url/ChangeLog	Mon May 12 01:46:27 2008 +0000
+++ b/lisp/url/ChangeLog	Mon May 12 12:39:46 2008 +0000
@@ -1,3 +1,10 @@
+2008-05-12  Teodor Zlatanov  <tzz@lifelogs.com>
+
+	* url-auth.el: Add autoload cookie for
+	`auth-source-user-or-password'.
+	(url-basic-auth, url-digest-auth): Use it with any realm,
+	overriding the user name and password before the prompt.
+
 2008-04-28  Juanma Barranquero  <lekktu@gmail.com>
 
 	* url-vars.el (url-load-hook): Fix typo in docstring.
--- a/lisp/url/url-auth.el	Mon May 12 01:46:27 2008 +0000
+++ b/lisp/url/url-auth.el	Mon May 12 12:39:46 2008 +0000
@@ -26,6 +26,9 @@
 (require 'url-parse)
 (autoload 'url-warn "url")
 
+(eval-and-compile
+  (autoload 'auth-source-user-or-password "auth-source"))
+
 (defsubst url-auth-user-prompt (url realm)
   "String to usefully prompt for a username."
   (concat "Username [for "
@@ -64,6 +67,7 @@
 		   (url-generic-parse-url url)
 		 url))
 	 (server (url-host href))
+	 (type (url-type href))
 	 (port (url-port href))
 	 (file (url-filename href))
 	 (user (url-user href))
@@ -79,9 +83,13 @@
 				  (symbol-value url-basic-auth-storage))))
     (cond
      ((and prompt (not byserv))
-      (setq user (read-string (url-auth-user-prompt url realm)
-			      (or user (user-real-login-name)))
-	    pass (read-passwd "Password: " nil (or pass "")))
+      (setq user (or 
+		  (auth-source-user-or-password "login" server type)
+		  (read-string (url-auth-user-prompt url realm)
+			       (or user (user-real-login-name))))
+	    pass (or 
+		  (auth-source-user-or-password "password" server type)
+		  (read-passwd "Password: " nil (or pass ""))))
       (set url-basic-auth-storage
 	   (cons (list server
 		       (cons file
@@ -103,9 +111,13 @@
 	    (setq byserv (cdr byserv))))
       (if (or (and (not retval) prompt) overwrite)
 	  (progn
-	    (setq user (read-string (url-auth-user-prompt url realm)
-				    (user-real-login-name))
-		  pass (read-passwd "Password: ")
+	    (setq user (or 
+			(auth-source-user-or-password "login" server type)
+			(read-string (url-auth-user-prompt url realm)
+				     (user-real-login-name)))
+		  pass (or 
+			(auth-source-user-or-password "password" server type)
+			(read-passwd "Password: "))
 		  retval (base64-encode-string (format "%s:%s" user pass))
 		  byserv (assoc server (symbol-value url-basic-auth-storage)))
 	    (setcdr byserv
@@ -150,6 +162,7 @@
 		       (url-generic-parse-url url)
 		     url))
 	     (server (url-host href))
+	     (type (url-type href))
 	     (port (url-port href))
 	     (file (url-filename href))
 	     user pass byserv retval data)
@@ -161,9 +174,13 @@
 	      byserv (cdr-safe (assoc server url-digest-auth-storage)))
 	(cond
 	 ((and prompt (not byserv))
-	  (setq user (read-string (url-auth-user-prompt url realm)
-				  (user-real-login-name))
-		pass (read-passwd "Password: ")
+	  (setq user (or
+		      (auth-source-user-or-password "login" server type)
+		      (read-string (url-auth-user-prompt url realm)
+				   (user-real-login-name)))
+		pass (or
+		      (auth-source-user-or-password "password" server type)
+		      (read-passwd "Password: "))
 		url-digest-auth-storage
 		(cons (list server
 			    (cons file
@@ -188,9 +205,13 @@
 		(setq byserv (cdr byserv))))
 	  (if overwrite
 	      (if (and (not retval) prompt)
-		  (setq user (read-string (url-auth-user-prompt url realm)
-					  (user-real-login-name))
-			pass (read-passwd "Password: ")
+		  (setq user (or 
+			      (auth-source-user-or-password "login" server type)
+			      (read-string (url-auth-user-prompt url realm)
+					   (user-real-login-name)))
+			pass (or 
+			      (auth-source-user-or-password "password" server type)
+			      (read-passwd "Password: "))
 			retval (setq retval
 				     (cons user
 					   (url-digest-auth-create-key