2016-10-03 17 views
0

私は必死に私のLiferay Tomcatのバンドルのため、ここでの例を再現しようとしていますオーバーライドする方法:Liferayの認証

package de.test.auth; 

import java.util.Map; 
import com.liferay.portal.security.auth.AuthException; 
import com.liferay.portal.security.auth.Authenticator; 

public class RefuseAuthenticator implements Authenticator { 

public int authenticateByEmailAddress(long arg0, String arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException { 

    System.out.println("failed by mail"); 
    return FAILURE; 
} 

public int authenticateByScreenName(long arg0, String arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException { 

    System.out.println("failed by screen name"); 
    return FAILURE; 
} 

public int authenticateByUserId(long arg0, long arg1, String arg2, Map<String, String[]> arg3, Map<String, String[]> arg4) throws AuthException { 

    System.out.println("failed by user id"); 
    return FAILURE; 
} 

} 

私は、パッケージをエクスポート:私は著者のパッケージとクラスを再作成している http://liferay-blogging.blogspot.be/2011/08/how-to-change-liferay-login-module.html

:私はLR-ポータル/ TOMCAT/libに/のextフォルダ

に配置されたjarファイルは、私は2行を追加しましたLW-portal/TOMCAT/webapps/ROOT/WEB-INF/lib/portlet_impl.jarにある標準portal.propertiesファイル内の0

です。 私はそれがportal-ext.propertiesファイルにあるはずですが、とにかく動作しなかったので、すべての可能な副作用を排除しました。

残念ながら、Liferayはユーザーの通常のログインを維持しています。 Liferayでカスタムコードを実行するためのフックとextメソッドについて読んだので、何か不足している可能性があります。私はここに書き込む前に多くのフォーラム投稿を読んでいます。

私はliferay-ce-portal-7.0-ga3 tomcat bundleを使用しています。

ありがとうございました。

+0

ブログの投稿にも示唆されているように、このためにextを使用してみてください。さらに、sserverをデバッグモードで使用して、認証中にそれぞれのクラスへのフローを確認してください –

答えて

0

あなたの考えに感謝します。 私はついにフックを使って周りに乗りました。 私はLiferay用のShibboleth認証プラグインに自分自身を基づいています(githubを参照)。もともとはmavenでビルドされていましたが、Liferay Plugin SDK環境を使用できるように、それをAntに変換することができました。

1

Liferay認証を無効にする場合は、カスタムログインを上書きするフックコンポーネントを作成する必要があります。

要求ヘッダーを代行受信し、ポータルがログインを行うために使用する方法を変更するために、フィルタを実装する必要があります。

これがあなたに役立つことを願っています。