私の JavaEE アプリケーションでは、ユーザー認証に Apache Shiro[1] を使用しています。ユーザーは、「/company/index.xhtml?companyId=327」などの GET-URL を介してナビゲートしています。
BalusC のガイド [2] に従って、プログラムによるログインを有効にしました。
SavedRequest savedRequest = WebUtils.getAndClearSavedRequest(Faces.getRequest());
私の問題は、私のケースがRememberMeの有無にかかわらず非同期POSTの場合、 savedRequest.getRequestUrl()に前述のGETパラメータが含まれていないことです。たとえば、「/company/index.xhtml」だけが返されます。"FacesAjaxAwareUserFilter" ([2] を参照) が GET-params に対応していないようです。すべてが同期 GET 呼び出しで正常に動作します。
「FacesAjaxAwareUserFilter」を使用する場合、認証が必要なため、shiro-redirect の後に GET パラメータを取得するにはどうすればよいですか?
[2] JavaEE と Shiro に関する次の素晴らしい記事に従いました: http://balusc.blogspot.de/2013/01/apache-shiro-is-it-ready-for-java-ee-6.html