3 Stimmen

liferay Anmeldung programmatisch

Ich versuche, ein benutzerdefiniertes Login-Portlet für liferay zu erstellen, weil ich auch einige andere Dinge wie die Protokollierung tun müssen. Das Problem, über das ich gestolpert bin, ist jedoch, dass die portal-impl.jar abgeschirmt zu sein scheint, so dass ich die loginutil-Klasse nicht verwenden kann. Nun möchte ich nicht ändern, wie die eigentliche Anmeldung funktioniert, so dass dies ein ziemlicher Flop ist. Ich habe etwas über die Möglichkeit, etwas wie ext (die Erklärung war ziemlich vage) zu verwenden, aber das schien nicht wie die sauberste Lösung.

Ich habe einige Erfahrung in der Entwicklung von Portlets, aber ich bin neu in der Entwicklung für Liferay.

2voto

Arnaud Deslandes Punkte 741

Die Erstellung eines so genannten "Ext-Plugins" ist die beste Lösung für Ihr Problem. Dieser Teil der Dokumentation sollte Ihr erster Schritt sein.

Zunächst sollten Sie in den portal.properties die zu ändernden Eigenschaften identifizieren: entweder ein weiteres Autologin in der Pipeline oder eine Aktion, die durch die Login-Aktion ausgelöst wird. Ersteres verwende ich oft für benutzerdefinierte SSO-Aktionen, letzteres für Auditing-Zwecke.

Erstellen Sie dann ein ext-Plugin mit Ihrer benutzerdefinierten Klasse (z. B. als Erweiterung von loginutil) und betten Sie die portal-ext.properties ein, die für den Verweis darauf benötigt werden.

Auf diese Weise sollten Sie in der Lage sein, ein sauberes Paket zum Bereitstellen und Rückgängigmachen zu haben; das Anpassen der jsps des Login-Portlets kann ebenfalls durchgeführt werden.

Arnaud

1voto

p.mesotten Punkte 1382

Warum wollen Sie die LoginUtil-Klasse verwenden?

Wenn Sie wirklich nur die Protokollierung der Anmeldung hinzufügen möchten, können Sie vielleicht nur einen Post-Login-Hook erstellen. Dieser Hook wird jede Benutzeranmeldung abfangen, so dass Sie Ihre benutzerdefinierte Logik, wie z. B. das Hinzufügen einer Protokollierung mit den Informationen des Benutzers, durchführen können.

Der Vorteil dieses Ansatzes ist, dass Ihr Code vollständig von Liferay getrennt ist.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X