L’intégration des deux briques Liferay et Alfresco produit une solution de travail collaboratif qui allie la gestion électronique
de documents aux portails intranet, extranet ou internet !
AVANTAGES
- Une solution complémentaire : Liferay sert d’interface pour le portail alors qu’Alfresco va être le moteur de l’application. Les données du site sont stockées sous forme documentaire dans Alfresco, ce qui augmente fortement l’espace de stockage.
- Une gestion des utilisateurs, des formulaires et un moteur de recherche uniques : la combinaison d’Alfresco et Liferay permet de profiter d’une authentification unique, d’une gestion centralisée des utilisateurs et d’un moteur de recherche qui combine sa recherche sur les éléments du portail, d’Alfresco et des applications métiers.
- La gestion électronique de documents combinée à Liferay : grâce à l’intégration d’Alfresco, il est possible de classer et de définir les droits d’accès aux différents documents électroniques : l’utilisateur voit uniquement les documents qui le concernent grâce au moteur de recherche intégré.
- Une gestion associée du contenu : Alfresco va servir de support pour tout le contenu web du portail (CMS) en créant pour chaque rubrique la structure générale et en lui associant un modèle de présentation défini. Liferay récupère les données de ce contenu Web directement dans Alfresco afin de l’afficher sur le portail.
FONCTIONNALITÉS
INTEGRATION
Liferay propose
en standard deux modes d’intégration :
- L'intégration d'Alfresco en tant que portlets dans Liferay
- L’intégration d'Alfresco Repository à travars le Portlet "Document and Media" via CMIS
A. L'intégration d'Alfresco en tant que portlets dans Liferay
Procédure :
We will be seeing here the proper way of
intregrating Alfresco 4.x with Liferay 6.1 version. So, here I
have given details process, How you can achive the integration.
Let’s do some few steps for integrating Alfresco
4.x with Liferay 6.1.
As we can have assumption that you might have
installed the Alfresco and Liferay Tomcat bundles into separate directories.
Let’s say as <ALFRESCO_HOME> and<LIFERAY_HOME>.
NOTE: If you are not using any SSO for both servers,
Make sure you create a same user admin/admin in Liferay. Doing this you will
have common user in both environment.
1. You need to have different ports number for Alfresco and Liferay running on to resolve port conflicts, Say Alfresco is running on 8080 and Liferay on 5050. So, you can configure the Liferay port in Tomcat server by editing <LIFERAY_HOME>/<tomcat>/conf/server.xml
...
<Server port="5005" shutdown="SHUTDOWN">
...
<Connector port="5050" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="5443" URIEncoding="UTF-8" />
...
<Connector port="5009" protocol="AJP/1.3"
redirectPort="5443" URIEncoding="UTF-8" />
...
2. Now, You need to change the Share Loader by editing <LIFERAY_HOME>/<tomcat>/conf/catalina.properties and locate the "shared.loader" entry and replace it with this:
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
These will load the alfresco custom and
extension configuration with respect to the XML and other properties files. And
also if you have the custom jar files.
3. You have to enable the external authenticate services of alfresco, we can do that by editing <ALFRESCO_HOME>/tomcat/shared/classes/alfresco-global.properties and add to file.
3. You have to enable the external authenticate services of alfresco, we can do that by editing <ALFRESCO_HOME>/tomcat/shared/classes/alfresco-global.properties and add to file.
Add the following line at the
end of the file
authentication.chain=alfrescoNtlm1:alfrescoNtlm,external1:external
external.authentication.proxyUserName=
Note: Leave the value of proxyUserName blank
4. You can deploy the share.war file in Liferay deploy folder.
4. You can deploy the share.war file in Liferay deploy folder.
Copy <ALFRESCO_HOME>/tomcat/webapps/share.war to <LIFERAY_HOME>/deploy
5. As you set the share loader in catalina.properties inside Liferay tomcat. You need to copy the Share Loader from Alfresco to Liferay. Let copy the entire folder
5. As you set the share loader in catalina.properties inside Liferay tomcat. You need to copy the Share Loader from Alfresco to Liferay. Let copy the entire folder
<ALFRESCO_HOME>/tomcat/shared directory to <LIFERAY_HOME>/<tomcat>/
Note: Alfresco requirement is to copy the shared/classes/alfresco/web-extension/
directory where all the custom xml configuration files are placed, to have a
common bridge between Liferay and Alfresco. So, it’s convenient task to copy
entire folder.
6. Finally you need to configure SSO, what we called as Bridge.
6. Finally you need to configure SSO, what we called as Bridge.
Create a file <LIFERAY_HOME>/<tomcat>hared/classes/alfresco/web-extension/share-config-custom.xml,
and copy the below code to enable remote authenticator.
shared/classes/alfresco/web-extension/share-config-custom.xml
<alfresco-config>
<!-- Overriding endpoints to reference a remote
Alfresco server -->
<config evaluator="string-compare"
condition="Remote">
<remote>
<endpoint>
<id>alfresco-noauth</id>
<name>Alfresco - unauthenticated access</name>
<description>Access to Alfresco Repository WebScripts that do not
require authentication</description>
<connector-id>alfresco</connector-id>
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
<identity>none</identity>
</endpoint>
<endpoint>
<id>alfresco-feed</id>
<name>Alfresco Feed</name>
<description>Alfresco Feed - supports basic HTTP
authentication</description>
<connector-id>http</connector-id>
<endpoint-url>http://localhost:8080/alfresco/s</endpoint-url>
<basic-auth>true</basic-auth>
<identity>user</identity>
</endpoint>
<connector>
<id>alfrescoCookie</id>
<name>Alfresco Connector</name>
<description>Connects to an Alfresco instance using cookie-based
authentication</description>
<class>org.springframework.extensions.webscripts.connector.AlfrescoConnector</class>
</connector>
<endpoint>
<id>alfresco</id>
<name>Alfresco - user access</name>
<description>Access to Alfresco Repository WebScripts that require
user authentication</description>
<connector-id>alfrescoCookie</connector-id>
<endpoint-url>http://localhost:8080/alfresco/wcs</endpoint-url>
<identity>user</identity>
<external-auth>true</external-auth>
</endpoint>
</remote>
</config>
</alfresco-config>
NOTE: If you're running Alfresco's Tomcat server on a
different host or port, please change the corresponding endpoint.
7. Last but not the least, you can startup both the servers Liferay and Alfresco
8. Now you can able to see the 3 portlets under Alfresco category in Dock bar menu | Add portlet in Liferay. Try to add the Share Document library portlet in Liferay Page.
7. Last but not the least, you can startup both the servers Liferay and Alfresco
8. Now you can able to see the 3 portlets under Alfresco category in Dock bar menu | Add portlet in Liferay. Try to add the Share Document library portlet in Liferay Page.
Limitations :
1.
SSO
Pour assurer
l’intégration d’Alfresco dans Liferay par le mode portlet, la mise en place
d’un outil de SSO est nécessaire.
2.
Installation
Le déploiement
requiert beaucoup de configuration pour assurer le fonctionnement du Share
Alfresco au sein de Liferay puisque le fonctionnement repose sur ce dernier. Il
est donc nécessaire de reporter toute la configuration du share dans le
contexte Liferay.
3.
Réutilisabilité
Les documents
gérés dans Alfresco et affichés via la portlet Share ne peuvent pas être
réutilisés dans les fonctionnalités Liferay (Contenus web,…). La portlet permet
uniquement la gestion du référentiel de document Alfresco.
B. L’intégration d'Alfresco Repository à travars le Portlet "Document and Media" via CMIS
Procédure :
CMIS permet de connecter des applications comme Sharepoint, Documentum ou Alfresco en utilisant ce protocole.
Création du repository Alfresco dans Liferay :
Name: Alfresco Repository
Description: Alfresco Repository
Repository
Type: CMIS Repository (AtomPub)
Repository
URL: http://localhost:8080/alfresco/service/cmis
Une fois connecté le repository affiche alors les dossiers et documents présent dans Alfresco :
Les documents publiés dans Alfresco sont alors directement accessible dans Liferay. Il est également possible (en fonction des permissions) de créer ou de mettre à jour des documents à partir de Liferay.
L’utilisation d’un « repository » permet d’utiliser la fonctionnalité standard de Liferay vis-à-vis des documents : lien dans un contenu web, liste de documents.
Limitations :
1.
Gestion d’identité
Une des problématiques de
l’interconnexion de deux outils est le transfert de l’identité de l’utilisateur
consultant/modifiant les documents.En standard Liferay propose d’utiliser l’identifiant et le mot de passe lors de la connexion à Alfresco via CMIS. Cela présente 3 points négatifs :
-
Il faut activer l’authentification par
screenname
-
Il faut stocker le mot de passe utilisateur
dans la session utilisateur (risque de sécurité).
-
Il faut disposer des mêmes informations
d’authentification (identifiant/mot de passe dans les deux systèmes).
Il sera donc préférable de mettre
en place un tiers de confiance (Active Directory, NTML, SSO).
2.
Métadonnées
Une des fonctionnalités majeurs
d’Alfresco est la possibilité de définir un méta modèle spécifiques et ainsi de
caractériser les documents publiés par l’ajout de méta données (exemple :
client lié à un contrat).Actuellement l’implémentation standard CMIS ne permet pas d’extraire les métadonnées du document. Celles-ci ne pourront pas être véhiculées et réutilisées dans Liferay.
Alfresco propose une extension à CMIS afin de permettre l’extraction des métadonnées. Il conviendra d’étendre le fonctionnement du repository Liferay pour y ajouter la gestion de l’extension Alfresco. Ces métadonnées pourraient alors être utilisées dans l’affichage des documents.
3.
AssetPublisher
Les documents accessibles via un
repository CMIS ne sont pas accessibles via la portlet standard Asset
Publisher.Cette portlet permet l’affichage dynamique de contenus Liferay (Documents, Dossiers, Contenus Web) en fonction de critères de filtre.
Il conviendrait d’étendre le fonctionnement du repository CMIS pour ajouter les documents en tant qu’Asset dans Liferay.
C. Conclusion
Il n’existe pas
aujourd’hui de solution technique permettant de fournir une intégration
complète entre ces 2 outils.
Le mode le plus
aboutit passe par l’utilisation du protocole CMIS qu’il est possible d’étendre
et compléter avec des fonctionnalités complémentaires (Asset, Tags, Catégorie)
mais cela nécessitera un développement complémentaire au module existant (cf
module Sharepoint pour Liferay).