From 97d1c236346a769783a46ba6b11a18f5613c79a8 Mon Sep 17 00:00:00 2001 From: Teodor Zlatanov Date: Mon, 12 May 2008 12:39:46 +0000 Subject: 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. --- lisp/url/url-auth.el | 45 +++++++++++++++++++++++++++++++++------------ 1 file changed, 33 insertions(+), 12 deletions(-) (limited to 'lisp/url/url-auth.el') diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el index 1663bd91824..91a3a49d2e5 100644 --- a/lisp/url/url-auth.el +++ b/lisp/url/url-auth.el @@ -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 @@ instead of the filename inheritance method." (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 @@ instead of the filename inheritance method." (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 @@ instead of the filename inheritance method." (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 @@ instead of hostname:portnum." (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 @@ instead of hostname:portnum." 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 @@ instead of hostname:portnum." (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 -- cgit v1.2.3