0

我有两个 Web 应用程序,app-A 和 app-B(都将托管在不同的服务器上)。现在对于 app-A 中的特定事件,我需要调用 app-B 的 URL,以便 app-B 可以进行一些处理。在 app-A 中,我正在关注登录/注销以授权用户。所以在 app-A,一切都是安全的。

但是如果 URL 暴露给某人,他们可以玩我的 app-B。那么我如何在 app-B 中验证请求来自 app-A 的授权用户?

我正在使用 Java(Spring MVC)。在此先感谢您的时间。

更新 :

  • app-A 和 app-B 都将被托管并向公众公开。
  • app-A 和 app-B 在数据库和登录机制中有不同的用户(表)集。
  • 该场景是管理员登录的app-A,并进行了一些活动。这会触发对未受保护的 app-B url 的调用。问题是 - 我如何确保在 app-B 中呼叫仅来自 app-A 的管理员,而不是来自任何外部用户。
4

2 回答 2

0

您需要在服务器上进行单点登录,就像CAS一样。

于 2012-08-01T11:38:51.353 回答
0

您必须创建包含指定请求的链接,以及一些自定义文本(例如:会话 id)和此文本的数字签名,使用私钥签名,这将为您的应用程序共享。app-B 可以验证签名,如果通过,则触发请求。

[编辑]:您必须记住,传递的令牌必须具有有限的生存时间,否则如果有人抓住了链接,他以后就可以使用它。因此,您可以将创建令牌的日期和时间添加到您的“自定义文本”(如上所述)中,并让 app-B 不会触发 5 分钟前创建的请求。

于 2012-08-01T11:53:10.267 回答