Rails декларативная аутентификация не проходит - PullRequest
0 голосов
/ 17 сентября 2011

Мы получаем ошибку с декларативной аутентификацией при CREATE и UPDATE. Мы не уверены, почему, поскольку как-то в ошибке показано, что ни один пользователь не проходит аутентификацию и каким-то образом сеанс теряется:

`Авторизация :: NotAuthorized в CartypesController # update

Не найдено подходящих правил для обновления # (роли [: гость], привилегии [: обновление], контекст: cartypes). `

Роль "backoffice" имеет права в authentic_controller.rb: has_permission_on :cartypes, :to => [:index, :show, :new, :create, :edit, :update, :destroy, :delete]

В stackoverflow есть похожая проблема: Ссылка на вопрос Stackoverflow

Мы новички в Rails и попробовали это впервые, другие шоу и списки работают нормально .. (операции GET)

Любая помощь приветствуется ... спасибо.

РЕДАКТИРОВАТЬ: Мы смогли решить эту проблему, так как выяснилось, что документация по «декларативной авторизации» была не столь ясна при обсуждении безопасности модели! Если вы читаете очень внимательно, при использовании безопасности модели необходимо установить: ## Heading ## Authorization.current_user для пользователя запроса (в application_controller.rb). Для rails-n00bs это может быть не так понятно ...

1 Ответ

0 голосов
/ 17 сентября 2011

Включаете ли вы параметр authenticity_token в свой запрос? По умолчанию Rails принудительно используют PUT, POST и DELETE, чтобы иметь этот токен для предотвращения подделки межсайтовых запросов.

Если вы не включите его, Rails автоматически сбросит сессию, чтобы предотвратить атаку CSRF.

Взгляните на Понимание токена подлинности Rails . Фейсал объяснил это очень хорошо.

http://guides.rubyonrails.org/security.html

...