cancel
Showing results for 
Search instead for 
Did you mean: 

Problemas de autenticación en alfresco 3.4 cluster

pacosm
Champ in-the-making
Champ in-the-making
Hola,

Tengo montado un cluster de alfresco con la versión 3.4 community. Un apache balancea con el modulo mod_jk a dos instancias tomcat6. Los indices lucene estan en local en cada una de las instancias tomcat y actualizan cada 5 seg, la base de datos mysql y el alf_data estan compartidos. Cuando conecto via web, me logueo correctamente, puedo insertar/borrar documentos/espacios/usuarios y los indices se replican correctamente y aparentemente funciona todo como debe. Sin embargo cuando intento conectar con la API de alfresco via SOAP falla, la aplicacioón conecta y devuelve el token de autenticación pero cuando intentamos insertar algun documento salta el siguiente error:

org.apache.ws.security.WSSecurityException: The security token could not be authenticated or authorized
        at org.apache.ws.security.processor.UsernameTokenProcessor.handleUsernameToken(UsernameTokenProcessor.java:150)
        at org.apache.ws.security.processor.UsernameTokenProcessor.handleToken(UsernameTokenProcessor.java:53)
        at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:311)
        at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:228)
        at org.apache.ws.axis.security.WSDoAllReceiver.invoke(WSDoAllReceiver.java:159)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.alfresco.web.app.servlet.GlobalLocalizationFilter.doFilter(GlobalLocalizationFilter.java:58)
        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:127)
        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:298)
        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:774)
        at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:703)
        at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:896)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
        at java.lang.Thread.run(Thread.java:662)

Parece como si el apache perdiera la sesión y cuando intenta insertar un documente lo intenta en el otro nodo el cual no posee el token de autenticación y falla. ¿Ha alguien le ha pasado algo parecido?

Saludos y muchas gracias
5 REPLIES 5

rmacian
Champ in-the-making
Champ in-the-making
Has configurado las sesiones en Apache como sticky ? Alfresco tiene un bug que no permite la replicación de sesiones entre nodos. Esto teoricament ese va a solucionar en la versión 3.4.3.

http://issues.alfresco.com/jira/browse/ALF-731

Por otro lado, has verificado que el cluster esta funcionando correctamente ? Si creas un espacio desde un nodo y asignas permisos, estos permisos se ven desde el otro nodo ?

toni_delafuente
Confirmed Champ
Confirmed Champ
Hola,

Aquí explica Fernando Gonzalez bastante bien como funciona:
http://www.fegor.com/2011/06/replica-la-informacion-alfresco-ecm-en.html

Espero que te sirva.

Saludos.

mikel_asla1
Confirmed Champ
Confirmed Champ
Buenas Toni!
Me gusto mucho el post! grande fegor.
Sin embargo lo hizo con la versión 3.3.4 Enterprise, tenemos otro hilo abierto al respecto y yo pensaba que esto estaba claro, ¿Funcionan las versiones posteriores a la 3.0 comunity en cluster?

toni_delafuente
Confirmed Champ
Confirmed Champ
No, no se replican las sesiones entre nodos, por eso hay que configuarar el balanceador o balanceadores con sticky session.

rmacian
Champ in-the-making
Champ in-the-making
Mikel,

echale un ojo al JIRA que he puesto y verás el tema de las sesiones.

Yo estuve hace unas semanas haciendo pruebas e intentando configurar el cluster a nivel de tomcat. Entonces me di cuenta que el problema no era tan sencillo. Para que el tema de cluster funcione, ya sea a nivel de alfresco o de tomcat, se necesitan que todos los objetos sean serializables. Hay algunos objetos que usa JSF o Alfresco (no se si son especificos de JSF o los ha metido Alfresco) que no lo son y por tanto al intentar pasarlos de un nodo a otro terminaban dando un error de serverfaces de que no podia serializarlos..

Esperemos a ver si con la 3.4.3 se soluciona de una vez por todas
Getting started

Tags


Find what you came for

We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.