2

我们正在使用 Plone 来提供一些第三方中间件。

不幸的是,中间件有一个特定的 servlet,它可以从 Java 小程序中调用,并且不进行任何类型的身份验证。我想将其关闭并以某种方式围绕它进行身份验证,最好使用用户将在 Plone 上拥有的现有会话。

我的第一个想法是配置 nginx(我们将其用作反向代理)来检查 cookie,并且仅在用户具有有效会话时才代理(按照本示例的行)。但是,如何对照 Plone 检查会话 ID,因为它都存储在 Zope 数据库中?

或者,我们可以有一个 Plone python 脚本,它在身份验证后基本上将所有内容传递到后端,但我不知道该怎么做。

有什么建议么?或者替代的想法?

4

2 回答 2

3

Plone 使用auth_tkt会话 cookie;任何支持此类会话 cookie并且配置了与 Plone 相同的秘密的系统都可以验证 cookie。

不幸的是,我无法找到 auth_tkt 的 nginx 实现;该标准源于 Apachemod_auth_tkt模块,因此如果 Apache 是一个选项,您可以使用它。有关如何配置此类设置的详细信息,请参阅使用 mod_auth_tkt 进行 Plone 和 CGI​​ 单点登录。

于 2012-08-29T09:37:03.723 回答
0

您可以编写自己的 Plone 自定义插件,它提供了一个浏览器视图,为您在 Plone 进程中进行会话检查。如何从 Nginx 中涉及到这一点对我来说是一个谜。

http://collective-docs.readthedocs.org/en/latest/views/browserviews.html

检查身份验证凭据是否有效

http://collective-docs.readthedocs.org/en/latest/sessions/login.html?highlight=login#extracting-credentials

有关 Plone 身份验证和 cookie 的更多信息

http://collective-docs.readthedocs.org/en/latest/sessions/cookies.html?highlight=cookies#default-plone-cookies

于 2012-08-29T05:39:33.993 回答