I use Apereo CAS from 3.x version. I decide to switch from CAS 5.3.x to 6.6.x.
We use multiple dependencies for our service such as LDAP. We don't have any problem to build and run CAS 6.6.14 and we change all property from 5.3.x to 6.6.14 and everything is working very well.
But for CAS Management we have one problem. after use ./gradlew run with the below config we got a error like this. I think CAS management docs are not updated according to 6.6.x version. Also they are very short.
2023-12-23 16:22:14,742 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 'ldapAuthenticationEventExecutionPlanConfigurer' defined in class path resource [org/apereo/cas/config/LdapAuthenticationConfiguration$LdapAuthenticationPlanConfiguration.class]: Unsatisfied dependency expressed through method 'ldapAuthenticationEventExecutionPlanConfigurer' parameter 1; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.apereo.cas.authentication.principal.PrincipalResolver' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Qualifier(value="defaultPrincipalResolver")}>
2023-12-23 16:22:19,896 ERROR [org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter] - <
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 1 of method ldapAuthenticationEventExecutionPlanConfigurer in org.apereo.cas.config.LdapAuthenticationConfiguration$LdapAuthenticationPlanConfiguration required a bean of type 'org.apereo.cas.authentication.principal.PrincipalResolver' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Qualifier(value="defaultPrincipalResolver")
Action:
Consider defining a bean of type 'org.apereo.cas.authentication.principal.PrincipalResolver' in your configuration.
>
> Task :run FAILED
FAILURE: Build failed with an exception.
Our CAS management config:
cas.server.name=
https://cas.mbsco.local:8443/cas.server.prefix=${
cas.server.name}/cas
server.port=8080
mgmt.server-name=
https://cas.mbsco.local:8080server.context-path=/cas-management
mgmt.admin-roles[0]=ROLE_ADMIN
mgmt.user-properties-file=classpath:user-details.properties
logging.config=file:/etc/cas/config/log4j2-management.xml
cas.service-registry.core.init-from-json=false
cas.service-registry.json.location=file:/etc/cas/services
cas.service-registry.jpa.health-query=SELECT 1 FROM INFORMATION_SCHEMA.VIEWS
cas.service-registry.jpa.url=jdbc:mariadb://
127.0.0.1:3306/cas2cas.service-registry.jpa.user=root
cas.service-registry.jpa.password=
cas.service-registry.jpa.ddl-auto=create
cas.service-registry.jpa.dialect=org.hibernate.dialect.MariaDBDialect
cas.service-registry.jpa.leak-threshold=5
cas.service-registry.jpa.autocommit=true
cas.service-registry.jpa.driver-class=org.mariadb.jdbc.Driver
cas.service-registry.jpa.pool.min-size=20
cas.service-registry.jpa.pool.max-size=100
cas.service-registry.jpa.pool.max-wait=10000
cas.service-registry.jpa.idle-timeout=5000
mgmt.ldap.ldap-url=ldap://
192.168.10.10mgmt.ldap.bind-dn=cn=manager,dc=example,dc=com
mgmt.ldap.bind-credential=ldap_manager_password
mgmt.ldap.use-start-tls=false
mgmt.ldap.subtree-search=true
mgmt.ldap.ldap-authz.allow-multiple-results=true
mgmt.ldap.ldap-authz.base-dn=dc=example,dc=com
mgmt.ldap.ldap-authz.group-attribute=cn
mgmt.ldap.ldap-authz.group-filter=(memberUid={user})
mgmt.ldap.ldap-authz.group-base-dn=dc=example,dc=com
mgmt.ldap.ldap-authz.search-filter=(uid={user})
And we added this dependencies:
implementation "org.apereo.cas:cas-server-support-jpa-service-registry"
implementation "org.apereo.cas:cas-server-support-ldap"
implementation "org.apereo.cas:cas-server-support-jdbc-drivers"