2010-11-04 4 views
3

J'essaie de créer un portlet de connexion personnalisé pour liferay car j'ai également besoin de faire d'autres choses telles que la journalisation. Cependant, le problème que je suis tombé sur est que le portail-impl.jar semble être protégé donc je ne peux pas utiliser la classe loginutil. Maintenant, je ne veux pas modifier la façon dont la connexion fonctionne, donc c'est assez décevant. J'ai lu quelque chose sur le fait d'être capable d'utiliser quelque chose comme ext (l'explication était assez vague) mais cela ne semblait pas être la solution la plus propre.connexion liferay par programme

J'ai une certaine expérience dans le développement de portlets, mais je suis nouveau dans le développement pour liferay.

Répondre

2

créer un "plugin ext", comme on l'appelle, est la meilleure façon de résoudre votre problème. This part de la documentation devrait être votre premier pas. Dans un premier temps, vous devez identifier dans le portail portal.properties les propriétés à modifier: qu'il s'agisse d'une autre connexion automatique dans le pipeline ou d'une action déclenchée par l'action de connexion. J'utilise souvent le premier pour les actions SSO personnalisées, et le dernier pour les audits.

Créez ensuite un plug-in ext avec votre classe personnalisée (en prolongeant loginutil, par exemple) et créez le fichier portal-ext.properties nécessaire pour le référencer. De cette façon, vous devriez avoir un paquet propre à déployer et à annuler; la personnalisation des jsps du portlet de connexion peut également être effectuée.

Arnaud

+0

Bonjour, je vais essayer à mon retour. Cela me semble un peu bizarre bien que l'on doive utiliser une telle méthode quand on ne veut même pas modifier l'une de ses classes (je veux juste accéder à la classe LoginUtil). La raison de lancer le portail-impl.jar m'échappe un peu. – jack

+0

portal-impl.jar ne contient que des détails d'implémentation internes - aucune promesse API n'est faite, ce qui signifie que l'implémentation peut changer sans préavis. Vous ne voulez pas vous fier à cela pour faire des choses spécifiques et vouloir valider qu'il fait toujours ce que vous croyez qu'il devrait faire après les mises à jour. –

1

Pourquoi voulez-vous utiliser la classe LoginUtil?

Si vous voulez simplement ajouter une connexion à la connexion, vous pouvez peut-être simplement créer un crochet post-connexion. Ce crochet va intercepter chaque connexion utilisateur afin que vous puissiez faire votre logique personnalisée, comme l'ajout de la journalisation avec les informations de l'utilisateur.

L'avantage de cette approche est que votre code est complètement séparé de Liferay.

+0

Parce que je vais utiliser un service de jeton pour authentifier l'utilisateur, mais je veux quand même les connecter sur le portail. – jack

Questions connexes