Skip to content

NullPointerException whild logging in with LDAP credentials #69

@conradbekondo

Description

@conradbekondo

Bug Description
I configured my Knowage instance to use LDAP authentication + authorization. The authentication seems to work from looking at the logs here from the LDAP server container

ldap-1         | 6943f139 conn=1058 fd=12 ACCEPT from IP=172.21.0.4:47184 (IP=0.0.0.0:389)
ldap-1         | 6943f139 conn=1058 op=0 BIND dn="uid=jdoe,ou=PEOPLE,dc=record,dc=cm" method=128
ldap-1         | 6943f139 conn=1058 op=0 BIND dn="uid=jdoe,ou=PEOPLE,dc=record,dc=cm" mech=SIMPLE ssf=0
ldap-1         | 6943f139 conn=1058 op=0 RESULT tag=97 err=0 text=
ldap-1         | 6943f139 conn=1058 op=1 SRCH base="uid=jdoe,ou=PEOPLE,dc=record,dc=cm" scope=2 deref=3 filter="(objectClass=organizationalPerson)"
ldap-1         | 6943f139 conn=1058 op=1 SRCH attr=nsRole uid objectClass givenName gn sn cn mail memberof 1.1
ldap-1         | 6943f139 conn=1058 op=1 SEARCH RESULT tag=101 err=0 nentries=1 text

on attempting to login I get error logs from the Knowage container like here ( /home/knowage/apache-tomcat/logs/global/knowage.2025-12-18.log)

2025-12-18T12:19:05,913+00:00 [79e836d8-0708-4fde-b18d-b78ea0028f05] FATAL [http-nio-8080-exec-1] [Spago.trace:142] [601eb34a-fab1-44a7-959b-5006f01306cf/] [knowage] []
EMFExceptionHandler::handleException:
it.eng.spagobi.services.security.exceptions.SecurityException: Reading user information... ERROR
        at it.eng.spagobi.commons.services.LoginModule.service(LoginModule.java:231)
        at it.eng.spago.dispatching.module.DefaultPage.invokeServiceBusiness(DefaultPage.java:352)
        at it.eng.spago.dispatching.module.DefaultPage.nextStep(DefaultPage.java:302)
        at it.eng.spago.dispatching.module.DefaultPage.service(DefaultPage.java:202)
        at it.eng.spago.dispatching.module.ModuleCoordinator.service(ModuleCoordinator.java:102)
        at it.eng.spago.dispatching.httpchannel.AdapterHTTP.service(AdapterHTTP.java:432)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:142)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:197)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.utilities.filters.AntiInjectionFilter.doFilter(AntiInjectionFilter.java:48)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.commons.filters.ProfileFilter.doFilter(ProfileFilter.java:203)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.security.OAuth2.OAuth2Filter$NoFlowManager.manage(OAuth2Filter.java:189)
        at it.eng.spagobi.security.OAuth2.OAuth2Filter.doFilter(OAuth2Filter.java:228)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.commons.filters.SpagoBICoreCheckSessionFilter.doFilter(SpagoBICoreCheckSessionFilter.java:97)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.security.utils.CspFilter.doFilter(CspFilter.java:43)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.spagobi.utilities.filters.EncodingFilter.doFilter(EncodingFilter.java:58)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at it.eng.knowage.utils.filters.LoggerSetupFilter.doFilter(LoggerSetupFilter.java:50)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at org.apache.logging.log4j.web.Log4jServletFilter.doFilter(Log4jServletFilter.java:71)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:569)
        at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:223)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:712)
        at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584)
        at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:251)
        at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:202)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:166)
        at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:128)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:569)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:127)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:656)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:397)
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:935)
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1833)
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:975)
        at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:493)
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
        at java.base/java.lang.Thread.run(Thread.java:840)
Caused by: java.lang.NullPointerException: Cannot invoke "it.eng.spagobi.profiling.bean.SbiUser.getCommonInfo()" because "user" is null
        at it.eng.spagobi.commons.services.LoginModule.checkCodeMfa(LoginModule.java:439)
        at it.eng.spagobi.commons.services.LoginModule.service(LoginModule.java:217)
        ... 163 more

To Reproduce
Steps to reproduce the behavior:

  1. Deploy with docker using the knowagelabs/knowage-server-docker:9.1-SNAPSHOT image, using the docker-compose snippet below
# reduced for brevity
  knowage_app:
      image: knowagelabs/knowage-server-docker:9.1-SNAPSHOT
      environment:
        DB_USER: ${CACHE_USER}
        DB_PASS: ${CACHE_PASS}
        DB_ROOT_PASS: ${CACHE_ROOT_PASS}
        DB_HOST: cache
        DB_PORT: 3306
        DB_DB: ${CACHE_DB_NAME}
        PASSWORD_ENCRYPTION_SECRET: ${PASSWORD_ENCRYPTION_SECRET}
        HMAC_KEY: ${HMAC_KEY}
        SENSIBLE_DATA_ENCRYPTION_SECRET: ${SENSIBLE_DATA_ENCRYPTION_SECRET}
        CACHE_DB_DB: ${CACHE_DB_NAME}
        CACHE_DB_PORT: 3306
        CACHE_DB_USER: ${CACHE_USER}
        CACHE_DB_PASS: ${CACHE_PASS}
        CACHE_DB_HOST: cache
        JAVA_OPTS: -Dldap.config=/opt/tomcat/ldap.properties
      expose:
        - 8080
      ports:
        - "8080:8080"
      networks:
        - ldap_net
        - backend
      depends_on:
        - cache
        - db
        - ldap
      restart: always
      volumes:
        - ./knowage/resources:/home/knowage/apache-tomcat/resources
        - ./knowage/logs:/home/apache-tomcat/logs:rw
        - ./knowage/ldap.properties:/opt/tomcat/ldap.properties:ro
  cache:
      image: mysql:8.0.41-debian
      restart: always
      networks:
        - meta_net
        - backend
      environment:
        MYSQL_USER: ${CACHE_USER}
        MYSQL_PASSWORD: ${CACHE_PASS}
        MYSQL_ROOT_PASSWORD: ${CACHE_ROOT_PASS}
        MYSQL_DATABASE: ${CACHE_DB_NAME}
      expose:
        - 3306
      healthcheck:
        test: ["CMD", "/usr/local/bin/healthcheck.sh", "--user=root", "--password=$MYSQL_ROOT_PASSWORD"]
        # test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
        interval: 30s
        timeout: 10s
        retries: 5
  ldap:
      image: osixia/openldap:latest
      environment:
        LDAP_ORGANISATION: Record
        LDAP_DOMAIN: record.cm
        LDAP_ADMIN_PASSWORD: xxx
        LDAP_TLS: "false"
        LDAP_BASE_DN: dc=record,dc=cm
      networks:
        - ldap_net
      expose:
        - 389
        - 636
  ldap_ui:
    image: osixia/phpldapadmin:latest
    container_name: ldap_ui
    environment:
      PHPLDAPADMIN_LDAP_HOSTS: ldap
      PHPLDAPADMIN_HTTPS: "false"
    networks:
      - ldap_net
    expose:
      - 80
    ports:
      - "5000:80"
    restart: unless-stopped
    depends_on:
      - ldap
networks:
  ldap_net:
    driver: bridge
  meta_net:
    driver: bridge

and ldap.properties file

INITIAL_CONTEXT_FACTORY=com.sun.jndi.ldap.LdapCtxFactory
PROVIDER_URL=ldap://ldap:389
SECURITY_AUTHENTICATION=simple
DN_PREFIX=uid=
DN_POSTFIX=,ou=PEOPLE,dc=record,dc=cm
AUTHENTICATION_FILTER=(objectClass=organizationalPerson)
USER_ROLES_ATTRIBUTE_NAME=memberof
USER_ROLES_ATTRIBUTE_FIELD=cn
SUPERADMIN_ATTRIBUTE=cn=admin,ou=BI,dc=record,dc=cm
  1. Login as biadmin
  2. Configure the SPAGOBI.SECURITY.USER-PROFILE-FACTORY-CLASS.className to it.eng.spagobi.security.FullLdapSecurityServiceSupplier.
  3. Sign out
  4. Restart knowage container
  5. Login to the ldap_ui container from the browser using cn=admin,dc=record,dc=cm
  6. Create users using the following LDIF
# LDIF Export for dc=record,dc=cm
# Server: ldap (ldap)
# Search Scope: sub
# Search Filter: (objectClass=*)
# Total Entries: 8
#
# Generated by phpLDAPadmin (http://phpldapadmin.sourceforge.net) on December 18, 2025 12:45 pm
# Version: 1.2.5

version: 1

# Entry 1: dc=record,dc=cm
dn: dc=record,dc=cm
dc: record
o: Record
objectclass: top
objectclass: dcObject
objectclass: organization

# Entry 2: ou=BI,dc=record,dc=cm
dn: ou=BI,dc=record,dc=cm
objectclass: top
objectclass: organizationalUnit
ou: BI

# Entry 3: cn=admin,ou=BI,dc=record,dc=cm
dn: cn=admin,ou=BI,dc=record,dc=cm
cn: admin
description: BI Admins
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=jdoe,ou=PEOPLE,dc=record,dc=cm
uniquemember: uid=admin,ou=PEOPLE,dc=record,dc=cm

# Entry 4: cn=user,ou=BI,dc=record,dc=cm
dn: cn=user,ou=BI,dc=record,dc=cm
cn: user
description: BI Users
objectclass: groupOfUniqueNames
objectclass: top
uniquemember: uid=mdoe,ou=PEOPLE,dc=record,dc=cm
uniquemember: uid=admin,ou=PEOPLE,dc=record,dc=cm

# Entry 5: ou=PEOPLE,dc=record,dc=cm
dn: ou=PEOPLE,dc=record,dc=cm
objectclass: top
objectclass: organizationalUnit
ou: PEOPLE

# Entry 6: uid=admin,ou=PEOPLE,dc=record,dc=cm
dn: uid=admin,ou=PEOPLE,dc=record,dc=cm
cn: BI Admin
objectclass: inetOrgPerson
objectclass: top
sn: Admin
uid: admin
userpassword: {SSHA}BlyD9KrcpzIIYkHzKtQQKDWbf68MGYM+

# Entry 7: uid=jdoe,ou=PEOPLE,dc=record,dc=cm
dn: uid=jdoe,ou=PEOPLE,dc=record,dc=cm
cn: John Doe
givenname: John
mail: [email protected]
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: extensibleObject
objectclass: shadowAccount
sn: Doe
uid: jdoe
userpassword: {SSHA}uH/QCEtnKzSOnT1ybvoAL4w6ZxEzNK1l

# Entry 8: uid=mdoe,ou=PEOPLE,dc=record,dc=cm
dn: uid=mdoe,ou=PEOPLE,dc=record,dc=cm
cn: Mary Doe
employeetype: BI
mail: [email protected]
objectclass: inetOrgPerson
objectclass: top
objectclass: organizationalPerson
sn: Doe
uid: mdoe
userpassword: {SSHA}MrIczmLm7wAlF1UPkiL1DhgFqyp/u43t
  1. Change the password of any user you like
  2. Use the credentials of the user you altered, and sign in on Knowage

Expected behavior
The authentication/authorization process should proceed successfully and the user should be redirected to the dashboard

Screenshots

  • Docker compose logs
Image - Failed authentication screen Image - The configuration for security service supplier Image

Desktop (please complete the following information):

  • OS: Windows 11 64-bit
  • Browser: Opera GX
  • Version: 124.0.0.0

Additional context
Add any other context about the problem here.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions