<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Webdav + LDAP in Nuxeo Forum</title>
    <link>https://connect.hyland.com/t5/nuxeo-forum/webdav-ldap/m-p/319849#M6850</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm trying to setup webdav authentication with LDAP on a Nuxeo 5.4.2 instance.
I follow these two threads because I get a "Digest authentication failed. Stored HA1 is empty" error :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://forum.nuxeo.com/t/5764/" target="test_blank"&gt;http://forum.nuxeo.com/t/5764/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://jira.nuxeo.com/browse/NXP-6212" target="test_blank"&gt;https://jira.nuxeo.com/browse/NXP-6212&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Here are my configuration files :&lt;/P&gt;
&lt;P&gt;default-ldap-users-directory-bundle.xml :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;component name="org.nuxeo.ecm.directory.ldap.storage.users"&amp;gt;
    &amp;lt;implementation /&amp;gt;
    &amp;lt;implementation /&amp;gt;
    &amp;lt;require&amp;gt;org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory&amp;lt;/require&amp;gt;
    &amp;lt;require&amp;gt;org.nuxeo.ecm.directory.sql.storage&amp;lt;/require&amp;gt;

    &amp;lt;extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory"
        point="servers"&amp;gt;
        &amp;lt;server name="default"&amp;gt;
            &amp;lt;ldapUrl&amp;gt;ldap://ldap.mydomain.fr:389&amp;lt;/ldapUrl&amp;gt;

      &amp;lt;!-- Credentials used by Nuxeo5 to browse the directory, create
        and modify entries.

        Only the authentication of users (bind) use the credentials entered
        through the login form if any.--&amp;gt;
          &amp;lt;!--
      &amp;lt;bindDn&amp;gt;@ldap.bindDn@&amp;lt;/bindDn&amp;gt;
      &amp;lt;bindPassword&amp;gt;@ldap.bindPassword@&amp;lt;/bindPassword&amp;gt;
       --&amp;gt;
        &amp;lt;/server&amp;gt;
    &amp;lt;/extension&amp;gt;

    &amp;lt;extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories"&amp;gt;
        &amp;lt;directory name="userLdapDirectory"&amp;gt;
            &amp;lt;server&amp;gt;default&amp;lt;/server&amp;gt;
            &amp;lt;schema&amp;gt;user&amp;lt;/schema&amp;gt;
                &amp;lt;idField&amp;gt;username&amp;lt;/idField&amp;gt;
                &amp;lt;!-- &amp;lt;passwordField&amp;gt;password&amp;lt;/passwordField&amp;gt; --&amp;gt;
                &amp;lt;searchBaseDn&amp;gt;ou=people,dc=univ-valenciennes,dc=fr&amp;lt;/searchBaseDn&amp;gt;
                &amp;lt;searchClass&amp;gt;person&amp;lt;/searchClass&amp;gt;
                &amp;lt;!-- To additionally restricte entries you can add an
                    arbitrary search filter such as the following:

                    &amp;lt;searchFilter&amp;gt;(|(eduPersonAffiliation=employee)(eduPersonAffiliation=faculty))&amp;lt;/searchFilter&amp;gt;

                    Beware that "&amp;amp;" writes "&amp;amp;amp;" in XML.
                --&amp;gt;
                &amp;lt;!-- use subtree if the people branch is nested --&amp;gt;
                &amp;lt;searchScope&amp;gt;onelevel&amp;lt;/searchScope&amp;gt;
                &amp;lt;readOnly&amp;gt;true&amp;lt;/readOnly&amp;gt;
                &amp;lt;!-- comment &amp;lt;cache* /&amp;gt; tags to disable the cache --&amp;gt;
                &amp;lt;!-- cache timeout in seconds --&amp;gt;
                &amp;lt;cacheTimeout&amp;gt;3600&amp;lt;/cacheTimeout&amp;gt;
                &amp;lt;!-- maximum number of cached entries before global invalidation --&amp;gt;
                &amp;lt;cacheMaxSize&amp;gt;1000&amp;lt;/cacheMaxSize&amp;gt;
                &amp;lt;creationBaseDn&amp;gt;ou=people,dc=univ-valenciennes,dc=fr&amp;lt;/creationBaseDn&amp;gt;
                &amp;lt;creationClass&amp;gt;top&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;person&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;organizationalPerson&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;inetOrgPerson&amp;lt;/creationClass&amp;gt;
                &amp;lt;rdnAttribute&amp;gt;uid&amp;lt;/rdnAttribute&amp;gt;

                &amp;lt;fieldMapping name="username"&amp;gt;uid&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;!-- pour l'authentification via le ldap pour webdav --&amp;gt;
                &amp;lt;fieldMapping name="password"&amp;gt;userPassword&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="firstName"&amp;gt;givenName&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="lastName"&amp;gt;sn&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="company"&amp;gt;supannOrganisme&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="email"&amp;gt;mail&amp;lt;/fieldMapping&amp;gt;

                &amp;lt;references&amp;gt;
                    &amp;lt;inverseReference field="groups" directory="groupLdapDirectory" dualReferenceField="members" /&amp;gt;
                &amp;lt;/references&amp;gt;
        &amp;lt;/directory&amp;gt;
    &amp;lt;/extension&amp;gt;

&amp;lt;/component&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;and login-digest-config.xml&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;component name="org.nuxeo.ecm.platform.digestauth.config"&amp;gt;

  &amp;lt;require&amp;gt;org.nuxeo.ecm.platform.login.digest&amp;lt;/require&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory"
    point="directories"&amp;gt;
    &amp;lt;directory name="digestauth"&amp;gt;
      &amp;lt;schema&amp;gt;digestauth&amp;lt;/schema&amp;gt;
      &amp;lt;table&amp;gt;digestauth&amp;lt;/table&amp;gt;
      &amp;lt;autoincrementIdField&amp;gt;false&amp;lt;/autoincrementIdField&amp;gt;
      &amp;lt;dataSource&amp;gt;java:/nxsqldirectory&amp;lt;/dataSource&amp;gt;
      &amp;lt;idField&amp;gt;username&amp;lt;/idField&amp;gt;
      &amp;lt;passwordField&amp;gt;password&amp;lt;/passwordField&amp;gt;
      &amp;lt;createTablePolicy&amp;gt;on_missing_columns&amp;lt;/createTablePolicy&amp;gt;
    &amp;lt;/directory&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;!-- &amp;lt;extension target="org.nuxeo.ecm.platform.usermanager.UserService" point="userManager"&amp;gt;
    &amp;lt;userManager&amp;gt;
      &amp;lt;digestAuthDirectory&amp;gt;digestauth&amp;lt;/digestAuthDirectory&amp;gt;
      &amp;lt;digestAuthRealm&amp;gt;NUXEO&amp;lt;/digestAuthRealm&amp;gt;
    &amp;lt;/userManager&amp;gt;
  &amp;lt;/extension&amp;gt; --&amp;gt;

 &amp;lt;extension
    target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"
    point="authenticators"&amp;gt;
    &amp;lt;authenticationPlugin name="DIGEST_AUTH"
      enabled="true" class="org.nuxeo.ecm.ui.web.auth.digest.DigestAuthenticator"&amp;gt;
      &amp;lt;stateful&amp;gt;false&amp;lt;/stateful&amp;gt;
      &amp;lt;loginModulePlugin&amp;gt;DigestLoginPlugin&amp;lt;/loginModulePlugin&amp;gt;
       &amp;lt;parameters&amp;gt;
         &amp;lt;parameter name="RealmName"&amp;gt;UVHC&amp;lt;/parameter&amp;gt;
       &amp;lt;/parameters&amp;gt;
    &amp;lt;/authenticationPlugin&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.platform.usermanager.UserService" point="userManager"&amp;gt;
    &amp;lt;userManager&amp;gt;
      &amp;lt;digestAuthDirectory&amp;gt;userLdapDirectory&amp;lt;/digestAuthDirectory&amp;gt;
      &amp;lt;digestAuthRealm&amp;gt;UVHC&amp;lt;/digestAuthRealm&amp;gt;
    &amp;lt;/userManager&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.platform.login.LoginPluginRegistry"
    point="plugin"&amp;gt;
    &amp;lt;LoginPlugin name="DigestLoginPlugin"
      class="org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin"&amp;gt;
      &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
      &amp;lt;parameters name="passwordField"&amp;gt;password&amp;lt;/parameters&amp;gt;
    &amp;lt;/LoginPlugin&amp;gt;
  &amp;lt;/extension&amp;gt;

&amp;lt;/component&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And here is the log with an error I don't really understand :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;2013-02-19 11:24:24,581 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, false): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' [LDAPSession '-1010039942807551476' for directory userLdapDirectory]
2013-02-19 11:24:24,585 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, false): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' =&amp;gt; found: uid=fblin,ou=people,dc=univ-valenciennes,dc=fr [LDAPSession '-1010039942807551476' for directory userLdapDirectory]
2013-02-19 11:24:24,585 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, true): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' [LDAPSession '-1010039925627682291' for directory userLdapDirectory]
2013-02-19 11:24:24,588 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, true): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' =&amp;gt; found: uid=fblin,ou=people,dc=univ-valenciennes,dc=fr [LDAPSession '-1010039925627682291' for directory userLdapDirectory]
2013-02-19 11:24:24,588 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPReference] LDAPReference.getSourceIdsForTarget(fblin): LDAP search search base='ou=groups,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(member={0})(&amp;amp;(&amp;amp;(|(objectClass=groupOfNames)(objectClass=groupOfURLs)))(cn=*)))' args='uid=fblin,ou=people,dc=univ-valenciennes,dc=fr' scope='2' [LDAPReference to resolve field='members' of sourceDirectory='groupLdapDirectory' with targetDirectory='userLdapDirectory' and staticAttributeId='member', dynamicAttributeId='memberURL']
2013-02-19 11:24:24,689 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPReference] LDAPReference.getSourceIdsForTarget(fblin): LDAP search search base='ou=groups,dc=univ-valenciennes,dc=fr' filter='memberURL=*' scope='2' [LDAPReference to resolve field='members' of sourceDirectory='groupLdapDirectory' with targetDirectory='userLdapDirectory' and staticAttributeId='member', dynamicAttributeId='memberURL']
2013-02-19 11:24:24,692 ERROR [org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin] Digest authentication failed
java.lang.NullPointerException
        at org.nuxeo.common.utils.Path.collapseSlashes(Path.java:281)
        at org.nuxeo.common.utils.Path.initialize(Path.java:457)
        at org.nuxeo.common.utils.Path.&amp;lt;init&amp;gt;(Path.java:77)
        at org.nuxeo.ecm.core.api.model.impl.AbstractProperty.resolvePath(AbstractProperty.java:394)
        at org.nuxeo.ecm.core.api.model.impl.AbstractProperty.getValue(AbstractProperty.java:356)
        at org.nuxeo.ecm.core.api.impl.DataModelImpl.getData(DataModelImpl.java:91)
        at org.nuxeo.ecm.core.api.impl.DocumentModelImpl.getProperty(DocumentModelImpl.java:719)
        at org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin.getStoredHA1(DigestLoginPlugin.java:131)
        at org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin.validatedUserIdentity(DigestLoginPlugin.java:63)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.validateUserIdentity(NuxeoLoginModule.java:355)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.getPrincipal(NuxeoLoginModule.java:209)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.login(NuxeoLoginModule.java:262)
        at org.nuxeo.runtime.api.LoginModuleWrapper.login(LoginModuleWrapper.java:77)
        at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doAuthenticate(NuxeoAuthenticationFilter.java:225)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilterInternal(NuxeoAuthenticationFilter.java:464)
        at org.nuxeo.ecm.platform.ui.web.auth.service.NuxeoAuthFilterChain.doFilter(NuxeoAuthFilterChain.java:35)
        at org.nuxeo.ecm.platform.ui.web.auth.oauth.NuxeoOAuthFilter.doFilter(NuxeoOAuthFilter.java:114)
        at org.nuxeo.ecm.platform.ui.web.auth.service.NuxeoAuthFilterChain.doFilter(NuxeoAuthFilterChain.java:33)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilter(NuxeoAuthenticationFilter.java:338)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.nuxeo.ecm.platform.web.common.exceptionhandling.NuxeoExceptionFilter.doFilter(NuxeoExceptionFilter.java:80)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.nuxeo.ecm.platform.web.common.encoding.NuxeoEncodingFilter.doFilter(NuxeoEncodingFilter.java:59)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:619)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thank you for your help&lt;/P&gt;
&lt;P&gt;Fabrice&lt;/P&gt;</description>
    <pubDate>Tue, 19 Feb 2013 11:31:58 GMT</pubDate>
    <dc:creator>fabrice_</dc:creator>
    <dc:date>2013-02-19T11:31:58Z</dc:date>
    <item>
      <title>Webdav + LDAP</title>
      <link>https://connect.hyland.com/t5/nuxeo-forum/webdav-ldap/m-p/319849#M6850</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;I'm trying to setup webdav authentication with LDAP on a Nuxeo 5.4.2 instance.
I follow these two threads because I get a "Digest authentication failed. Stored HA1 is empty" error :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://forum.nuxeo.com/t/5764/" target="test_blank"&gt;http://forum.nuxeo.com/t/5764/&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;A href="https://jira.nuxeo.com/browse/NXP-6212" target="test_blank"&gt;https://jira.nuxeo.com/browse/NXP-6212&lt;/A&gt;&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;Here are my configuration files :&lt;/P&gt;
&lt;P&gt;default-ldap-users-directory-bundle.xml :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;component name="org.nuxeo.ecm.directory.ldap.storage.users"&amp;gt;
    &amp;lt;implementation /&amp;gt;
    &amp;lt;implementation /&amp;gt;
    &amp;lt;require&amp;gt;org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory&amp;lt;/require&amp;gt;
    &amp;lt;require&amp;gt;org.nuxeo.ecm.directory.sql.storage&amp;lt;/require&amp;gt;

    &amp;lt;extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory"
        point="servers"&amp;gt;
        &amp;lt;server name="default"&amp;gt;
            &amp;lt;ldapUrl&amp;gt;ldap://ldap.mydomain.fr:389&amp;lt;/ldapUrl&amp;gt;

      &amp;lt;!-- Credentials used by Nuxeo5 to browse the directory, create
        and modify entries.

        Only the authentication of users (bind) use the credentials entered
        through the login form if any.--&amp;gt;
          &amp;lt;!--
      &amp;lt;bindDn&amp;gt;@ldap.bindDn@&amp;lt;/bindDn&amp;gt;
      &amp;lt;bindPassword&amp;gt;@ldap.bindPassword@&amp;lt;/bindPassword&amp;gt;
       --&amp;gt;
        &amp;lt;/server&amp;gt;
    &amp;lt;/extension&amp;gt;

    &amp;lt;extension target="org.nuxeo.ecm.directory.ldap.LDAPDirectoryFactory" point="directories"&amp;gt;
        &amp;lt;directory name="userLdapDirectory"&amp;gt;
            &amp;lt;server&amp;gt;default&amp;lt;/server&amp;gt;
            &amp;lt;schema&amp;gt;user&amp;lt;/schema&amp;gt;
                &amp;lt;idField&amp;gt;username&amp;lt;/idField&amp;gt;
                &amp;lt;!-- &amp;lt;passwordField&amp;gt;password&amp;lt;/passwordField&amp;gt; --&amp;gt;
                &amp;lt;searchBaseDn&amp;gt;ou=people,dc=univ-valenciennes,dc=fr&amp;lt;/searchBaseDn&amp;gt;
                &amp;lt;searchClass&amp;gt;person&amp;lt;/searchClass&amp;gt;
                &amp;lt;!-- To additionally restricte entries you can add an
                    arbitrary search filter such as the following:

                    &amp;lt;searchFilter&amp;gt;(|(eduPersonAffiliation=employee)(eduPersonAffiliation=faculty))&amp;lt;/searchFilter&amp;gt;

                    Beware that "&amp;amp;" writes "&amp;amp;amp;" in XML.
                --&amp;gt;
                &amp;lt;!-- use subtree if the people branch is nested --&amp;gt;
                &amp;lt;searchScope&amp;gt;onelevel&amp;lt;/searchScope&amp;gt;
                &amp;lt;readOnly&amp;gt;true&amp;lt;/readOnly&amp;gt;
                &amp;lt;!-- comment &amp;lt;cache* /&amp;gt; tags to disable the cache --&amp;gt;
                &amp;lt;!-- cache timeout in seconds --&amp;gt;
                &amp;lt;cacheTimeout&amp;gt;3600&amp;lt;/cacheTimeout&amp;gt;
                &amp;lt;!-- maximum number of cached entries before global invalidation --&amp;gt;
                &amp;lt;cacheMaxSize&amp;gt;1000&amp;lt;/cacheMaxSize&amp;gt;
                &amp;lt;creationBaseDn&amp;gt;ou=people,dc=univ-valenciennes,dc=fr&amp;lt;/creationBaseDn&amp;gt;
                &amp;lt;creationClass&amp;gt;top&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;person&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;organizationalPerson&amp;lt;/creationClass&amp;gt;
                &amp;lt;creationClass&amp;gt;inetOrgPerson&amp;lt;/creationClass&amp;gt;
                &amp;lt;rdnAttribute&amp;gt;uid&amp;lt;/rdnAttribute&amp;gt;

                &amp;lt;fieldMapping name="username"&amp;gt;uid&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;!-- pour l'authentification via le ldap pour webdav --&amp;gt;
                &amp;lt;fieldMapping name="password"&amp;gt;userPassword&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="firstName"&amp;gt;givenName&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="lastName"&amp;gt;sn&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="company"&amp;gt;supannOrganisme&amp;lt;/fieldMapping&amp;gt;
                &amp;lt;fieldMapping name="email"&amp;gt;mail&amp;lt;/fieldMapping&amp;gt;

                &amp;lt;references&amp;gt;
                    &amp;lt;inverseReference field="groups" directory="groupLdapDirectory" dualReferenceField="members" /&amp;gt;
                &amp;lt;/references&amp;gt;
        &amp;lt;/directory&amp;gt;
    &amp;lt;/extension&amp;gt;

&amp;lt;/component&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;and login-digest-config.xml&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;&amp;lt;?xml version="1.0"?&amp;gt;
&amp;lt;component name="org.nuxeo.ecm.platform.digestauth.config"&amp;gt;

  &amp;lt;require&amp;gt;org.nuxeo.ecm.platform.login.digest&amp;lt;/require&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.directory.sql.SQLDirectoryFactory"
    point="directories"&amp;gt;
    &amp;lt;directory name="digestauth"&amp;gt;
      &amp;lt;schema&amp;gt;digestauth&amp;lt;/schema&amp;gt;
      &amp;lt;table&amp;gt;digestauth&amp;lt;/table&amp;gt;
      &amp;lt;autoincrementIdField&amp;gt;false&amp;lt;/autoincrementIdField&amp;gt;
      &amp;lt;dataSource&amp;gt;java:/nxsqldirectory&amp;lt;/dataSource&amp;gt;
      &amp;lt;idField&amp;gt;username&amp;lt;/idField&amp;gt;
      &amp;lt;passwordField&amp;gt;password&amp;lt;/passwordField&amp;gt;
      &amp;lt;createTablePolicy&amp;gt;on_missing_columns&amp;lt;/createTablePolicy&amp;gt;
    &amp;lt;/directory&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;!-- &amp;lt;extension target="org.nuxeo.ecm.platform.usermanager.UserService" point="userManager"&amp;gt;
    &amp;lt;userManager&amp;gt;
      &amp;lt;digestAuthDirectory&amp;gt;digestauth&amp;lt;/digestAuthDirectory&amp;gt;
      &amp;lt;digestAuthRealm&amp;gt;NUXEO&amp;lt;/digestAuthRealm&amp;gt;
    &amp;lt;/userManager&amp;gt;
  &amp;lt;/extension&amp;gt; --&amp;gt;

 &amp;lt;extension
    target="org.nuxeo.ecm.platform.ui.web.auth.service.PluggableAuthenticationService"
    point="authenticators"&amp;gt;
    &amp;lt;authenticationPlugin name="DIGEST_AUTH"
      enabled="true" class="org.nuxeo.ecm.ui.web.auth.digest.DigestAuthenticator"&amp;gt;
      &amp;lt;stateful&amp;gt;false&amp;lt;/stateful&amp;gt;
      &amp;lt;loginModulePlugin&amp;gt;DigestLoginPlugin&amp;lt;/loginModulePlugin&amp;gt;
       &amp;lt;parameters&amp;gt;
         &amp;lt;parameter name="RealmName"&amp;gt;UVHC&amp;lt;/parameter&amp;gt;
       &amp;lt;/parameters&amp;gt;
    &amp;lt;/authenticationPlugin&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.platform.usermanager.UserService" point="userManager"&amp;gt;
    &amp;lt;userManager&amp;gt;
      &amp;lt;digestAuthDirectory&amp;gt;userLdapDirectory&amp;lt;/digestAuthDirectory&amp;gt;
      &amp;lt;digestAuthRealm&amp;gt;UVHC&amp;lt;/digestAuthRealm&amp;gt;
    &amp;lt;/userManager&amp;gt;
  &amp;lt;/extension&amp;gt;

  &amp;lt;extension target="org.nuxeo.ecm.platform.login.LoginPluginRegistry"
    point="plugin"&amp;gt;
    &amp;lt;LoginPlugin name="DigestLoginPlugin"
      class="org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin"&amp;gt;
      &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;
      &amp;lt;parameters name="passwordField"&amp;gt;password&amp;lt;/parameters&amp;gt;
    &amp;lt;/LoginPlugin&amp;gt;
  &amp;lt;/extension&amp;gt;

&amp;lt;/component&amp;gt;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;And here is the log with an error I don't really understand :&lt;/P&gt;
&lt;PRE&gt;&lt;CODE&gt;2013-02-19 11:24:24,581 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, false): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' [LDAPSession '-1010039942807551476' for directory userLdapDirectory]
2013-02-19 11:24:24,585 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, false): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' =&amp;gt; found: uid=fblin,ou=people,dc=univ-valenciennes,dc=fr [LDAPSession '-1010039942807551476' for directory userLdapDirectory]
2013-02-19 11:24:24,585 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, true): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' [LDAPSession '-1010039925627682291' for directory userLdapDirectory]
2013-02-19 11:24:24,588 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPSession] LDAPSession.getLdapEntry(fblin, true): LDAP search base='ou=people,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(uid={0})(&amp;amp;(objectClass=person)(uid=*)))'  args='fblin' scope='1' =&amp;gt; found: uid=fblin,ou=people,dc=univ-valenciennes,dc=fr [LDAPSession '-1010039925627682291' for directory userLdapDirectory]
2013-02-19 11:24:24,588 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPReference] LDAPReference.getSourceIdsForTarget(fblin): LDAP search search base='ou=groups,dc=univ-valenciennes,dc=fr' filter='(&amp;amp;(member={0})(&amp;amp;(&amp;amp;(|(objectClass=groupOfNames)(objectClass=groupOfURLs)))(cn=*)))' args='uid=fblin,ou=people,dc=univ-valenciennes,dc=fr' scope='2' [LDAPReference to resolve field='members' of sourceDirectory='groupLdapDirectory' with targetDirectory='userLdapDirectory' and staticAttributeId='member', dynamicAttributeId='memberURL']
2013-02-19 11:24:24,689 DEBUG [org.nuxeo.ecm.directory.ldap.LDAPReference] LDAPReference.getSourceIdsForTarget(fblin): LDAP search search base='ou=groups,dc=univ-valenciennes,dc=fr' filter='memberURL=*' scope='2' [LDAPReference to resolve field='members' of sourceDirectory='groupLdapDirectory' with targetDirectory='userLdapDirectory' and staticAttributeId='member', dynamicAttributeId='memberURL']
2013-02-19 11:24:24,692 ERROR [org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin] Digest authentication failed
java.lang.NullPointerException
        at org.nuxeo.common.utils.Path.collapseSlashes(Path.java:281)
        at org.nuxeo.common.utils.Path.initialize(Path.java:457)
        at org.nuxeo.common.utils.Path.&amp;lt;init&amp;gt;(Path.java:77)
        at org.nuxeo.ecm.core.api.model.impl.AbstractProperty.resolvePath(AbstractProperty.java:394)
        at org.nuxeo.ecm.core.api.model.impl.AbstractProperty.getValue(AbstractProperty.java:356)
        at org.nuxeo.ecm.core.api.impl.DataModelImpl.getData(DataModelImpl.java:91)
        at org.nuxeo.ecm.core.api.impl.DocumentModelImpl.getProperty(DocumentModelImpl.java:719)
        at org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin.getStoredHA1(DigestLoginPlugin.java:131)
        at org.nuxeo.ecm.ui.web.auth.digest.DigestLoginPlugin.validatedUserIdentity(DigestLoginPlugin.java:63)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.validateUserIdentity(NuxeoLoginModule.java:355)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.getPrincipal(NuxeoLoginModule.java:209)
        at org.nuxeo.ecm.platform.login.NuxeoLoginModule.login(NuxeoLoginModule.java:262)
        at org.nuxeo.runtime.api.LoginModuleWrapper.login(LoginModuleWrapper.java:77)
        at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769)
        at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186)
        at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680)
        at javax.security.auth.login.LoginContext.login(LoginContext.java:579)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doAuthenticate(NuxeoAuthenticationFilter.java:225)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilterInternal(NuxeoAuthenticationFilter.java:464)
        at org.nuxeo.ecm.platform.ui.web.auth.service.NuxeoAuthFilterChain.doFilter(NuxeoAuthFilterChain.java:35)
        at org.nuxeo.ecm.platform.ui.web.auth.oauth.NuxeoOAuthFilter.doFilter(NuxeoOAuthFilter.java:114)
        at org.nuxeo.ecm.platform.ui.web.auth.service.NuxeoAuthFilterChain.doFilter(NuxeoAuthFilterChain.java:33)
        at org.nuxeo.ecm.platform.ui.web.auth.NuxeoAuthenticationFilter.doFilter(NuxeoAuthenticationFilter.java:338)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.nuxeo.ecm.platform.web.common.exceptionhandling.NuxeoExceptionFilter.doFilter(NuxeoExceptionFilter.java:80)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.nuxeo.ecm.platform.web.common.encoding.NuxeoEncodingFilter.doFilter(NuxeoEncodingFilter.java:59)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
        at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
        at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:619)
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Thank you for your help&lt;/P&gt;
&lt;P&gt;Fabrice&lt;/P&gt;</description>
      <pubDate>Tue, 19 Feb 2013 11:31:58 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/nuxeo-forum/webdav-ldap/m-p/319849#M6850</guid>
      <dc:creator>fabrice_</dc:creator>
      <dc:date>2013-02-19T11:31:58Z</dc:date>
    </item>
  </channel>
</rss>

