OmniAuth Опции Hash - PullRequest
       6

OmniAuth Опции Hash

0 голосов
/ 03 июня 2011

Я пишу свою собственную стратегию CAS и хотел бы, чтобы пользователь передал моей стратегии свое отличительное имя (из своего сертификата).Насколько я понимаю, пользователь моей стратегии может передавать параметры, подобные этому

use OmniAuth::Strategies::CAS::MyStrategy :setup => true

Я предполагаю, что в теге параметров в методе инициализации моей стратегии у меня будет ключ setup => значение true.Это передается классу CAS (через метод super) и так далее.Может ли пользователь передать параметр, подобный этому: dn => retrieve_dn_method, чтобы сделать то, что я сказал выше?Если да, то что бы родительские классы делали с опцией, которую они не ожидали?

Или есть другой способ передачи опций в мою стратегию, которые мне нужно аутентифицировать?

1 Ответ

1 голос
/ 07 июня 2011

Я не думаю, что опция: setup будет присутствовать в хэше опций, который передается в метод инициализации вашей стратегии. Установка: установка в true позволяет только пользователю стратегии создать метод настройки в своем коде для выполнения задачи перед аутентификацией. Но исходя из этого: https://github.com/intridea/omniauth/wiki/Dynamic-Providers пользователи вашей стратегии должны иметь возможность установить отличительное имя человека следующим образом:

class SessionsController < ApplicationController
  def setup
    request.env['omniauth.strategy'].options[:dn] = user_dn
    render :text => "Setup complete.", :status => 404
  end
end
...