2010-09-03 59 views
1

我有使用Acegi進行認證/授權的現有Java應用程序。我們的新網頁界面最好用Django編寫。我希望Django維護用戶 - 註冊等。Django要麼分享或更新Acegi認證數據,以便舊版應用程序仍然有效,用戶不必使用兩套憑證(甚至可能共享認證cookie)。我想知道是否有人正在處理類似的問題,如果是的話,選擇了哪種方法。Django與Acegi的集成

感謝

回答

0

只要記住,不管你做Django的,它是仍然 Python的,因此只是因爲Django不擁有它/不會做這樣的說法,並不意味着你不能。另外,從另一個角度來看,沒有什麼能阻止你使用傳統Django應用程序之外的Django框架。

我並不特別喜歡Django的管理界面,儘管我在其外面使用了FormModelForm。我實際上實現了自己的身份驗證系統 - 您只需要使用登錄/登出等功能以及該數據的接口。它(用戶/組等)不必被表示爲Django模型,儘管這是我爲了簡化而做的。沒有什麼能夠阻止你連接另一個ORM或者爲自己編寫acegi。或者,如果編寫自己的圖層足夠簡單,請執行此操作。

我建議將Django和Django中間件和庫的上下文處理器掛鉤,因爲它會使重用變得輕而易舉,並且它會以與現有身份驗證框架類似的方式進行操作。這裏有一個例子,背景處理器我用它來讓我寫在我的模板{{ username }}而不必把它弄出來的每個請求對象的每一個觀點方法:

def Authentication(request): 
    if AuthenticationCheck(sess=request.session, timeofaction=datetime.datetime.now(), ipaddress=request.META['REMOTE_ADDR']) == True: 
     return dict(username=request.session["username"]) 
    else: 
     return dict(username='') 

此外,Django Middleware Documentation

+0

謝謝。我以前是100%的Java,特別喜歡使用JSF/Spring/Hibernate堆棧。我們有一些使用這個堆棧的遺留系統。目前我們有建立新系統的需求,這些系統有很多網頁界面/網頁服務界面。要求並不明確,並會不斷變化。我發現Django堆棧方式在Web開發方面比使用Java技術時更加高效。網頁設計師的工作流程也很容易。 – Tomas 2010-09-07 21:22:54