Function: ldap-password-read

ldap-password-read is a byte-compiled function defined in ldap.el.gz.

Signature

(ldap-password-read HOST)

Documentation

Read LDAP password for HOST.

If the password is cached, it is read from the cache, otherwise the user is prompted for the password. If password-cache is non-nil the password is verified and cached. The password-cache-expiry variable controls for how long the password is cached.

This function can be specified for the passwd property in ldap-host-parameters-alist when interactive password prompting is desired for HOST.

Source Code

;; Defined in /usr/src/emacs/lisp/net/ldap.el.gz
(defun ldap-password-read (host)
  "Read LDAP password for HOST.
If the password is cached, it is read from the cache, otherwise the user
is prompted for the password.  If `password-cache' is non-nil the password
is verified and cached.  The `password-cache-expiry' variable
controls for how long the password is cached.

This function can be specified for the `passwd' property in
`ldap-host-parameters-alist' when interactive password prompting
is desired for HOST."
  ;; Add ldap: namespace to allow empty string for default host.
  (let* ((host-key (concat "ldap:" host))
	 (password (password-read
		    (format "Enter LDAP Password%s: "
			    (if (equal host "")
				""
			      (format " for %s" host)))
		    host-key)))
    (when (and password-cache
	       (not (password-in-cache-p host-key))
	       ;; Confirm the password is valid before adding it to
	       ;; the password cache.  ldap-search-internal will throw
	       ;; an error if the password is invalid.
	       (not (ldap-search-internal
		     `(host ,host
			    ;; Specify an arbitrary filter that should
			    ;; produce no results, since only
			    ;; authentication success is of interest.
			    filter "emacs-test-password="
			    attributes nil
			    attrsonly nil
			    withdn nil
			    ;; Preempt passwd ldap-password-read
			    ;; setting in ldap-host-parameters-alist.
			    passwd ,password
			    ,@(cdr
			       (assoc
				host
				ldap-host-parameters-alist))))))
      (password-cache-add host-key password))
    password))