我正在嘗試將OAuth 2身份驗證實施到Box(Cloud Storage Service)的Java代碼中。 OAuth 2實現代碼取自OAuth 2 essentials。我如何從瀏覽器中獲取url到我的java代碼?
如你所知,oAuth有兩個階段。第一階段要求客戶端發送http GET或POST請求到this link,同時發送一些客戶端憑證。於是我打開上述網址在瀏覽器裏面,從我的Java代碼中使用這段代碼(Main.java):
if(Desktop.isDesktopSupported())
{
Desktop.getDesktop().browse(new URI(authorizationUrl.toString()));
}
在瀏覽器中,我可以看到的網頁,客戶端必須提供電子郵件和密碼授予訪問我的應用程序。一切順利,在授予訪問權限後,瀏覽器被重定向到由我提供的redirect_uri,這是我本地主機中的一個java servlet類(我不知道servlet是否真的需要這個過程,但我正在使用它)。
這個redirect_uri現在從我提供的那個擴展,因爲它有服務器提供的代碼和狀態參數。 (注:現場的這部分是發生在瀏覽器中,而我的Main.java其調用瀏覽器仍在運行並等待exteded REDIRECT_URI我要養活它)那麼,如何養活
將來自瀏覽器(或servlet類)的redirect_uri擴展到在oauth進程的第一段調用瀏覽器的Main.java類。
不錯!我會試試看..謝謝! – golem
發生的事情是:1. Main.java調用OAuthHandler servlet(它使Http請求使用參數)和服務器響應的HTML表單,客戶端必須輸入電子郵件和密碼並授予對應用程序的訪問權限。所以這個html表單需要顯示瀏覽器,所以我必須使用方法Desktop.getDesktop()。browse()對嗎?或者還有其他方法嗎? – golem