2016-04-12 11 views
0

Ich bin Liferay 6.2 AuthVerifier implementieren. Ich habe es entwickelt, aber es wird nicht als TestAuthVerifier.verify() -Methode bezeichnet.Wie bekomme ich Liferay Authverifer arbeiten

Ich bezog https://docs.liferay.com/portal/6.2/propertiesdoc/portal.properties.html den Link, um den est AuthVerifer zu entwickeln. Hier ist was ich unter

Ich mache Einträge in portal-ext.properties Datei wie folgt und entwickeln Sie die Klasse weiter.

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

mein code ist als unten nur als referenz.

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); 
    } 

}

Debugging von Liferay 6.2.3 Quellcode ich den Punkt sehen, wenn

  1. der Fluss unterbrochen ist AuthVerifierPipeline._mergeAuthVerifierConfiguration ist() Methode. die Anweisung: Map settings = accessControlContext.getSettings(); gibt eine Nullgrößenkarte zurück.

  2. Schließlich ist die tatsächliche Stelle, an der der Verifier aufgerufen wird: AuthVerifierPipeline._verifyRequest() wird nicht ausgeführt, da List authVerifierConfigurations ZERO-Größe ist.

  3. Ich schaute in der AccessControlContext-Klasse und anderen Klassen, ich konnte keine Setter-Methode zu setzen _settings oder Referenzen, die diese var festlegen.

jede Hilfe rund um dies wird sehr geschätzt.

Hinweis: Ich habe überprüft, dass LifeRay mein TestAuthVerifier impl erkennt.

+0

ich denke, müssen Sie überschreiben die portal.properties in einem Haken die Eigenschaften setzen und setzen th e Klasse im selben Projekt –

+0

können Sie bitte in etwas mehr Details erklären und Antwort Abschnitt einfügen – spectre007

Antwort

0

um es zu arbeiten müssen Sie mit dem Hook-Plugin arbeiten. Erstellen Sie zunächst eine Datei liferay-hook.xml in WEB-INF Ordner mit dem 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> 

Im src Ordner außer Kraft zu setzen setzen Sie die Datei portal.properties oder wenn Sie Maven in der Ressource-Ordner mit den Eigenschaften des AuthVerifier in Ihrem Fall verwenden

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

Dies ist ein Link von einer Probe in liferay git für mehr Details sample-authverifier-hook

Verwandte Themen