sinatra側で、その時のユーザ名とパスワードを取得する方法です。
auth_info = Base64.decode64(request.env['HTTP_AUTHORIZATION'].split(' ')[1]).split(':')
username = auth_info[0]
password = auth_info[1]
auth_info = Base64.decode64(request.env['HTTP_AUTHORIZATION'].split(' ')[1]).split(':')
username = auth_info[0]
password = auth_info[1]
data = {}
env["rack.request.form_vars"].split("&").each do |d|
(k,v) = d.split("=")
k = URI.decode(k).toutf8
v = URI.decode(v).toutf8 unless v.nil?
if data[k].nil?
data[k] = v
else
data[k] = data[k] + ", " + v
end
end
require 'rubygems'
require 'sinatra'
post '/upload' do
if params[:file]
content_type params[:file][:type]
f = params[:file][:tempfile]
f.read f.size
end
end
require 'rubygems' it "アップロードしたらファイルの中身が帰ってくる" do upload_file = File.dirname(__FILE__) + "/foo.txt" post_file = Rack::Test::UploadedFile.new(upload_file) post "/upload", "file" => post_file last_response.body.should == "foo" end