2016-04-12 6 views
0

私はLiferay 6.2 AuthVerifierを実装しています。私はそれを開発しましたが、それはTestAuthVerifier.verify()メソッドと呼ばれることはありません。Liferay Authveriferの動作方法

私は、AuthVeriferを開発するためのリンクをhttps://docs.liferay.com/portal/6.2/propertiesdoc/portal.properties.htmlと言いました。以下は私が行っていることです

私は以下のようにportal-ext.propertiesファイルにエントリを作成し、さらにクラスを開発します。

auth.verifier.pipeline=com.test.TestAuthVerifier 
auth.verifier.TestAuthVerifier.version.supported=1.0 

マイコードは以下のとおりです。 Liferayの6.2.3ソースコードからデバッグを

package comt.test; 

import com.liferay.portal.security.auth.*; 

public class TestAuthVerifier implements AuthVerifier { 

@Override 
public String getAuthType() { 
    return PhAuthVerifier.class.getSimpleName(); 
} 

@Override 
public AuthVerifierResult verify(
     AccessControlContext accessControlContext, Properties properties) 
     throws AuthException { 

    System.out.println("MyAuthVerifier.verify() invoked..") 
    try { 

    ..... 

     return authVerifierResult; 
    } catch (AutoLoginException e) { 
     throw new AuthException(e); 
    } 

}

Iは

  1. 流れが壊れている点がAuthVerifierPipeline._mergeAuthVerifierConfiguration()メソッドである参照。 ステートメント:Map settings = accessControlContext.getSettings();ゼロサイズのマップを返します。

  2. 最後に、Verifierが呼び出される実際の場所:AuthVerifierPipeline._verifyRequest()はList authVerifierConfigurationsがゼロサイズとして実行されません。

  3. 私はAccessControlContextクラスと他のクラスを調べましたが、_settingsまたはこのvarを設定する参照を設定するセッターメソッドが見つかりませんでした。

これに関するお手伝いがあります。

注:LifeRayが私のTestAuthVerifier implを認識していることを確認しました。

+0

ためのLiferayのgitのサンプルのリンクあり同じプロジェクトのeクラス –

+0

もう少し詳しく説明して回答セクションに入れてください – spectre007

答えて

0

これを動作させるには、フックプラグインを使用する必要があります。まずsrcフォルダでportal.properties

<?xml version="1.0"?> 
<!DOCTYPE hook PUBLIC "-//Liferay//DTD Hook 6.2.0//EN" "http://www.liferay.com/dtd/liferay-hook_6_2_0.dtd"> 

<hook> 
    <portal-properties>portal.properties</portal-properties> 
</hook> 

を上書きするWEB-INFフォルダ内のファイルliferay-hook.xmlを作成し、ファイルportal.propertiesを置くか、あなたはあなたのケースでAuthVerifierのプロパティでリソースフォルダにMavenを使用している場合

auth.verifier.pipeline=com.test.TestAuthVerifier 
auth.verifier.TestAuthVerifier.version.supported=1.0 

これは、私はあなたがフックにportal.propertiesをオーバーライド性質を入れて、目を入れて持っていると思うの詳細sample-authverifier-hook

関連する問題