(url-http-handle-authentication): If there are several authentication
headers, use the strongest available method.
This commit is contained in:
parent
29f85f09ca
commit
385b64c52a
2 changed files with 21 additions and 11 deletions
|
|
@ -1,5 +1,9 @@
|
|||
2006-11-08 Magnus Henoch <mange@freemail.hu>
|
||||
|
||||
* url-http.el (url-http-handle-authentication): If there are
|
||||
several authentication headers, use the strongest available
|
||||
method.
|
||||
|
||||
* url.el (url-retrieve-synchronously): Allow quitting when
|
||||
inhibit-quit is t.
|
||||
|
||||
|
|
|
|||
|
|
@ -313,21 +313,27 @@ This allows us to use `mail-fetch-field', etc."
|
|||
(type nil)
|
||||
(url (url-recreate-url url-current-object))
|
||||
(url-basic-auth-storage 'url-http-real-basic-auth-storage)
|
||||
auth)
|
||||
auth
|
||||
(strength 0))
|
||||
;; Cheating, but who cares? :)
|
||||
(if proxy
|
||||
(setq url-basic-auth-storage 'url-http-proxy-basic-auth-storage))
|
||||
|
||||
;; find first supported auth
|
||||
(while auths
|
||||
(setq auth (url-eat-trailing-space (url-strip-leading-spaces (car auths))))
|
||||
(if (string-match "[ \t]" auth)
|
||||
(setq type (downcase (substring auth 0 (match-beginning 0))))
|
||||
(setq type (downcase auth)))
|
||||
(if (url-auth-registered type)
|
||||
(setq auths nil) ; no more check
|
||||
(setq auth nil
|
||||
auths (cdr auths))))
|
||||
;; find strongest supported auth
|
||||
(dolist (this-auth auths)
|
||||
(setq this-auth (url-eat-trailing-space
|
||||
(url-strip-leading-spaces
|
||||
this-auth)))
|
||||
(let* ((this-type
|
||||
(if (string-match "[ \t]" this-auth)
|
||||
(downcase (substring this-auth 0 (match-beginning 0)))
|
||||
(downcase this-auth)))
|
||||
(registered (url-auth-registered this-type))
|
||||
(this-strength (cddr registered)))
|
||||
(when (and registered (> this-strength strength))
|
||||
(setq auth this-auth
|
||||
type this-type
|
||||
strength this-strength))))
|
||||
|
||||
(if (not (url-auth-registered type))
|
||||
(progn
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue