1

就是这样:我有一个使用 JSP 并部署在 tomcat 上的网站。我现在要做的是设置一个带有 sso 系统的 MediaWiki。即,我希望用户使用同一个帐户访问我的第一个站点和我的 MediaWiki,并且在从一个站点移动到另一个站点时不需要再次登录。

目前,这两个系统使用 Ldap 系统(使用 openldap 设置)共享帐户列表。在 JSP 上连接时,它在 cookie 中存储了一个 JSESSIONID 参数,而在连接到 MediaWiki 时,它似乎存储了 3 个参数:wikidb_session、wikidbUserID 和 wikidbUserName。

使两个系统共享会话 cookie 的最佳方法是什么?

亚历克西斯

4

1 回答 1

2

您不能共享会话 cookie,因为每个应用程序(Mediawiki 和您的 JSP 站点)都有自己的。

您可以做的是拥有一个可供您的每个应用程序使用的单点登录模块。

您可以查看 JASIG CAS(中央身份验证服务)http://www.jasig.org/cas

脚步 :

  1. 安装将处理身份验证的 CAS 服务器应用程序。这是一个 Java Web 应用程序,您可以将其安装在已经运行 JSP 站点的同一个 servlet 引擎上。CAS 服务器有多个身份验证处理程序,如 LDAP。

  2. 将 CAS 客户端添加到您的 JSP 站点。CAS 客户端可用作 servlet 过滤器,它将未经过身份验证的用户重定向到用户将进行身份验证的 CAS 服务器,然后 CAS 服务器将使用特殊参数(服务票证)将用户重定向到初始应用程序。CAS Client 过滤器将使用该参数联系 CAS Server 以获取用户的登录信息。这可能需要您做一些工作,因为您必须将 JSP 站点中的身份验证部分移动到 CAS 服务器。

  3. 将 CAS 客户端添加到您的 Mediawiki。CAS 客户端也可用作 PHP 客户端 (PHPCas)。Mediawiki 似乎已准备好 CAS:http ://www.mediawiki.org/wiki/Extension:CASAuthentication

于 2012-05-30T14:30:37.477 回答