2017-08-06 2 views
0

Box(Cloud Storage Service)のJavaコードにOAuth 2認証を実装しようとしています。 OAuth 2の実装コードはOAuth 2 essentialsから取得されます。ブラウザからJavaコードにURLを取得するにはどうすればよいですか?

おわかりのように、oAuthには2つのフェーズがあります。最初のフェーズでは、クライアントがhttp GETまたはPOST要求をthis linkに送信し、クライアント資格情報も一緒に送信する必要があります。だから私は、コードのこの部分を使用して、私のJavaコード(Main.java)の内側から上記のURLでブラウザを開く:ブラウザで

if(Desktop.isDesktopSupported()) 
    { 
     Desktop.getDesktop().browse(new URI(authorizationUrl.toString())); 
    } 
  1. 私は、クライアントが提供しているWebページを見ることができます私のアプリへのアクセスを許可する電子メールとパスワード。すべてがうまく行き、アクセスを許可した後、ブラウザーは私のlocalhostのjavaサーブレットクラスである私が提供するredirect_uriにリダイレクトされます(サーブレットが本当にこのプロセスに必要かどうかわかりませんが、私はそれを使用しています)。

  2. このredirect_uriは、サーバーから提供されたコードと状態パラメータを持っているため、私が提供したものから拡張されました。 (注:ブラウザを起動し、私のMain.javaがまだ実行されていると私はそれを養うために持っているexteded REDIRECT_URIを待っている間にシーンのこの部分は、ブラウザで起こっている)

それでは、どのように私はフィードありませんブラウザ(またはサーブレットクラス)からoauthプロセスの最初の脚でブラウザを呼び出したMain.javaクラスへのredirect_uriの拡張。

答えて

0

の代わりにこれをやって、あなたが必要なパラメータでhttps://account.box.com/api/oauth2/authorizeへのリダイレクトを行うには、サーブレットを呼び出してから、コードや状態を返信していないのはなぜメインアプリケーション

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

です。

サーブレットでOAuthを処理するロジックを記述し、URLConnectionを使用してメインアプリケーションからサーブレットを呼び出します。 OAuthの完了後、サーブレットからメインアプリケーションにコードと状態を返します。

+0

nice!私は試してみましょう..ありがとう!! – golem

+0

何が起こっているのですか:1. Main.javaは、OAuthHandlerサーブレット(パラメータを使用してHttpリクエストを作成する)を呼び出し、クライアントが電子メールとパスワードを入力してアプリケーションにアクセスする必要のあるhtml形式のサーバー応答を返します。したがって、このHTMLフォームではブラウザを表示する必要があるので、Desktop.getDesktop()メソッドを使用する必要があります。または他の方法がありますか? – golem

関連する問題