ClojureでBasicAuth

java.net.Authenticatorをproxyでextendすれば良い。

user=> (import '(java.net Authenticator PasswordAuthentication))
java.net.PasswordAuthentication
user=> (def *basicAuth* (proxy [Authenticator] []
                           (getPasswordAuthentication []
                              (PasswordAuthentication. "user" (.toCharArray "pass"))))))
#'user/*basicAuth*
user=> (Authenticator/setDefault *basicAuth*)
nil
user=> (clojure.xml/parse "http://api.twitter.com/1/statuses/home_timeline.xml?")
{:tag :statuses, :attrs {:type "array"}, :content [{:tag ...