0

我有一个在 tomcat 中运行的 java web 应用程序和另一个在lampp 中运行的 php 应用程序。我需要在这两个应用程序之间使用单点登录。

最好的方法是什么?1.在两台服务器之间共享会话。如果有怎么办。2. 使用 cookie 在网络服务器之间共享数据。在这种情况下,我需要加密和解密 cookie。如果是这样,使用与 php 和 java 应用程序兼容的加密和解密逻辑的最佳方法是什么。

4

1 回答 1

1

有几种方法可以做你想做的事:

  1. 由于 PHP 中的会话存储在某个临时目录中(由 php.ini 中的 session.save_path 选项配置),因此可以将此文件用作 Java 应用程序中的会话,但您必须让 Java webApp 知道如何阅读此文件文件,并将数据保存回其中。可能发生的问题是此文件的阻塞。每个 php 进程在运行时都会阻塞会话文件,因此在 php 工作时没有其他程序可以读取它。所以,如果你有高负载 - 这个问题会降低你的 web 应用程序的性能。

  2. 在 php 中,您可以编写自己的函数来保存和加载会话数据(http://www.php.net/manual/en/session.customhandler.php),其他人已经编写了很多 php 会话处理程序,并且可以在互联网上找到。这个处理程序可以使用任何存储来放置和获取会话。比如:mysql数据库,mongodb,甚至memcache(不推荐,因为非持久化)。您可以使用这种方式并将会话存储在某些数据存储中,而不是默认文件存储,并在 php 和 java 中使用它。这是最好的解决方案。

  3. 最后一个变种 - 将数据保存到 cookie 中。当然,您可以使用一些强大的加密方法,使用封闭密钥对数据进行加密和解密,并将这些数据存储在 cookie 中。但是,坏消息是你的用户会有很多你的加密信息的例子,并且,通过一些努力,强大的计算机和解密知识,邪恶的黑客可以获得你的敏感数据,这些数据通常存储在会话中,而不用担心丢失它. 例如,您可以在其会话中放置登录用户的登录名、密码和信用卡号,以便快速访问。你可以说,“首先让他们尝试从另一个用户那里偷偷 cookie”,但这已经是一个安全漏洞,下一步并不那么重要。

于 2013-07-26T11:40:23.937 回答