Page 1 of 1

Error en la búsqueda [SOLUCIONADO]

PostPosted:Thu Sep 02, 2010 7:50 am
by ollerfco
Hola,

tengo implantado el OpenKM ya en producción desde hace un tiempo y de momento va fenomenal, pero ahora me ha surgido un contratiempo.
En los documentos tengo en las palabras clave, las secciones a las que corresponde el documento. Una de las palabras clave es "tria". Pues bien, si hago una búsqueda por palabra clave desde un usuario con el rol UserRole i Fabrica, me salta un error de búsqueda (adjunto imagen), en cambio si lo hago desde otro usuario de Oficinas(por ejemplo) la búsqueda funciona correctamente. La única diferencia entre los dos usuarios es la pertenencia al grupo Fábrica, el cual no tiene permisos de escritura sobre los documentos y carpetas.
La búsqueda con otras palabras clave no da problemas con ningun usuario... (al menos las que he probado).

Saludos!!

Jordi

Re: Error en la búsqueda

PostPosted:Thu Sep 02, 2010 8:00 am
by ollerfco
Añado la traza del error:
Code: Select all
  
2010-09-02 09:33:22,288 ERROR [es.git.openkm.frontend.server.OKMSearchServlet] cannot read item e4597d84-35de-44e5-a877-95d8fb10ad6b
es.git.openkm.core.RepositoryException: cannot read item e4597d84-35de-44e5-a877-95d8fb10ad6b
        at es.git.openkm.module.direct.DirectSearchModule.executeQuery(DirectSearchModule.java:487)
        at es.git.openkm.module.direct.DirectSearchModule.findByStatementPaginated(DirectSearchModule.java:422)
        at es.git.openkm.module.direct.DirectSearchModule.findPaginated(DirectSearchModule.java:166)
        at es.git.openkm.api.OKMSearch.findPaginated(OKMSearch.java:113)
        at es.git.openkm.frontend.server.OKMSearchServlet.findPaginated(OKMSearchServlet.java:181)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:164)
        at com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
        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:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
        at java.lang.Thread.run(Thread.java:619)
Caused by: javax.jcr.AccessDeniedException: cannot read item e4597d84-35de-44e5-a877-95d8fb10ad6b
        at org.apache.jackrabbit.core.ItemManager.getItem(ItemManager.java:392)
        at org.apache.jackrabbit.core.NodeImpl.getParent(NodeImpl.java:1960)
        at es.git.openkm.module.direct.DirectSearchModule.executeQuery(DirectSearchModule.java:464)
        ... 32 more

Re: Error en la búsqueda

PostPosted:Thu Sep 02, 2010 11:51 am
by jllort
Primero el UserRole recuerda que es necesario para conectarse pero que no debe propagarse por el repositorio dado que lo tienen todos los usuarios ( eso a veces creo que no queda claro ).

Puede ser que este usuario tenga mas resultados, por que esto parece un nodos / documento perdido que este dando un error.

Re: Error en la búsqueda

PostPosted:Thu Sep 02, 2010 2:13 pm
by ollerfco
Hola,

el UserRole, en principio, no està asignado en la pestaña de Seguridad a ningún documento ni ninguna carpeta. El problema està en que esto sólo me sucede con los usuarios que tienen asignado el Role "Fabrica". Desde cualquier otro Role no me da el error, y me muestra los resultados correctamente.

Saludos

Jordi

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Thu Sep 02, 2010 3:28 pm
by ollerfco
Buenas,

parece que ya lo he solucionado.

En otro nodo de la Taxonomia que habíamos creado posteriormente, no estaba el Role Fábrica, ya que no debía tener acceso ni de lectura ni de escritura. Al añadir el Role y volverlo a eliminar ya no ha dado mas el error.
Parece que los nodos creados posteriormente a la creación del Role, no procesan bien los permisos de usuario y de rol.

Saludos...

Jordi

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Fri Sep 03, 2010 8:39 am
by jllort
Curioso esto, si consigues identificar la "logica" por la cual podemos reproducir el problema dínoslo.

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Fri Sep 03, 2010 11:05 am
by ollerfco
Buenas...

para reproducirlo he hecho lo siguiente:

Desde la cuenta de administrador:
Añado un nuevo rol y un nuevo usuario con ese rol. Assigno a un nodo de la taxonomia permisos de lectura para ese rol. Subo un documento y le asigno una palabra clave y permisos de lectura para el nuevo usuario.

Desde la cuenta del nuevo usuario:
Hago una búsqueda de la palabra clave y aparece el documento.

Desde la cuenta administrador:
Muevo el nuevo documento a otro nodo de la taxonomia donde nunca se ha asignado ningun tipo de permiso para el nuevo rol.

Desde la cuenta del nuevo usuario:
Hago una búsqueda de la palabra clave y salta el error.

Pera solucionarlo:

Desde la cuenta de administrador:
Asigno al nodo donde reside ahora el fichero permisos de lectura para el nuevo rol
Quito los permisos de lectura del nuevo rol.

Desde la cuenta de usuario:
Hago una búsqueda de la palabra clave y no salta el error.


Saludos.


Jordi

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Tue Sep 14, 2010 12:15 pm
by pavila
Cuando dices:
Desde la cuenta administrador:
Muevo el nuevo documento a otro nodo de la taxonomia donde nunca se ha asignado ningun tipo de permiso para el nuevo rol.
Te refieres a que creas una nueva carpeta sin permisos de lectura para el usuario creado anteriormente?

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Tue Sep 14, 2010 1:40 pm
by ollerfco
Exacto,

creo una nueva carpeta a la que no asigno ningún permiso (ya que no quiero que el nuevo usuario tenga acceso a los documentos que voy a guardar en esta carpeta).

Saludos!

Jordi

Re: Error en la búsqueda [SOLUCIONADO]

PostPosted:Sun Sep 19, 2010 8:28 am
by pavila
En la versión 5 de OpenKM lo he solucionado. Esta semana actualizaré la demo con los últimos cambios y mejoras.