Acceso desde login externo a alfresco

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

Acceso desde login externo a alfresco

Buenas.

Actualemente debo realizar una entrada a alfresco desde una aplicación externa. Pues bien desde la aplicación externa se el usuario /clave con el que entrar y lo que he hecho es examinar los parámetros que usa la página de login de alfresco para intentar imitar la llamada que este hace para poder validar los datos y que entre el usuario. Es decir desde mi aplicación, y pulsando un simple botón, se deberia de poder entrar a alfresco siendo la pantalla de login totalmente transparente para el usuario que navega.

Pero aquí me encuentro con un extraño problema. El caso es que tomando los parámetros necesarios para hacer el login en alfresco con mi html  (jsp), me entra… pero extrañamente me entra en el 3º intento que realizo, y siempre entra en el 3º, nunca en el 1º o 2º intento. Las pruebas son pulso botón y me lleba a página de login de alfresco, le doy atrás al navegador y vuelvo a pulsar el botón de acceso…y así hasta que a la tercera me entra.

Os dejo, el código del html… es tremendamente simple lo que quiero hacer y el código en sí..pero hay algo que se me escapa…  a ver si alguien me puede orientar o ha hecho algo parecido.


<html>
<head>
   <script type="text/javascript">
   <!–   
      function entrarAlfresco(){
       document.loginForm.submit();
      }
   –>
   </script>
   </head>
   <body>

      <form id="loginForm" name="loginForm" method="post" action="http://wxplmmartin:8080/alfresco/faces/jsp/login.jsp" accept-charset="UTF-8" enctype="application/x-www-form-urlencoded">
         <input type="hidden" name="javax.faces.ViewState" value ="rO0ABXVyABNbTGphdmEubGFuZy5PYmplY3Q7kM5YnxBzKWwCAAB4cAAAAAN0AAEycHQADi9qc3AvbG9naW4uanNw"/>
         <input type="hidden" name="loginForm:_idcl" value =""/>
         <input type="hidden" name="loginForm:_link_hidden_" value =""/>
         <input type="hidden" name="loginForm:language" value ="es_ES"/>
         <input type="hidden" name="loginForm:submit" value ="Entrar"/>
         <input type="hidden" name="loginForm:user-name" value ="usuario"/>
         <input type="hidden" name="loginForm:user-password" value ="usuario00"/>
         <input type="hidden" name="loginForm_SUBMIT" value ="1"/>
         
         <input type="hidden" name="dashboard:sidebar-body:navigator" value ="panel:userhome"/>
      
         <input type="button" name="Entrar" value="Entrar" onClick="javascript:entrarAlfresco()" />
      </form>
   </body>
</html>
4 Replies
pjcaracuel_2349
Active Member II

Re: Acceso desde login externo a alfresco

Buenas,

Para empezar, que version de Alfresco estas usando?, puedes postear el contenido de Alfresco.log? Algo que nos de pistas para empezar a mirar, en el JIRA he encontrado algo parecido pero no es exactamente el mismo caso
https://issues.alfresco.com/jira/browse/ETHREEOH-1999

Saludos
lmmartin
Member II

Re: Acceso desde login externo a alfresco

Gracias por intentar echarme una mano pjcaracuel, estoy usando alfresco 3. Pero ya he descubierto el problema.

El tema era que alfresco usa JSF y este genera un parámetro "javax.faces.ViewState" construido a partir del html(jsp) final. Este crea una variable de sesión que al existir permite que use los parámetros del formulario para logarme. Con lo que para solucionarlo he realizado una pequeña chapuza que os detallo…

1º- He quitado ese parámetro del formulario (javax.faces.ViewState).
2º.- He abierto en el formulario, pero de forma oculta la jsp de login de alfresco con un iframe, con lo que obtengo la creación de la sesión.
3.- Solo queda que se acepte el formulario enviado los datos… en mi caso lo he automatizado para que lo haga un segundo y pico tras la carga del html/jsp.

Con esto ya entra perfectamente y todo es absolutamente transparente para el usuario de la aplicación. Ciertamente  lo de usar el iframe oculto es una pequeña chapuza pero es la única manera que tengo de generar la sesión.

Os dejo el código que funciona para que lo use quien quiera ya que debo agradecer mucho la ayuda que este foro me ha prestado para muchas cosas (aunque echo en falta que algunos temas se solucionen pero no pongan la solución final :-(…..aunque orienten… :-)… )


<html>
<head>
   <script type="text/javascript">
   <!–   
      function entrarAlfresco(){
       document.loginForm.submit();
      }
   –>
   </script>
   </head>
   <body onLoad="setTimeout('entrarAlfresco()',1250);">

      <iframe id="hola" src="http://wxplmmartin:8081/alfresco/faces/jsp/login.jsp" width="100px" height="100px" style="display:none">
         
      </iframe>
      <div id="divESpera" >
         <b>Espera….</b>
      </div>
      <div id="divForm" style="display:none" >
      <form id="loginForm" name="loginForm" method="post" action="http://wxplmmartin:8081/alfresco/faces/jsp/login.jsp" accept-charset="UTF-8" enctype="application/x-www-form-urlencoded">         
         
         <input type="hidden" name="loginForm:_idcl" value =""/>
         <input type="hidden" name="loginForm:_link_hidden_" value =""/>
         <input type="hidden" name="loginForm:language" value ="es_ES"/>
         <input type="hidden" name="loginForm:submit" value ="Entrar"/>
         <input type="hidden" name="loginForm:user-name" value ="usuario"/>
         <input type="hidden" name="loginForm:user-password" value ="usuario00"/>
         <input type="hidden" name="loginForm_SUBMIT" value ="1"/>
         
         <input type="hidden" name="dashboard:sidebar-body:navigator" value ="panel:userhome"/>
      
         <input type="button" name="Entrar" value="Entrar" onClick="javascript:entrarAlfresco()" />
         
      </form>
      </div>
   </body>
</html>

Un saludo
pjcaracuel_2349
Active Member II

Re: Acceso desde login externo a alfresco

perfecto, de todas formas otra opcion seria hacer uso de webscript para crear la conexion, no te parece?
http://wiki.alfresco.com/wiki/Web_Scripts#URL_and_authentication
Saludos
lmmartin
Member II

Re: Acceso desde login externo a alfresco

Buenas:

Hace poco me mandarón un mail en el que indicaban lo siguiente:

Hola lmmartin.

Soy un principiante en alfresco, y tengo una duda respecto a un excelente post que vos hiciste hace algun tiempo es este
http://forums.alfresco.com/es/viewtopic.php?f=6&t=1554 es sobre el ingreso externo a alfresco lo que sucede es que lo ejecuto y siempre en el primer intento no me ingresa, pero al segundo si, queria saber si esto tambien te pasaba a vos?

Gracias mi hermano,


Mi respuesta:

Bien, hace tiempo que realice esto. Y no lo recuerdo muy bien. Pero que no entrara del tirón era uno de los problemas que tenía y ciertamente me pasaba eso. Pero se debía solucinar con el código que dejé en el foro, ya que el problema radicaba en que con el primer acceso no se podía entrar pq no se generaba las varables de sesión necesarias y por eso usaba el iframe interno que debía crear con un primer acceso la sessión en alfresco antes de darle al botón de acceder a alfresco.

En resumen:
En la jsp que hará la llamada a alfresco debe existir un iframe oculto que haya realizado ya la llamada para que cree la variable de sesión. Posteriormente al intentar acceder desde esa jsp ya entrará del tirón.

Espero haberte aclarado algo.