Struts 2のHTTP Refererヘッダー
-
05-07-2019 - |
質問
Struts2でRefererヘッダーを取得するにはどうすればよいですか?現在、私はActionSupportクラスを使用していますが、ServletActionContextオブジェクトを取得したり、ServletRequestAwareインターフェースを実装したりできないようです。 (Struts2のServletRequestAwareはどこですか?どのjarですか?)
セッション変数に保存されているページのリファラーへの自動リダイレクトを設定しようとしています。誰かがOAuth認証を要求すると、リファラーをセッションに保存してからTwitterに送信します。許可をクリックすると、twitterはそれらをOAuthコールバックURLに送信します。私はそこで作業し(アクセストークンを保持します)、セッションに保存したリファラーにそれらを送信したいと思います。
ご存知のように、Strutsは非常に新しいです。私は3時間以上Javaドキュメントを読んだり、グーグルで調べたり、noob cringe
に対する怒りを避けようとしました。ありがとう!
解決
「クールではない」と見なされるアクションでHTTP要素を参照するために必要になりますが、それが必要になります。...
org.apache.struts2.interceptor.
ServletRequestAware.setServletRequest(HttpServletRequest request);
インターフェースを実装し、 HttpServletRequest
メンバー変数を作成してから、上記の実装されたセッターでメンバー変数をリクエストに設定します。これでリクエストが完了し、 request.getHeader(" referer")
を実行できます。
一部の人々は、静的メソッド org.apache.struts2.ServletActionContext.getRequest()
を使用してリクエストを取得します。ユニットテストがより難しくなる可能性があるため、その悪いフォームと見なされますが、私はいつもそれを見ています。