我正在尝试找出 CakePHP cookie 并满足我稍微不寻常的身份验证要求。
我有一个基于 CakePHP 的数据收集系统,现在它正在与一个用 COTS 软件构建的报告系统集成。报告系统需要进行访问控制,除非我想复制两个系统中的所有用户帐户,否则我需要报告系统能够确定用户是否在我的 CakePHP 系统中进行了身份验证。
报告系统允许我在客户端的报告请求第一次到达时加载一个 Java 类并执行一个函数。所以我的想法是
- 检查传入的报告请求并提取我的 CakePHP 站点用于身份验证/会话识别的 cookie
- 从 Java 函数向带有此 cookie 的 CakePHP 站点中的“reportauth”操作发送请求
- CakePHP 中的 reportauth 操作然后检查用户是否登录到 CakePHP 站点,并将加密响应返回给标识用户角色的 Java 函数
我可以获取 cookie,在请求中发送它,然后我可以分别在 PHP 和 Java 之间共享加密信息。
但是,当我在我的 Java 请求中使用“新”cookie(我的浏览器在新登录后重复向 CakePHP 站点发送请求的 cookie)时,响应显示用户未登录。如果然后我在浏览器中重新加载该站点,则我已注销。我怀疑 cookie 中可能有一些关于用户代理 (?) 的额外信息会导致 Java 来源的请求被抛出并且该会话为了安全而被破坏,但我对系统不够了解。我想我可能会看到 CakePHP 可以防止会话劫持(这通常会让我很高兴)。
谁能告诉我是否有办法解决这个问题?最好是不涉及 CakePHP 中的自定义身份验证组件,因为数据收集站点已经上线,而且我的报告截止日期不远了。
非常感谢任何帮助。