при указании страницы в URL, sinatra не применяет аутентификацию - PullRequest
0 голосов
/ 30 августа 2011

Если я захожу с 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

1 Ответ

1 голос
/ 30 августа 2011

возможно статические файлы передаются перед вашими маршрутами. Не помещайте эти файлы .htm в общую папку, и все будет хорошо.

Philip

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...