WSGI作为AuthFormProvid

2024-09-28 23:10:00 发布

您现在位置:Python中文网/ 问答频道 /正文

在Apache2.4中可以使用'wsgi'作为AuthFormProvider吗?在

作为第一次尝试,我编辑了发现here的示例。 配置现在看起来像这样,但不起作用:

<Location "/test">
    AuthType Form
    AuthFormProvider wsgi
    AuthName "test"
    AuthFormLoginRequiredLocation /login.html
    WSGIAuthUserScript /path/to/django/wsgi.py
    WSGIAuthGroupScript /path/to/django/wsgi.py
    Require Group test
    Require valid-user
    Session On
    SessionCookieName xyz path/
    SessionCrypotPassphrase 123456789
</Location>

Tags: topathdjangopytestform编辑示例
2条回答

首先,您必须使用mod\wsgi 4.3.0 For WSGIAuthGroupScript才能与Apache2.4一起工作。Apache2.4的内部结构从2.2改变而来,这是最近才实现的。这个问题只在最新版本的mod\wsgi中得到了解决。如果你被困在一个Linux发行版中的旧mod_wsgi版本上并且拒绝更新,那么你将失去运气。在

其次,您必须使用:

Require wsgi-group test

在Apache 2.4下,不能使用:

^{pr2}$

如果使用WSGI身份验证提供程序。在

这又是因为Apache2.4中的更改。在

总的来说,我建议你把你的问题发到mod wsgi邮件列表,我会在那里处理它。在StackOverflow上对于任何冗长的来回讨论都是一个可怕的地方,我可以很容易地看到这一点。在

为了它的价值,我一直热衷于研究mod_session与mod_gwsgi的交互,但从来没有机会这么有趣地帮助您探索这一点,如果您跳转到mod_gwsgi邮件列表。在

解决方案是,我必须更新到mod\wsgi4.3.0并按照grahamdumpleton在他的回答(或here)中提到的那样更改配置。在

除了更新,我删除了AuthFormLoginRequiredLocation指令,并添加了一个ErrorDocument指令。在

工作配置现在如下所示:

<Location "/test">
    AuthType Form
    AuthFormProvider wsgi
    AuthName "test"
    ErrorDocument 401 /login.html
    WSGIAuthUserScript /path/to/django/wsgi.py
    WSGIAuthGroupScript /path/to/django/wsgi.py
    <RequireAll>
        Require wsgi-group test
        Require valid-user
    </RequireAll>
    Session On
    SessionCookieName xyz path/
    SessionCrypotPassphrase 123456789
</Location>

相关问题 更多 >