ユーザーがすでにログインしていて、手動でログインパスを入力した場合、ホームページにリダイレクトする必要がありますか?これを実行する方法を教えてください。
ありがとう
私が理解している限り、ログイン後も次のサインイン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の使用とは無関係です:-)
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