1

liferay 6.1.1.ga2 コミュニティ エディションを使用しています。

保険申込書を含むカスタム ポートレットがあります。

postLogin(login hook) を使用して、ログインすると、この保険申請ページにリダイレクトできます。

public void run(HttpServletRequest request, HttpServletResponse response)
        throws ActionException {

 long usersId = PortalUtil.getUserId(request);
User u=UserLocalServiceUtil.getUser(usersId);

 Role role = RoleLocalServiceUtil.getRole(u.getCompanyId(),
                        "Not Insured");

 if(!RoleLocalServiceUtil.hasUserRole(u.getUserId(),role.getRoleId())){


response.sendRedirect("/group/secure/insuranceForm");

}
}

これは私にとってはうまくいきます。しかし、ユーザーが url (入力されたアプリケーションの他の url) を変更しようとしてヒットした場合、その url にリダイレクトされるべきではありません。

彼がそれを完了するまで、私は保険申請のユーザーを維持したいことを意味します。ユーザーが初めてログインしたときに、パスワード画面、リマインダー *質問* 画面、または同意*ページ* に表示されるのと同じ機能。

保険申請ページでも同じことを行います。これどうやってするの?liferay 6.1.1 を使用しています。

そのためのextプラグインを作成したPortalRequestProcessor.javaファイルを試しました。

保護された String processPath(HttpServletRequest request, HttpServletResponse response){} メソッドがあるので、条件も適用して、この方法で私の保険フォーム ページに過ぎない静的文字列を返そうとしました。

if (!RoleLocalServiceUtil.hasUserRole(user.getUserId(),roles.getRoleId()) {

                return _PATH_INSURANCE_FORM;
            }



.....

//static variables declaration

private static final String _PATH_PORTAL_LOGOUT = "/portal/logout";
private static final String _PATH_INSURANCE_FORM =
            "/group/app/insurance?insurances=insuranceform";

しかし、それは次のようにエラーを示します

コンテンツ エンコーディング エラー 表示しようとしているページは、無効またはサポートされていない形式の圧縮を使用しているため、表示できません。

ログレベルでは次のように表示されます。

ERROR [http-bio-8080-exec-9][RequestProcessor:676] Invalid path was requested /group/app/insurance?insurances=insuranceform
ERROR [http-bio-8080-exec-9][PortalRequestProcessor:550] User ID 16040

    And at browser console it's showing "NetworkError: 404 Not Found - http://189.0.25.23:8080/group/app/insurance?insurances=insuranceform"

しかし、戻りパスを既存のパス (例: :_PATH_PORTAL_LOGOUT) に置き換えると、ユーザーは適切にログアウトされます。

私も LoginPostAction(login-hook) で同じ条件を確認し、保険ページにリダイレクトしています。

これらの静的文字列変数の宣言場所は別の場所ですか?

では、この問題をどのように克服できるか教えてもらえますか?

ありがとう、

4

0 に答える 0