(if pj/work-computer-p
    (progn
      (setq url-using-proxy t)
      (setq url-proxy-services
            '(("http"     . "proxy:8080")
              ("no_proxy" . "^.*\\(corp\\|network\\)\.thales")))

      ;;
      ;; Defines pj/alist-of-proxy-logins which is an associated list of login
      ;; and passwords.
      ;;
      ;;       (setq pj/alist-of-proxy-logins
      ;;             '(("a-login" . "its-password")
      ;;               ("another-login" . "another-password")))
      ;;
      (setq pj/alist-of-proxy-logins
            '(("my-login" . "my-password")))

      (defvar pj/proxy-login nil)

      (defadvice read-string (after pj/read-string-after)
        (setq pj/proxy-login ad-return-value))

      (ad-activate 'read-string)

      (defadvice read-password (around pj/read-password-around)
        (let ((password-found (cdr (assoc pj/proxy-login pj/alist-of-proxy-logins))))
          (if password-found
              (progn
                (setq ad-return-value password-found)
                (setq pj/proxy-login nil))
            (ad-do-it))))

      (ad-activate 'read-password)))