我现有的Java应用程序正在使用Acegi进行身份验证/授权。我们的新Web界面最好用Django编写。我希望Django能够维护用户 - 注册等.Dangoo要么共享或更新Acegi身份验证数据,所以旧的应用程序仍然有效,用户不必使用两套凭据(甚至可能共享身份验证cookie)。我想知道是否有人已经在处理类似的问题,如果是的话,选择了哪种方法。
由于
答案 0 :(得分:0)
记住你用Django做的任何事情,它仍然是仍然是 Python,因为只是因为Django没有它/不这样做,并不意味着你不能。另外,从另一个角度来看,没有什么可以阻止你在传统的Django应用程序之外使用Django框架的位。
我并不特别喜欢Django的管理界面,尽管我在它之外使用了Form
和ModelForm
。我实际上实现了自己的身份验证系统 - 您只需要登录/退出等功能以及该数据的接口。它(用户/组等)不必被表示为Django模型,尽管这是我为了轻松而做的。没有什么可以阻止你在另一个ORM中挂钩或为acegi编写自己的ORM。或者,如果编写自己的图层很简单,那就这样做。
我建议连接到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='')