Вам не нужно ничего делать с UserSessionController
, так как этот контроллер будет обрабатывать только форму входа в систему и выход из нее.
Authlogic и authenticate_with_http_basic
не имеют отношения друг к другу. Если вы хотите пройти аутентификацию через HTTP basic, вам просто нужно создать метод аутентификации с использованием метода, предоставленного Rails, и поместить этот метод в before_filter
. При входе через HTTP-аутентификацию я предполагаю, что имя пользователя и пароль должны быть обязательными для каждого запроса.
Итак, наконец, ваш ProductsController
будет выглядеть примерно так
class ProductsController < ApplicationController
before_filter :authenticate_via_http_basic
# In case you have some method to redirect user to login page, skip it
skip_before_filter :require_authentication
...
protected
def authenticate_via_http_basic
unless current_user
authenticate_with_http_basic do |username, password|
if user = User.find_by_username(username)
user.valid_password?(password)
else
false
end
end
end
end