それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

RubyでBasic認証をする(HTTPSアドレスで

ApacheBasic認証をまとめて設定した、設定が正しいかどうかいちいち手作業でログインするのも面倒だし。

rubyを使ってをテストしていた。

open-uriを使ってbasic認証をする

#!/usr/bin/ruby 
require 'rubygems'
require 'open-uri'

##とりあえずSSLのチェックは無視
require 'openssl'
module OpenSSL
  module SSL
    remove_const :VERIFY_PEER
  end
end
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

uri = "https://www.example.jp/auth_ldap/"
certs =  ['takuya', 'xxx']
f = open(uri, {:http_basic_authentication => certs})

puts f.read

HTTPSオレオレ証明書など

WindowsのRubyだと、証明書の検証がややこしいので、オレオレ証明書と同じく証明書の検証を無視することにする

##とりあえずSSLのチェックは無視
require 'openssl'
module OpenSSL
  module SSL
    remove_const :VERIFY_PEER
  end
end
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

Basic認証でログインする

require 'rubygems'
require 'open-uri'
f = open(uri, {:http_basic_authentication => ["userid","passwd"]})

Mechanizeでやる場合はこっちを参照

Mechanizeの使い方例。

require 'mechanize'
mech = Mechanize.new
#BASIC認証
mech.basic_auth("takuya", "****")
##ページ取得
mech.get("http://www.example.com");