2010-09-03 85 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