Если я захожу с localhost: 4567, меня просят ввести имя пользователя и пароль, но если я захожу с localhost: 4567 / MyStaticPage.htm, он переходит прямо на эту страницу, т.е. без какой-либо аутентификации (и даЯ остановил и перезапустил sinatra, закрыл и снова открыл свой браузер).Я помещаю операторы «put» в «get», чтобы увидеть, что запускается, и URL с «MyStaticPage.htm», похоже, не обрабатывается в «get», который я ожидал.Вот код:
require 'rubygems'
require 'sinatra'
helpers do
def protected!
unless authorized?
response['WWW-Authenticate'] = %(Basic realm="Restricted Area")
throw(:halt, [401, "Not authorized\n"])
end
end
def authorized?
@auth ||= Rack::Auth::Basic::Request.new(request.env)
@auth.provided? && @auth.basic? && @auth.credentials && @auth.credentials == ['testuser', 'testpassword']
end
end
get '/MyStaticPage.htm' do
puts "this is never seen"
protected!
File.new('public/MyStaticPage.htm').readlines
end
get '/' do
puts "this is seen"
protected!
File.new('public/MyStaticPage.htm').readlines
end
TIA