Forum Lutèce

neji
 8  1534
8

probleme d'authentification avec module-mylutece-ldapdatabase

probleme d'authentification avec module-mylutece-ldapdatabase

Bonjour,

je veux gerer l'authentification par ldap donc j'ai construit mon site avec :

module-mylutece-ldapdatabase 2.1.0
lutece-core 3.1.0

j'ai le serveur ldap qui marche bien avec des utilisateur defini dedans.

je peux bien les importer avec  Gestion des utilisateurs du site (LDAP Database)

lorsque je veux s'authentifier avec un utilisateur non defini dans ldap ou non importer j'ai bien le message d'erreur : 
[b]Login invalide
Login ou mot de passe incorrect[/b]

le probleme est lorsque je veux s'authentifier avec un utilisateur defini dans ldap et importer par lutece j'ai l'exception suivante 
qui semble n'avoir aucune relation avec la configuration des plugins 

[code]
org.apache.jasper.JasperException
	org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:498)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	fr.paris.lutece.portal.web.xss.SafeRequestFilter.doFilter(SafeRequestFilter.java:104)
	fr.paris.lutece.portal.web.upload.UploadFilter.doFilter(UploadFilter.java:142)
	fr.paris.lutece.portal.service.filter.MainFilter.doFilter(MainFilter.java:107)
	fr.paris.lutece.portal.web.upload.DosGuardFilter.doFilter(DosGuardFilter.java:126)
	fr.paris.lutece.portal.web.encoding.EncodingFilter.doFilter(EncodingFilter.java:86)

cause mère

java.lang.NullPointerException
	fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication.LDAPDatabaseAuthentication.login(LDAPDatabaseAuthentication.java:149)
	fr.paris.lutece.portal.service.security.SecurityService.loginUser(SecurityService.java:210)
	fr.paris.lutece.plugins.mylutece.web.MyLuteceApp.doLogin(MyLuteceApp.java:230)
	org.apache.jsp.jsp.site.plugins.mylutece.DoMyLuteceLogin_jsp._jspService(DoMyLuteceLogin_jsp.java:61)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:308)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	fr.paris.lutece.portal.web.xss.SafeRequestFilter.doFilter(SafeRequestFilter.java:104)
	fr.paris.lutece.portal.web.upload.UploadFilter.doFilter(UploadFilter.java:142)
	fr.paris.lutece.portal.service.filter.MainFilter.doFilter(MainFilter.java:107)
	fr.paris.lutece.portal.web.upload.DosGuardFilter.doFilter(DosGuardFilter.java:126)
	fr.paris.lutece.portal.web.encoding.EncodingFilter.doFilter(EncodingFilter.java:86)

note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de Apache Tomcat/5.5.31.
[/code] 

voici mon fichier de configuration mylutece-ldapdatabase.properties
[code]
#Uncomment the following line to get pre-2.4.1 behavior
mylutece.authentication.class=fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication.LDAPDatabaseAuthentication

mylutece-ldapdatabase.service.name=Lutece Ldapdatabase Authentication Service

################################################################################
# LDAP Authentication
#
# example :
mylutece-ldapdatabase.ldap.initialContextProvider=com.sun.jndi.ldap.LdapCtxFactory
mylutece-ldapdatabase.ldap.connectionUrl=ldap://localhost:10390
mylutece-ldapdatabase.ldap.connectionName=uid=admin,ou=system
mylutece-ldapdatabase.ldap.connectionPassword=secret
mylutece-ldapdatabase.ldap.userBase=ou=users,ou=system
mylutece-ldapdatabase.ldap.userSearch.guid=(uid={0})
mylutece-ldapdatabase.ldap.userSearch.criteria.sn=(sn={0})
mylutece-ldapdatabase.ldap.userSearch.criteria.givenname=(givenname={1})
mylutece-ldapdatabase.ldap.userSearch.criteria.mail=(mail={2})
mylutece-ldapdatabase.ldap.userSubtree=true
mylutece-ldapdatabase.ldap.dn.attributeName.ldapGuid=uid
mylutece-ldapdatabase.ldap.dn.attributeName.familyName=sn
mylutece-ldapdatabase.ldap.dn.attributeName.givenName=givenname
mylutece-ldapdatabase.ldap.dn.attributeName.email=mail
mylutece-ldapdatabase.ldap.dn.login=(uid={0})
[/code]

le fichier mylutece.properties
[code]
mylutece.authentication.enable=true

# Only authenticated users can access to the portal
mylutece.portal.authentication.required=false

# Default authentication is MultiLuteceAuthentication.
# Edit the following line to use your own auth class
#mylutece.authentication.class=fr.paris.lutece.plugins.mylutece.authentication.MultiLuteceAuthentication

################################################################################
# Optionnal URL

mylutece.url.login.page=Portal.jsp?page=mylutece&action=login
mylutece.url.doLogin=jsp/site/plugins/mylutece/DoMyLuteceLogin.jsp
mylutece.url.doLogout=jsp/site/plugins/mylutece/DoMyLuteceLogout.jsp
mylutece.url.createAccount.page=jsp/site/Portal.jsp?page=mylutece&action=createAccount
mylutece.url.viewAccount.page=jsp/site/Portal.jsp?page=mylutece&action=viewAccount
mylutece.url.lostPassword.page=jsp/site/Portal.jsp?page=mylutece&action=lostPassword
mylutece.url.default.redirect=../../Portal.jsp

################################################################################
# Templates
mylutece.template.accessDenied=/skin/plugins/mylutece/page_access_denied.html
mylutece.template.accessControled=/skin/plugins/mylutece/page_access_controled.html

#######################################################################################################
# Labels

mylutece.pageTitle.login=Authentification
mylutece.pagePathLabel.login=Authentification
mylutece.pageTitle.viewAccount=Mes informations personnelles
mylutece.pagePathLabel.viewAccount=Mes informations personnelles

#######################################################################################################
# messages
mylutece.message.error.invalid.login=Login invalide

##################################################
#### mylutece default role
mylutece.defaultRole.code=none
mylutece.defaultRole.description=No restriction
[/code]

de l'aide s'il vous plait.

VVO
Bonjour, Pourriez-vous nous indiquer le contenu du fichier
WEB-INF/conf/plugins/ldapdatabase_context.xml
?

 

neji
Bonjour, voila le contenu de fichier que vous m'avez demander [code] [/code] j'ai deja testé la valeur de l'attribut _dao de la classe fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication pour voir si elle est bien initialisé par spring, et sa valeur n'est pas null. la version de plugin-mylutece est 3.0.2 une autre information : j'utilise apacheds et apache directory studio coté ldap, le password des utilisateurs est stocké en texte brut.

 

VVO
Pourriez-vous essayer avec la propriété mylutece.authentication.class commentée dans le fichier mylutece-ldapdatabase.properties
#mylutece.authentication.class=fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication.LDAPDatabaseAuthentication
et décommenter la propriété mylutece.authentication.class dans mylutece.properties ?
mylutece.authentication.class=fr.paris.lutece.plugins.mylutece.authentication.MultiLuteceAuthentication

 

neji
desolé pour le retard, j' ai reconstruit tout le projet a nouveau car je testai d'autre versions... quand j'ai fait les changement que vous m'avez dit j'ai remarqué que le formulaire qui s'afficher lorsque je cliquais sur s'authentifier dans le header ne s'affiche plus, et quand j'utilise la portlet authentification mylutece qui contient 2 bouton creer un compte et mot de passe perdu !!! je clique sur creer un compte j'ai l'erreur suivante : [code] Identification Login invalide Veuillez sélectionner un mode d'authentification [/code] sachant que je n'ai inseré aucun login !

 

VVO
Le plugin était-il activé au moment du démarrage de la webapp ? Qu'avez-vous sur la page
Portal.jsp?page=mylutece&action=login
?

 

 

 

neji
Bonjour, voilà comment j'ai réglé le problème : j'ai téléchargé les sources de module-mylutece-ldapdatabase j'ai ajouter la ligne suivante
_dao = (LdapDatabaseDAO) SpringContextService.getPluginBean( "mylutece-ldapdatabase", "ldapDatabaseDAO" );
dans la classe fr.paris.lutece.plugins.mylutece.modules.ldapdatabase.authentication.LDAPDatabaseAuthentication dans la method public LuteceUser login( String strUserName, String strUserPassword, HttpServletRequest request ) avant l'instrution LDAPDatabaseUser user = _dao.selectLuteceUserByGuid( strLdapGuid, plugin, this); il parait que spring ne fesait pas son travail comme il faut, ou bien moi qui a oublié de configurer quelque chose :wink: . versions : lutece-core-3.1.1 module-mylutece-ldapdatabase-2.1.0 plugin-mylutece-3.0.2