Liferay6.1バージョンを使用しています。
ユーザーが入るhttp:localhost
と、次のようにカスタムポータルで構成される「/ravi」というWebページが表示されます。
示されているように、portal-ext.propertiesの下のプロパティの下でこれを構成しました
auth.forward.by.last.path=true
default.landing.page.path=/web/guest/ravi
ユーザーがhttp:localhostと入力したときに表示されるカスタムポートレットのスクリーンショットを参照してください。
今、私の要件は、彼が有効なクレンデンテイルを入力した場合、別のページ( "/ web / guest / test")を表示する必要があることです。
私のprocessActionクラスでは、このようにしています
public class ValidateUser extends MVCPortlet {
public void processAction(ActionRequest request, ActionResponse response) {
String userName = (String) request.getParameter("userName");
String password = (String) request.getParameter("password");
try {
// Contatcs DB and validates the credentials here
// Please let me know how can i show the Configured Page if his credentials are valid ??
}
catch (Exception e) {
}
}
}
編集部
デフォルトのlogin.events.postに関する回答ありがとうございます。
私はLiferayを初めて使用するので、ここで間違いを犯している可能性があります。何か間違ったことをしている場合は、助けてください。
私はこれらの手順に従いました:
- 「MyLogon」ポートレットという名前の新しいポートレットを作成し、そのview.jspで、2つのテキストフィールド(ログインとパスワード)と送信ボタンを持つフォームを作成しました。その送信ボタンをクリックすると、実際にprocessActionメソッドを呼び出し、mysqldbからユーザーを検証するためのDB呼び出しを行っていました。
2.次に、/ web / guest / ravi内にページを作成し、この「MyLogon」ポートレットをこの新しいページ/ web / guest/raviに追加しました。
次に、以下のプロパティでこれを構成します
portal-ext.properties
auth.forward.by.last.path = true default.landing.page.path = / web / guest / ravi
これは私がしたことです。
そして、入るhttp:localhost:8080
と、ページが表示されます。
私が何か間違ったことをしている場合は教えてください
第二部編集
私はあなたの答えの一部を理解しました、そして私はこれらの質問があります。手伝ってもらえますか
データベース内に存在するデータに基づいてユーザーを検証する必要があるため、このために以下のシンを実行する必要があります。
このプロパティを上書きするには、フックを作成する必要があります
login.events.pre = com.LoginAction
パブリッククラスLoginActionはAction{を拡張します
public void run(HttpServletRequest req, HttpServletResponse res) {
//ここで、ユーザー資格情報を検証するためにデータベース呼び出しを行い、次にユーザーを目的のページにリダイレクトする必要がありますか?
}
}