4

ユーザーがすでにログインしていて、手動でログインパスを入力した場合、ホームページにリダイレクトする必要がありますか?これを実行する方法を教えてください。

ありがとう

4

2 に答える 2

1

私が理解している限り、ログイン後も次のサインインURLを入力すると、それが必要になります。

http://localhost:8080/web/guest/home?p_p_id=58&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&saveLastPath=0&_58_struts_action=%2Flogin%2Flogin

次に、ホームページ、つまりに移動する必要がありますhttp://localhost:8080/web/guest/home

したがって、これが当てはまる場合は、すべてのリクエストをインターセプトし、次のようなURLの関連パラメーターをチェックするサーブレットフィルターフックstruts_action=/login/loginを作成できると思います(疑似コードで)。

if(is_SignIn_URL) { // check if it is the sign-in URL

    if(isUserLoggedIn) { // check if user is logged-in

        // redirect to the home page configured in portal-ext.properties

    } else {

        // let the application work normally i.e. let it go to the sign-in page

    }
}

また、情報と詳細な理解のために、lifearyのAutoLoginFilterクラス(これは実際のサーブレットフィルターですが、同じ行に沿ってフックを作成できます)と、ユーザーがログインしている場合にページに移動liferay-web.xmlするURLc/portal/loginを確認できます。homeそれ以外の場合は、サインインページに移動します。

そして、これはCookieの使用とは無関係です:-)

于 2013-02-08T07:11:08.877 に答える
0

Web サーバーにリダイレクト ルールを記述できます。以下のApache httpd.confファイルのコード例、

yourCookieログインするとすぐにCookie (たとえば ) を作成します。

RewriteEngine On
RewriteCond %{HTTP:Cookie}  yourCookie=([a-zA-Z0-9]+)
RewriteCond %{REQUEST_URI} ^/web/portal/home/-/portal/login/      //This is your login page URL
RewriteRule .* http://%{SERVER_NAME}/web/portal/home [R=302]      //This is your Home Page URL
于 2013-02-08T03:48:46.207 に答える