変数をセッションデータのサーブレットに保存します。サーブレットはユーザをサードパーティのサイトにリダイレクトし、サードパーティのサイトユーザからは同じWebアプリのJSPページに送信されます。私はサーブレット(サードパーティのサイトへのリダイレクトの前に)に格納されたセッション変数にJSPでアクセスします。どのようにしてこのようなオブジェクトをサーブレットに格納しますか?そして、JSPファイルからそのオブジェクトにどのようにアクセスすればよいですか?サードパーティサイトからのコールバック要求時に後でアクセスする必要があるセッションに値を保存するにはどうすればよいですか?
1
A
答えて
0
コールバック要求が、の同じセッションを初期リクエストとして使用するようにサーバーに何らかの方法で指示する必要があります。通常、これはリクエストヘッダーにセッションクッキーを設定することによって行われます。しかし、サードパーティーのサイトではこれを行うつもりはありません。ただし、サーブレットAPIでは、URLのJSESSIONID
フラグメントによってセッションを識別することができます。
だから、次のようにあなたがあなたのコールバックURLを構築する場合、
HttpSession session = request.getSession();
session.setAttribute("someName", someObject);
String callbackURL = "http://yourhost.com/callback.jsp;JSESSIONID=" + session.getId();
String redirectURL = "http://otherhost.com/process?callbackURL=" + URLEncoder.encode(callbackURL, "UTF-8");
response.sendRedirect(redirectURL);
callback.jsp
は、このようにも保存されているすべての属性を同じセッションへのアクセス権を持っているとしますこの方法です。ところで、doGet()
のサーブレットを実際に使用する必要があります。事前処理JavaコードはJSPに属していません。
別に具体的な質問から、これを達成するための別の方法があります:長い、自動生成され、一意のキー(例えばjava.util.UUID
)によって、アプリケーションスコープに関心のある情報を格納するためにリクエストパラメータとして追加しますが、コールバックURLコールバックを処理するときは、セッションスコープではなくアプリケーションスコープから取得するだけです。これは通常、親ウィンドウをリフレッシュするポップアップウィンドウ内で実行され、JavaScriptでコールバックを正常に処理した後に閉じます。このように、セッションについて心配する必要はありません。
関連する問題
- 1. このPowerShell Web要求をセッションを適切に保存するにはどうすればよいですか?
- 2. レスポンスでは、ブラウザにパスワードの保存を要求するにはどうすればよいですか?
- 3. Lagomサービスで要求されたホストにどのようにアクセスする必要がありますか?
- 4. カスタムの設定からどのようにアクセス権を要求する必要がありますか?
- 5. 後でコールバックするためにラムダを保存するにはどうすればよいですか?
- 6. 異なるコンテキストからアクセスする必要がある場合、データをどのように保存する必要がありますか?
- 7. リストボックスでスクロールする必要のある要素をクリックするにはどうすればよいですか?
- 8. パスワードを要求するにはpostgresのログインを要求するにはどうすればいいですか
- 9. セッション状態を保存するにはどうすればよいですか?
- 10. ファイル全体でコールバックからアクセスできるようにする必要性
- 11. オブジェクトを保存する必要があるため、リフレッシュ時にオブジェクトがangularJSで使用できるようにする必要がありますか?
- 12. ビューモデルまたはドメインモデルをセッションに保存する必要がありますか?
- 13. Java RESTサービスでPOST要求ペイロードから値を取得するにはどうすればよいですか?
- 14. API要求を含むループにコールバックが必要ですか?
- 15. コールバックはどのようにPHPDocする必要がありますか?
- 16. jquery要素のリストを保存してアクセスするにはどうすればよいですか?
- 17. 要求保留のHTTPステータスコードはどのようにする必要がありますか?
- 18. コンパイル時に名前が不明なモジュールを要求するにはどうすればよいですか?
- 19. フェッチ要求を中止するにはどうすればよいですか?
- 20. セッション履歴を保存するにはどうすればいいですか?
- 21. 私はペースト後に何かする必要があります、どうすればいいですか?
- 22. サイトワイドポイントシステムのユーザーレベルはどのように保存する必要がありますか? DBに?またはオンザフライで?
- 23. javascriptイベントをある要素から別の要素に渡すにはどうすればよいですか?
- 24. JavaScriptでjspセッションにアクセスするにはどうすればよいですか?
- 25. 選択値をセッション変数に保存するにはどうすればよいですか?
- 26. ノード赤の要求にパスワードを要求するにはどうすればいいですか
- 27. dataGridViewから要素をコピーして保存するにはどうすればよいですか?
- 28. Google Cloud Platformで使用する秘密はどのように保存する必要がありますか?
- 29. 特定のユーザーからのhttp要求を確実にするにはどうすればよいですか?
- 30. distutilsでTkinterを要求するにはどうすればいいですか?
サードパーティのURLは、基本的にホットメールやyahooやgmail経由でユーザーを認証することです。サイト(例:ホットメール)での認証が成功した後、ユーザーは同じWebアプリケーション内の別のURLに戻ります... apiキー(hotmail認証を使用するための)の生成のための画面では、単一の固定URLを入力するための規定があるので、コールバックのパラメータとしてのセッションID ...私がそのようなシナリオで何をすべきかアドバイスしてください...フローは、web app servlet - > hotmail auth - > web app jsp(または私のところまであるサーブレット)です。 – Arvind