CAS et Webdav / LDAP

cancel
Showing results for 
Search instead for 
Did you mean: 
pierrick
Member II

CAS et Webdav / LDAP

Bonjour,

J'ai mis en place le mécanisme d'authentification unique avec CAS comme expliqué dans le wiki : http://wiki.alfresco.com/fr/index.php/Documentation:L'authentification_unique_avec_CAS
Ca fonctionne correctement … en interface Web.

Je souhaite maintenant accéder aux contenus via Webdav.
L'authentification CAS se faisant par une interface Web, je ne pense pas qu'il soit possible de faire intervenir CAS avec Webdav (exemple : un mount dav linux).
Après quelques tests, il semble qu'en Webdav tous les utilisateurs sont acceptés. Cela s'explique probablement par le fait que selon le wiki, il faut utiliser l'implémentation SimpleAcceptOrRejectAllAuthenticationComponentImpl pour l'authentification.
Ca ne me dérange pas de ne pas bénéficier du mécanisme SSO CAS pour les accès Webdav et mes comptes utilisateurs sont stockés sur un serveurs LDAP.

Ma question est donc : pour l'authentification, est-il possible d'utiliser l'implémentation SimpleAcceptOrRejectAllAuthenticationComponentImpl dans le cas ou l'on se connecte avec l'interface Web et l'implémentation LDAPAuthenticationComponentImpl dans le cas où l'on se connecte avec Webdav.

Si ce n'est pas possible, une autre solution est-elle envisageable ?

Merci,
Pierrick
1 Reply
pdubois
Active Member

Re: CAS et Webdav / LDAP

Bonjour,

La réponse est nom pas en l’état du code actuel.

Voici ma compréhension du problème.  Pour faire fonctionner CAS vous avez dû changer le « authenticationComponent » avec la déclaration suivante :

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>

<beans>
    <!– Simple Authentication component that rejects all authentication requests –>
    <!– Use this defintion for Novell IChain integration.                        –>
    <!– It should never go to the login screen  so this is not required          –>
   
    <bean id="authenticationComponent" class="org.alfresco.repo.security.authentication.SimpleAcceptOrRejectAllAuthenticationComponentImpl">
        <property name="accept">
            <value>true</value>
        </property>   
    </bean>
</beans>


L’authentification avec Webdav est configurée comme suit dans le web.xml :


   <filter>
      <filter-name>WebDAV Authentication Filter</filter-name>
      <filter-class>org.alfresco.repo.webdav.auth.AuthenticationFilter</filter-class>
     
      <!– For NTLM authentication support use the following filter –>
      <!–
        <filter-class>org.alfresco.repo.webdav.auth.NTLMAuthenticationFilter</filter-class>
      –>
   </filter>

Malheureusement le « AuthenticationFilter » utilise le «authenticationComponent » qui laisse tout passer puisque la responsabilité a été déléguée à CAS.

Ce que je vous conseille c’est d’écrire votre propre  « AuthenticationFilter » basé sur le code actuel mais qui au lieu d’utiliser l’authenticationService par défaut va utiliser une instance spéciale (avec un autre nom) du « authentucationService » utilisant LDAP.  Pour créer cette instance, utilisez les fichiers examples « ldap… » sous <tomcat>/shared/alfresco/extension.

Dommage que l’on ne puisse pas faire d’injection de dépendance dans le web.xml. Smiley Sad