我有两个Web应用程序,app-A和app-B(两者都将托管在不同的服务器上)。现在,对于app-A中的特定事件,我需要调用app-B的URL,以便app-B可以进行一些处理。在app-A内部,我正在关注登录/注销以授权用户。所以在app-A,一切都很安全。
但如果网址向某人公开,他们就可以使用我的app-B。那么我如何在app-B中验证请求是来自app-A的授权用户?
我正在使用Java(Spring MVC)。提前感谢您的时间。
更新:
答案 0 :(得分:0)
您需要在服务器上进行单点登录,例如CAS是好的。
答案 1 :(得分:0)
您必须创建包含指定请求的链接,以及一些自定义文本(例如:会话ID)和使用私钥签名的此文本的数字签名,该私钥将为您的应用程序共享。 app-B可以验证签名,如果通过,则触发请求。
[edit]:你必须记住,传递令牌必须有有限的实时时间,否则如果有人抓住了链接,他将能够在以后使用它。因此,您可以添加到“自定义文本”(如上所述)创建令牌的日期和时间,并让app-B不会触发超过5分钟前创建的请求。