3

私は開発に Liferay 6 を使用しています。Liferay6 Struts2 ポートレットを開発し、展開しました。カスタム JSP フックを使用して、$PORTAL_ROOT_HOME/html/portlet/login login.jsp をオーバーライドし、次のように独自の JSP ページを作成しました。

<HTML>
    <HEAD>
        <TITLE>Login using jsp</TITLE>
    </HEAD>
    <BODY>
        <H1>LOGIN FORM</H1>
            <form>
                <table>
                    <tr>
                        <td> Username  : </td><td> <input name="username" size=15 type="text" /> </td> 
                    </tr>
                    <tr>
                        <td> Password  : </td><td> <input name="password" size=15 type="text" /> </td> 
                    </tr>
                </table>
                <input type="submit" value="login" />
            </form>
    </BODY>
</HTML> 

これは正常に動作し、カスタム jsp ページが表示されています。次に、送信ボタンをクリックしたときに教えてください。データベースに対して資格情報を検証する Java クラスを作成する方法を教えてください。

クラスでこれらの値を受け取り、検証する方法を教えてください。

ありがとう

4

1 に答える 1

6

この時点で解決策が得られている可能性があります。そうでない場合は、次のことを試すことができます。

liferay のログイン ポートレットをオーバーライドしようとしていると思います。その場合、このログイン メカニズムを処理する方法が 2 つあります (liferay のログイン ページと同じ名前が入力フィールドに指定されていることを確認してください)。

  1. liferay の LoginAction クラスを拡張します。ext プラグインを作成する必要があります。6.0 SP2 または 6.1 を使用している場合は、フックを使用して LoginAction クラスを拡張できます。mika のブログ参照 http://www.liferay.com/web/mika.koivisto/blog/-/blogs/7132115

  2. liferay の Authenticator インターフェースを実装する独自のクラスを作成し、Authenticator インターフェースの 3 つのメソッドをオーバーライドする必要があります。

たとえば、authenticateByEmailAddress(....) をオーバーライドする場合は、SUCCESS(1) または FAILURE(-1) を返す必要があります。メソッドの 2 番目と 3 番目のパラメーターは、画面に入力されたユーザー ID とパスワードだと思います。liferay ソースを参照してください。

liferay のデフォルトの認証メカニズムをバイパスするには、portal-ext.properties auth.pipeline.pre=your.package.your.class で次の構成を指定します。

独自のデータベースに対する Still liferay チェック。これを回避するには、portal-ext.properties に次の構成を追加します。

auth.pipeline.enable.liferay.check=false.

したがって、独自のデータベースまたは必要なメカニズムに対して認証できる独自のカスタム認証があります。

詳細http://www.liferay.com/web/guest/community/wiki/-/wiki/Main/Developing+a+Custom+Authentication+System

お役に立てれば

于 2012-02-24T13:58:26.887 に答える