Failed to instantiate [org.apereo.cas.redis.core.RedisModulesOperations]: Factory method 'redisModulesOperations' threw exception: .../redis/modules/LettuceRedisModulesOperations

209 views
Skip to first unread message

Frédéric Dussurget

unread,
Dec 19, 2024, 10:53:43 PM12/19/24
to CAS Community
Hi, I still cannot run v7.2.X because of LettuceRedisModulesOperations. It might be linked with the redis ticket registry deps ?

My context :
- redis for all (tickets, services and mfa devices : gauth and webauthn)

Stack :
        Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'logoutManager' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutManagementConfiguration.class]: Unsatisfied dependency expressed through method 'logoutManager' parameter 0: Error creating bean with name 'logoutExecutionPlan' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanConfiguration.class]: Unsatisfied dependency expressed through method 'logoutExecutionPlan' parameter 0: Error creating bean with name 'casCoreLogoutExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'casCoreLogoutExecutionPlanConfigurer' parameter 0: Error creating bean with name 'descendantTicketsLogoutPostProcessor' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'descendantTicketsLogoutPostProcessor' parameter 3: Error creating bean with name 'ticketRegistry' defined in class path resource [org/apereo/cas/config/CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryCoreConfiguration.class]: Failed to instantiate [org.apereo.cas.ticket.registry.TicketRegistry]: Factory method 'ticketRegistry' threw exception with message: Error creating bean with name 'redisModulesOperations' defined in class path resource [org/apereo/cas/config/CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryModulesConfiguration.class]: Failed to instantiate [org.apereo.cas.redis.core.RedisModulesOperations]: Factory method 'redisModulesOperations' threw exception with message: org/apereo/cas/redis/modules/LettuceRedisModulesOperations

[...]

Caused by: java.lang.ClassNotFoundException: org.apereo.cas.redis.modules.LettuceRedisModulesOperations
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1353) ~[catalina.jar:10.1.15]
        at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1165) ~[catalina.jar:10.1.15]
        at org.apereo.cas.config.CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryModulesConfiguration.lambda$redisModulesOperations$0(CasRedisTicketRegistryAutoConfiguration.java:343) ~[cas-server-support-redis-ticket-registry-7.2.0-RC3.jar:7.2.0-RC3]

Ray Bon

unread,
Dec 20, 2024, 3:25:28 AM12/20/24
to cas-...@apereo.org
Frédéric,

Check for config key name changes.
They sometimes change between versions.

You can also delete your $USER/.m2/repository (or a sub portion of it that includes cas).

Ray

Frédéric Dussurget

unread,
Jan 8, 2025, 6:26:27 AM1/8/25
to CAS Community, Ray Bon
Hi Ray, thank you for your answer,

Actually after having looked at this source code : 

I added this dep :
    implementation "org.apereo.cas:cas-server-support-redis-modules"

I've got a new error (see below the full stack). It is as my redis server would not support Redis Modules, but that is not the cas as I'm running this version of redis server :
Redis server v=6.0.16 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=775b9554bbeb575e
(redis server supports modules since v4 ...)

Do I need to :
add any other depedency at build time ?
load any module in redis server ?

Is cas server trying to dinamically load any module into redis server ?

Any idea ?

Regards,

for info, here is redis ticket registry conf :
cas:
  server:
    name: https://blahblah.com
    prefix: ${cas.server.name}/cas

  ticket:
    registry:
      redis: &REDIS_SETTINGS
        host: localhost
        port: 6379
        username: default
        password: blahblahblah
        sentinel:
          node[0]: xx.yy.zz.30:26379
          node[1]: xx.yy.zz.31:26379
          node[2]: xx.yy.zz.32:26379
          master: instancecas
      redis.crypto.encryption.key: blahblahblah
      redis.crypto.signing.key: blahblahblah
      redis.crypto.enabled: true
      redis.queue-identifier: cas-node-blah

The log stack :

2025-01-08 11:02:43,654 WARN [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext] - <Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'defaultCasEventListener' defined in class path resource [org/apereo/cas/config/CasCoreEventsAutoConfiguration$CasCoreEventsListenerConfiguration.class]: Unsatisfied dependency expressed through method 'defaultCasEventListener' parameter 4: Error creating bean with name 'logoutManager' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutManagementConfiguration.class]: Unsatisfied dependency expressed through method 'logoutManager' parameter 0: Error creating bean with name 'logoutExecutionPlan' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanConfiguration.class]: Unsatisfied dependency expressed through method 'logoutExecutionPlan' parameter 0: Error creating bean with name 'casCoreLogoutExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'casCoreLogoutExecutionPlanConfigurer' parameter 0: Error creating bean with name 'descendantTicketsLogoutPostProcessor' defined in class path resource [org/apereo/cas/config/CasCoreLogoutAutoConfiguration$CasCoreLogoutExecutionPlanBaseConfiguration.class]: Unsatisfied dependency expressed through method 'descendantTicketsLogoutPostProcessor' parameter 3: Error creating bean with name 'ticketRegistry' defined in class path resource [org/apereo/cas/config/CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryCoreConfiguration.class]: Failed to instantiate [org.apereo.cas.ticket.registry.TicketRegistry]: Factory method 'ticketRegistry' threw exception with message: Error creating bean with name 'redisModulesOperations' defined in class path resource [org/apereo/cas/config/CasRedisTicketRegistryAutoConfiguration$RedisTicketRegistryModulesConfiguration.class]: Failed to instantiate [org.apereo.cas.redis.core.RedisModulesOperations]: Factory method 'redisModulesOperations' threw exception with message: Redis server does not support Redis Modules>

Prakash Thapa

unread,
Jan 12, 2026, 9:31:46 AM (6 days ago) Jan 12
to CAS Community, Frédéric Dussurget, Ray Bon
Setting the config 'cas.ticket.registry.redis.enable-redis-search' as false will resolve the build issue. However, this will turn off the redis indexing, which is not the actual solution. I have also ran into same error and looking for the solution.
Reply all
Reply to author
Forward
0 new messages