Page 1 of 1

Problemas con Ldap

PostPosted:Thu Jul 21, 2011 2:56 pm
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

Re: Problemas con Ldap

PostPosted:Fri Jul 22, 2011 10:44 am
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.

Re: Problemas con Ldap

PostPosted:Fri Jul 22, 2011 11:21 am
by tgarijo
Gracias jllor por tu respuesta

la version es OpenKM-5.1.6_JBoss-4.2.3.GA

Saludos

Re: Problemas con Ldap

PostPosted:Sat Jul 23, 2011 6:40 pm
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

Re: Problemas con Ldap

PostPosted:Mon Jul 25, 2011 8:03 pm
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.

Re: Problemas con Ldap

PostPosted:Tue Jul 26, 2011 8:34 am
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.

Re: Problemas con Ldap

PostPosted:Wed Jul 27, 2011 6:20 am
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 ).

Re: Problemas con Ldap

PostPosted:Thu Jul 28, 2011 3:54 pm
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

Re: Problemas con Ldap

PostPosted:Tue Aug 02, 2011 7:45 am
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