私は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は
流れが壊れている点がAuthVerifierPipeline._mergeAuthVerifierConfiguration()メソッドである参照。 ステートメント:Map settings = accessControlContext.getSettings();ゼロサイズのマップを返します。
最後に、Verifierが呼び出される実際の場所:AuthVerifierPipeline._verifyRequest()はList authVerifierConfigurationsがゼロサイズとして実行されません。
私はAccessControlContextクラスと他のクラスを調べましたが、_settingsまたはこのvarを設定する参照を設定するセッターメソッドが見つかりませんでした。
これに関するお手伝いがあります。
注:LifeRayが私のTestAuthVerifier implを認識していることを確認しました。
ためのLiferayのgitのサンプルのリンクあり同じプロジェクトのeクラス –
もう少し詳しく説明して回答セクションに入れてください – spectre007