AnsweredAssumed Answered

Authentification personnalisée

Question asked by pierreb on Sep 8, 2008
Bonjour,

Mon entreprise utilise un système LDAP pas vraiment standard, et j'ai donc du ajouter ma propre implémentation de AbstractAuthenticationComponent.
J'ai quelques soucis avec cela, le code fonctionne et Alfresco demande bien une authentification sur le serveur.

Voici mes soucis :
- Quand l'authentification sur le serveur échoue j'aimerais que l'authentification Alfresco classique reprenne la main. J'ai bien configuré le chainingAuthentificationContext.xml, cependant mon composant d'authentification semble ne jamais rendre la main :
@Override
   protected void authenticateImpl(String userName, char[] password)  throws AuthenticationException{   
      // Authenticate the user through Atos' DAS
      if(passwordUserDetailsService.loadUserByUsernameAndPassword(userName, new String(password)) != null)
      {
           // Set the current user, they are now authenticated.
         setCurrentUser(userName);
      }
      else
      {
         throw new AuthenticationException("ATOS DAS Authentication Failed");
      }
   }

- J'aimerais que quand l'authentification réussit, si l'utilisateur n'existe pas dans Alfresco, il soit crée automatiquement. Comment faire ?
Pour l'instant quand l'authentification fonctionne, j'obtiens l'erreur suivante :
javax.faces.FacesException: Error calling action method of component with id loginForm:submit
caused by:
javax.faces.el.EvaluationException: Exception while invoking expression #{LoginBean.login}
caused by:
java.lang.IllegalStateException: Non-unique path: found : /app:company_home/app:user_homes 0

Cacher les Détails

javax.faces.FacesException: Error calling action method of component with id loginForm:submit
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:72)
at javax.faces.component.UICommand.broadcast(UICommand.java:109)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:97)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:171)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95) …

Merci à tous :)

Outcomes