From 97d1c236346a769783a46ba6b11a18f5613c79a8 Mon Sep 17 00:00:00 2001 From: Teodor Zlatanov Date: Mon, 12 May 2008 12:39:46 +0000 Subject: [PATCH] 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/ChangeLog | 7 +++++++ lisp/url/url-auth.el | 45 ++++++++++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 12 deletions(-) diff --git a/lisp/url/ChangeLog b/lisp/url/ChangeLog index 1d20260eb6c..3ae9c60cff7 100644 --- a/lisp/url/ChangeLog +++ b/lisp/url/ChangeLog @@ -1,3 +1,10 @@ +2008-05-12 Teodor Zlatanov + + * 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 * url-vars.el (url-load-hook): Fix typo in docstring. 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 -- 2.39.2