我正在尝试使用Java构建应用程序。该应用程序将访问数据库的处理程序,该数据库动态运行查询并返回结果。正在使用OAuth。应用程序从我服务器上的一个端口运行,处理程序和数据库在另一个端口上。根据我对OAuth的基本理解,以下是我认为这一切都有效的图片:
如果我对OAuth的理解不充分,请告诉我。
首先,当我尝试运行应用时,我收到了HTTP 500代码的OAuth错误。我认为这是因为它使用的OAuth密钥不在服务器上已批准的OAuth密钥列表中,所以我进入我的代码并逐步调试,直到我能够获得密钥和密钥并添加它们到那个清单。之后,我不再遇到OAuth错误,但现在当我运行应用程序时,我得到一个302标头,其位置设置为:
server:port2/.../oauth-authorize?oauth_callback=[handler URL]?request_token_secret=[gibberish]&oauth_token=[gibberish]
request_token_secret和oauth_token与我添加到列表中的不同。
不幸的是,它实际上并没有遵循302重定向。我不确定为什么会发生这种情况,但我非常有信心这与我在两个不同端口上运行的应用程序有关,因此遇到了XSS问题。我不确定为什么会这样,我不知道如何修复它,因为我不能使用CORS,它们必须是两个不同的端口。
编辑:我尝试做同样的事情,但完全使用不同的服务器而不是具有两个不同端口的相同服务器。我得到了完全相同的错误,除了重定向位置中的令牌和秘密是不同的。所以它绝对是一个跨站点脚本的东西。