如何从浏览器中获取URL到我的java代码?

时间:2017-08-06 04:59:08

标签: java sdk oauth-2.0 box

我正在尝试将OAuth 2身份验证实现到我的Box(云存储服务)的Java代码中。 OAuth 2实施代码取自OAuth 2 essentials

如您所知,oAuth有两个阶段。第一阶段要求客户端向this link发出http GET或POST请求,同时发送一些客户端凭据。所以我使用以下代码在我的java代码(Main.java)中打开带有上述url的浏览器:

if(Desktop.isDesktopSupported())
    {
         Desktop.getDesktop().browse(new URI(authorizationUrl.toString()));
    }
  1. 在浏览器中,我可以看到客户端必须提供电子邮件和密码的网页,以授予对我的应用的访问权限。一切顺利,在授予访问权限后,浏览器被重定向到我提供的redirect_uri,这是我本地主机中的一个java servlet类(我不知道servlet对于这个过程是否真的是必要的但是我使用它)。

  2. 此redirect_uri现在从我提供的那个扩展,因为它具有服务器提供的代码和状态参数。 (注意:这部分场景发生在浏览器中,而调用浏览器的Main.java仍在运行并等待我必须提供的扩展redirect_uri)

  3. 那么如何将扩展的redirect_uri从浏览器(或servlet类)提供给Main.java类,该类在oauth进程的第一段调用了浏览器。

1 个答案:

答案 0 :(得分:0)

而不是这样做是主应用程序

if(Desktop.isDesktopSupported()) {
      Desktop.getDesktop().browse(new URI(authorizationUrl.toString()));
}

为什么不调用servlet来使用所需参数重定向到https://account.box.com/api/oauth2/authorize,然后发回代码和状态。

在servlet中编写处理OAuth的逻辑,并使用URLConnection从主应用程序中调用servlet。在OAuth完成后,将代码和状态从servlet返回给主应用程序。