2011-06-02 70 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