我正在编写自己的CAS策略,我希望用户将我的策略传递给他们的专有名称(来自他们的证书)。根据我的理解,我的策略的用户可以传递这样的选项
use OmniAuth::Strategies::CAS::MyStrategy :setup => true
我假设在我的策略初始化方法中的选项标签中,我将有一个关键设置=>价值为真。这将传递给CAS类(通过super方法)等等。用户可以传递这样的选项:dn => retrieve_dn_method做我上面说过的事情?如果是这样,那么父类会用他们不期望的选项做什么?
或者是否有其他方法可以将选项传递到我需要进行身份验证的策略中?
答案 0 :(得分:1)
我不认为:setup选项会出现在传递给策略初始化方法的选项哈希中。设置:setup to 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