2011-06-02 53 views
0

我正在编写我自己的CAS战略,我希望用户通过我的战略他们的尊敬的名字(从他们的证书)。从我的理解,我的策略,用户可以通过类似这样的OmniAuth选项哈希

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

选择我假设在我的策略的初始化方法中的选项标签,我将有真正的一键设置=>值。这会传递给CAS类(通过超级方法)等等。用户是否可以像这样传递一个选项:dn => retrieve_dn_method来完成我上面所说的内容?如果是这样,那么父类会用他们不期望的选项做什么?

或者是否有另一种方法将选项传递到我需要验证的策略中?

+0

我已经研究了OmniAuth文件,我还没有发现任何可能的帮助。文档很少,所以欢迎任何链接或两美分。 – webren 2011-06-02 22:36:45

回答

1

我不认为: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