• Problemas con Ldap

  • OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
OpenKM tiene muchas características interesantes, pero es necesario un proceso de configuración para mostrar todo su potencial.
Forum rules: Por favor, antes de preguntar algo consulta el wiki de documentación o utiliza la función de búsqueda del foro. Recuerda que no tenemos una bola de cristal ni poderes mentales, o sea que que para informar sobre un error es necesario que nos indiques tanto la versión de OpenKM que usas como la del navegador y sistema operativo. Para más información consulta Cómo informar de fallos de forma efectiva.
 #11607  by tgarijo
 
Buenas tardes me llamo Tomas y tengo un problema con ldap

Me da esta excepcion cuando logeo un usuario

Indicarles que tengo los usuarios en unidades organizativas, pero yo a traves de utilidades ldap hago consultas con filtro y saco sus datos.

Code: Select all
16:45:40,356 ERROR [[/OpenKM]] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.openkm.frontend.client.bean.GWTWorkspace com.openkm.frontend.client.service.OKMWorkspaceService.getUserWorkspace() throws com.openkm.frontend.client.OKMException' threw an unexpected exception: java.lang.NullPointerException
	at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	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:524)
	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:662)
Caused by: java.lang.NullPointerException
	at com.openkm.servlet.frontend.WorkspaceServlet.getUserWorkspace(WorkspaceServlet.java:306)
	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:562)
	... 24 more
El usuario se logea bien pero me faltan todos los menus, los arboles de las carpetas, etc.
Una vez logeado en el navegador me lanza el siguiente error
Error de comunicación con el servidor (getUserWorkspace)


mis ficheros de configuracion son los siguientes


OpenKm.cfg
Code: Select all
#system.openoffice.path=/usr/lib/openoffice
#system.imagemagick.convert=/usr/bin/convert
#system.swftools.pdf2swf=/usr/bin/pdf2swf
system.swftools.pdf2swf=/usr/local/bin/pdf2swf
system.antivir=/usr/bin/clamscan
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl=create
#application.url=http://localhost:8080/OpenKM/com.openkm.frontend.Main/index.jsp
system.login.lowercase=on

default.user.role=UserRole
default.admin.role=AdminRole

system.login.lowercase=on
principal.adapter=com.openkm.principal.LdapPrincipalAdapter

principal.ldap.server=ldap://192.168.3.5
principal.ldap.security.principal=CN=AdminUser,cn=users,dc=clickonline,dc=local
principal.ldap.security.credentials=pass

principal.ldap.user.search.base=ou=bussines,dc=clickonline,dc=local
principal.ldap.user.search.filter=(objectclass=person)
principal.ldap.user.attribute=cn

principal.ldap.role.search.base=ou=bussines,dc=clickonline,dc=local
principal.ldap.role.search.filter=(objectclass=group)
principal.ldap.role.attribute=cn

#principal.ldap.mail.search.base=cn={0},ou=bussines,dc=clickonline,dc=local
principal.ldap.mail.search.base=ou=bussines,dc=clickonline,dc=local
principal.ldap.mail.search.filter=(objectclass=person)
principal.ldap.mail.attribute=mail

#principal.ldap.users.by.role.search.filter=(&(objectClass=group)(cn={0}))
#principal.ldap.roles.by.user.search.filter=(&(objectClass=group)(cn={0}))
principal.ldap.users.by.role.search.filter=(objectClass=group)
principal.ldap.roles.by.user.search.filter=(objectClass=group)

principal.ldap.users.by.role.search.base=,ou=bussines,dc=clickonline,dc=local
#principal.ldap.users.by.role.search.base=cn={0},ou=bussines,dc=clickonline,dc=local
principal.ldap.users.by.role.search.filter=(objectclass=group)
principal.ldap.users.by.role.attribute=member

#principal.ldap.roles.by.user.search.base=cn={0},ou=bussines,dc=clickonline,dc=local
principal.ldap.roles.by.user.search.base=ou=bussines,dc=clickonline,dc=local
principal.ldap.roles.by.user.search.filter=(objectClass=person)
principal.ldap.roles.by.user.attribute=memberOf

chat.enabled=on
chat.autologin=on
login-config.xml
Code: Select all
 <application-policy name="OpenKM">
      <authentication>
        <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required">
          <module-option name="java.naming.provider.url">ldap://192.168.3.5</module-option>
          <module-option name="bindDN">cn=AdminUser,cn=Users,dc=clickonline,dc=local</module-option>
          <module-option name="java.naming.security.authentication">simple</module-option>
          <module-option name="bindCredential">pass</module-option>

          <module-option name="baseCtxDN">OU=bussines,DC=clickonline,DC=local</module-option>
          <module-option name="baseFilter">(sAMAccountName={0})</module-option>
          <!--module-option name="matchOnUserDN">false</module-option-->

          <module-option name="rolesCtxDN">OU=bussines,DC=clickonline,DC=local</module-option>
          <module-option name="roleFilter">(member={1})</module-option>
          <module-option name="roleAttributeIsDN">false</module-option>
          <module-option name="roleAttributeID">cn</module-option>
          <!--module-option name="roleNameAttributeID">cn</module-option-->

          <module-option name="roleRecursion">-1</module-option>
          <module-option name="searchScope">SUBTREE_SCOPE</module-option>
          <module-option name="defaultRole">UserRole</module-option>
          <module-option name="allowEmptyPasswords">false</module-option>

        </login-module>
      </authentication>
    </application-policy>
Espero que me puedan ayudar.

Saludos y muchas gracias
 #11619  by jllort
 
Si se logea bien el login-config.xml esta bien y nos podemos olvidar de esto.
Estas en la version 5.1.x ? en este caso despues de la primera ejecución la configuracion ya no esta en el OpenKM.cfg sino en base de datos y del fichero
OpenKM.cfg lo puedes borrar todo menos
Code: Select all
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl=create
Confirma primero de que versión estamos hablando.
 #11627  by tgarijo
 
Gracias jllor por tu respuesta

la version es OpenKM-5.1.6_JBoss-4.2.3.GA

Saludos
 #11632  by jllort
 
En esta version de OpenKM debes concentrarte una vez iniciada la aplicación por primera vez en modificar los paramtros desde la administración y en el fichero OpenKM.cfg deja unicamente estos dos:
Code: Select all
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl=none
 #11650  by pavila
 
Ajunto a este post hay una aplicación que funciona en línea de comandos y que te permite verificar rápidamente si la configuración de LDAP es correcta. Pon este JAR en el mismo directorio donde se encuentra en fichero de configuración OpenKM.cfg y la ejecutas con:
Code: Select all
$ java -jar testLdap.jar
Luego podrás ver las distintas optiones que tiene.
Attachments
Utilidad de testeo de LDAP
(358.87 KiB) Downloaded 524 times
 #11667  by tgarijo
 
Hola,

He dejado los dos parametros en el OpenKm.cfg y he establecido los valores en Administracion, solo me logea como okmAdmin. Con los usuarios del Directorio Activo no logea a diferencia cuando tenia los datos en el Openkm.cfg que logeaba los usuarios de AD pero con los problemas de inicio de este hilo.

Envio pantallazo.

Con respecto a la utilidad que me enviastes pavila con la opcion getUsers, me saca los usuarios, con getRoles me saca los grupos, pero con getUsersByRole
getRolesByUser no me saca nada.

Saludos y muchas gracias.

PD: Estoy programando con los webservices y soy capaz de logearme crear carpetas, etc, etc con los datos en el OpenKm.cfg. Definiendo los datos en Administracion, los webservices no me funcionan.
Attachments
Pantallazo.png
Pantallazo.png (144.06 KiB) Viewed 5135 times
 #11676  by jllort
 
Si no te logea los usuarios el problema lo tienes en el login-config.xml ( recuerda que hay que reiniciar el jboss cada vez que modificas este fichero para que los cambios tengan efecto ).
 #11693  by tgarijo
 
Hola a Todos

He conseguido que logen los usuarios pero me sigue dando el mismo error que al principio de este hilo.

la excepcion es
Code: Select all
17:47:15,420 ERROR [[/OpenKM]] Exception while dispatching incoming RPC call
com.google.gwt.user.server.rpc.UnexpectedException: Service method 'public abstract com.openkm.frontend.client.bean.GWTWorkspace com.openkm.frontend.client.service.OKMWorkspaceService.getUserWorkspace() throws com.openkm.frontend.client.OKMException' threw an unexpected exception: java.lang.NullPointerException
	at com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:378)
	at com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:581)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:207)
	at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:243)
	at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62)
	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:524)
	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:662)
Caused by: java.lang.NullPointerException
	at com.openkm.servlet.frontend.WorkspaceServlet.getUserWorkspace(WorkspaceServlet.java:306)
	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:562)
	... 24 more
17:47:15,821 WARN  [DocConverter] system.openoffice.path not configured
17:47:15,822 WARN  [DocConverter] and also system.openoffice.server not configured
y envio un pantallazo del entorno


login-config.xml

Code: Select all
<application-policy name="OpenKM">
  <authentication>
    <login-module code="org.jboss.security.auth.spi.LdapExtLoginModule" flag="required" >
      <module-option name="java.naming.provider.url">ldap://192.168.3.5:389</module-option>
      <module-option name="bindDN">CN=iusr_director,cn=users,dc=clickonline,dc=local</module-option>
      <module-option name="java.naming.security.authentication">simple</module-option>
      <module-option name="bindCredential">orzahgB!</module-option>
      <module-option name="baseCtxDN">cn=users,dc=clickonline,dc=local</module-option>
      <module-option name="baseFilter">(sAMAccountName={0})</module-option>
      <module-option name="rolesCtxDN">cn=users,dc=clickonline,dc=local</module-option>
      <module-option name="roleFilter">(member={1})</module-option>
      <module-option name="roleAttributeID">cn</module-option>
      <module-option name="roleAttributeIsDN">false</module-option>
      <module-option name="roleRecursion">2</module-option>
      <module-option name="searchScope">ONELEVEL_SCOPE</module-option>
      <module-option name="defaultRole">UserRole</module-option>
      <module-option name="allowEmptyPasswords">false</module-option>
      <module-option name="debug">true</module-option>
    </login-module>
  </authentication>
</application-policy>
OpenKM.cfg
Code: Select all
hibernate.dialect=org.hibernate.dialect.HSQLDialect
hibernate.hbm2ddl=none
Attachments
Pantallazo-1.png
Pantallazo-1.png (91.09 KiB) Viewed 5106 times
 #11712  by jllort
 
El login config.java ya lo tienes bien, ahora hay que centrarse en los parametros de configuración ( segundo icono por la izquierda desde la administración )

Ahora mismo te esta fallando esta llamada:
Code: Select all
workspace.setRoleList(OKMAuth.getInstance().getRolesByUser(null, user.getId()));
Tienes que concentrarte en las propiedades del ldap que sacan los roles a partir del usuario ( algo esta mal ahí ) piensa que necesitas configurar 3 parametros
Code: Select all
principal.ldap.users.by.role.search.base=cn={0},cn=users,dc=clickonline,dc=local
principal.ldap.users.by.role.search.filter=(objectclass=group)
principal.ldap.users.by.role.attribute=member
Esto de arriba siempre y cuando los roles esten definidos en ese nodo, sino tendras que cambiar el nodo base

About Us

OpenKM is part of the management software. A management software is a program that facilitates the accomplishment of administrative tasks. OpenKM is a document management system that allows you to manage business content and workflow in a more efficient way. Document managers guarantee data protection by establishing information security for business content.