Ошибка создания сеанса authlogic при использовании в сочетании с authenticate_or_request_with_http_basic

Недавно я хотел развернуть свое приложение Rails на heroku, но хотел защитить его от внешнего мира, пока я не протестировал его на самом heroku. Чтобы защитить его, я использовал Authenticate_or_request_with_http_basic. Однако после прохождения базовой аутентификации и желания войти в систему (система входа с использованием authlogic) я обнаружил, что authlogic не запоминает сеанс (например, current_user == nil).

Без Authlogic сессий нормально работают сеансы authlogic.

Кто-нибудь знает, почему это так и как заставить их работать вместе?

Заранее спасибо.

PS: Чтобы быть ясным, моя цель - не иметь возможность использовать пользователей authlogic с authenticate_or_request_with_http_basic.

PPS: я использую Rails 3 и git: //github.com/odorcicd/authlogic.git


person Jessie Dedecker    schedule 05.11.2010    source источник


Ответы (1)


У меня тоже есть эта проблема! Я собираюсь попытаться изучить это, чтобы увидеть, смогу ли я что-нибудь придумать ...

РЕДАКТИРОВАТЬ: исправление состоит в том, чтобы запретить базовую аутентификацию HTTP в сеансе Authlogic ...

class UserSession < Authlogic::Session::Base
    allow_http_basic_auth false
end

Я почти уверен, что это ошибка Authlogic. Проблема в этом методе:

Authlogic::Session::HttpAuth::InstanceMethods#allow_http_basic_auth?

который возвращает истину, когда HTTP Basic используется, даже в другом месте вашего приложения.

person mattwindwer    schedule 06.11.2010
comment
Спасибо! Я попробовал ваше исправление, и это сработало как шарм. Может быть, нам действительно стоит отправить отчет об ошибке. - person Jessie Dedecker; 06.11.2010