2014-06-19 70 views
3

什麼是在CKAN登錄機制中實現鉤子的最直接方法,它允許根據Apache環境頭來定義要登錄的用戶,而不是驗證用戶名/密碼。CKAN:自定義身份驗證但具有默認會話處理

當編寫實現ckan.plugins.IAuthenticator的插件時,該類需要使用login()identify()方法。因此必須定義一種跟蹤用戶的方式。然而,我們只想檢查某些可信信息(Shibboleth環境變量)是否可用,然後登錄相應的用戶,實際上只是繞過登錄表單,將所有會話處理都留給CKAN內部。

回答

2

你能寫一個IAuthenticator插件與尋找這些環境變量的identify()方法,如果你不需要login()方法,那麼就把它留空。

def login(self): 
    pass 

我認爲應該有效。 CKAN每次請求一次請求identify()以決定登錄哪個用戶。每次提交登錄表單時,它會調用login()一次。

除了每個請求上的identify()檢查之外,CKAN的其餘會話處理將繼續像插件一樣正常工作。

+0

我在尋找相反的東西。 'identify()'方法用於會話處理。所以實際上我希望我的插件只有'login()'方法並且傳遞'identify()',實現'login()',這樣默認的機制就會在頁面加載時啓動。 (這使我們能夠通過shibboleth保護登錄頁面,但不能保護整個CKAN網站) –

相關問題