Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Container output:
- ```text
- projectname-cas | s6-rc: info: service s6rc-oneshot-runner: starting
- projectname-cas | s6-rc: info: service s6rc-oneshot-runner successfully started
- projectname-cas | s6-rc: info: service fix-attrs: starting
- projectname-cas | s6-rc: info: service fix-attrs successfully started
- projectname-cas | s6-rc: info: service legacy-cont-init: starting
- projectname-cas | s6-rc: info: service legacy-cont-init successfully started
- projectname-cas | s6-rc: info: service cas: starting
- projectname-cas | s6-rc: info: service cas successfully started
- projectname-cas | s6-rc: info: service legacy-services: starting
- projectname-cas | s6-rc: info: service legacy-services successfully started
- projectname-cas | 2024-08-06 16:22:56,033 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validating CAS property sources and configuration for active profiles [[standalone]]. Please wait...>
- projectname-cas | 2024-08-06 16:22:56,052 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
- projectname-cas |
- projectname-cas | ____ ____ ___ ____ ___ ___ __ ____ _____
- projectname-cas | / T| \ / _]| \ / _] / \ / ] / T/ ___/
- projectname-cas | Y o || o )/ [_ | D ) / [_ Y Y / / Y o ( \_
- projectname-cas | | || _/Y _]| / Y _]| O | / / | |\__ T
- projectname-cas | | _ || | | [_ | \ | [_ | | / \_ | _ |/ \ |
- projectname-cas | | | || | | T| . Y| Tl ! \ || | |\ |
- projectname-cas | l__j__jl__j l_____jl__j\_jl_____j \___/ \____jl__j__j \___j
- projectname-cas |
- projectname-cas | CAS Version: 7.0.6
- projectname-cas | CAS Branch: 7.0.x
- projectname-cas | CAS Commit Id: 02ea13b3237f456b077e477044bac9a0d6218d13
- projectname-cas | CAS Build Date/Time: 2024-07-26T14:23:20.861751Z
- projectname-cas | Spring Boot Version: 3.2.1
- projectname-cas | Spring Version: 6.1.2
- projectname-cas | Java Home: /usr/lib/jvm/java-21-openjdk-amd64
- projectname-cas | Java Vendor: Ubuntu
- projectname-cas | Java Version: 21.0.3
- projectname-cas | Servlet Version: 6.0.0
- projectname-cas | JVM Free Memory: 80 MB
- projectname-cas | JVM Maximum Memory: 7 GB
- projectname-cas | JVM Total Memory: 308 MB
- projectname-cas | OS Architecture: amd64
- projectname-cas | OS Name: Linux
- projectname-cas | OS Version: 6.5.0-44-generic
- projectname-cas | OS Date/Time: 2024-08-06T16:22:58.311930841
- projectname-cas | OS Timezone: SystemClock[GMT]
- projectname-cas | OS Temp Directory: /tmp
- projectname-cas | ------------------------------------------------------------
- projectname-cas | Apache Tomcat Version: Apache Tomcat/10.1.26
- projectname-cas | ------------------------------------------------------------
- projectname-cas |
- projectname-cas |
- projectname-cas | 2024-08-06 16:22:58,378 INFO [org.apereo.cas.configuration.DefaultCasConfigurationPropertiesSourceLocator] - <Configuration files found at [/etc/cas/config] are [[file [/etc/cas/config/application.properties]]] under profile(s) [[standalone]]>
- projectname-cas | 2024-08-06 16:22:58,423 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validating CAS property sources and configuration for active profiles [[standalone]]. Please wait...>
- projectname-cas | 2024-08-06 16:22:58,602 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
- projectname-cas | 2024-08-06 16:22:58,603 INFO [org.apereo.cas.web.CasWebApplication] - <The following 1 profile is active: "standalone">
- projectname-cas | 2024-08-06 16:23:02,473 INFO [org.apereo.cas.tomcat.CasTomcatServletWebServerFactoryCustomizer] - <Activated embedded tomcat container HTTP port on [8080]>
- projectname-cas | 2024-08-06 16:23:03,815 WARN [com.zaxxer.hikari.HikariConfig] - <aef4239f-b078-455a-b241-fb25fa9fe0bf - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:07,517 WARN [com.zaxxer.hikari.HikariConfig] - <06146134-bdfe-4911-9c4f-9cb654569c24 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:09,381 WARN [com.zaxxer.hikari.HikariConfig] - <c93d7a92-1f96-4577-bf4e-f8258e8a0500 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:09,579 WARN [com.zaxxer.hikari.HikariConfig] - <7928b6aa-69ca-47e5-a358-fa7ccdf9a349 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:09,979 WARN [com.zaxxer.hikari.HikariConfig] - <68c48841-68a1-4132-8dbf-c286ed2f6d67 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:10,501 WARN [com.zaxxer.hikari.HikariConfig] - <c2e08e16-26f0-4930-a8c0-bfaa2722d716 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:10,847 WARN [com.zaxxer.hikari.HikariConfig] - <2bb5f35c-70e3-470e-9bd5-095e63824c9b - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:14,785 WARN [com.zaxxer.hikari.HikariConfig] - <91045016-5125-4193-b3a9-d4e2e0de8bc8 - idleTimeout is close to or more than maxLifetime, disabling it.>
- projectname-cas | 2024-08-06 16:23:18,696 INFO [org.apereo.cas.web.CasWebApplication] - <Started CasWebApplication in 23.436 seconds (process running for 25.563)>
- projectname-cas | 2024-08-06 16:23:19,176 INFO [org.apereo.cas.services.mgmt.AbstractServicesManager] - <Loaded [0] service(s) from [JpaServiceRegistry].>
- projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <>
- projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <
- projectname-cas |
- projectname-cas |
- projectname-cas | ____ ___ ____ ___ __ __
- projectname-cas | | \ / _] / T| \ | T T
- projectname-cas | | D ) / [_ Y o || \ | | |
- projectname-cas | | / Y _]| || D Y| ~ |
- projectname-cas | | \ | [_ | _ || |l___, |
- projectname-cas | | . Y| T| | || || !
- projectname-cas | l__j\_jl_____jl__j__jl_____jl____/
- projectname-cas |
- projectname-cas | CAS is now running at https://projectname-cas.domain.tld/cas
- projectname-cas | >
- projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <>
- projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <Ready to process requests @ [2024-08-06T16:23:18.716Z]>
- projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validating CAS property sources and configuration for active profiles [[standalone]]. Please wait...>
- projectname-cas | 2024-08-06 16:23:20,511 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
- projectname-cas | 2024-08-06 16:23:26,057 INFO [org.apereo.inspektr.audit.support.JdbcAuditTrailManager] - <Cleaning audit records with query [DELETE FROM COM_AUDIT_TRAIL WHERE AUD_DATE < ?]>
- projectname-cas | 2024-08-06 16:23:26,065 INFO [org.apereo.inspektr.audit.support.JdbcAuditTrailManager] - <[0] records deleted.>
- projectname-cas | 2024-08-06 16:23:36,047 INFO [org.apereo.cas.services.mgmt.AbstractServicesManager] - <Loaded [0] service(s) from [JpaServiceRegistry].>
- projectname-cas | 2024-08-06 16:23:47,736 INFO [org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner] - <[0] expired tickets removed.>
- projectname-cas | 2024-08-06 16:23:48,017 ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/cas].[dispatcherServlet]] - <Servlet.service() for servlet [dispatcherServlet] in context with path [/cas] threw exception>
- projectname-cas | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springSessionRepositoryFilter' defined in class path resource [org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.class]: Unsatisfied dependency expressed through method 'springSessionRepositoryFilter' parameter 0: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
- projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
- projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.apereo.cas.logging.web.ThreadContextMDCServletFilter.doFilter(ThreadContextMDCServletFilter.java:100)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
- projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
- projectname-cas | at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:32)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
- projectname-cas | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
- projectname-cas | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:598)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
- projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
- projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
- projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
- projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
- projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
- projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
- projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
- projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
- projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
- projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
- projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
- projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
- projectname-cas | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
- projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
- projectname-cas | ... 50 more
- projectname-cas | Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
- projectname-cas | ... 74 more
- projectname-cas | 2024-08-06 16:23:48,035 ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/cas].[dispatcherServlet]] - <Servlet.service() for servlet [dispatcherServlet] threw exception>
- projectname-cas | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springSessionRepositoryFilter' defined in class path resource [org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.class]: Unsatisfied dependency expressed through method 'springSessionRepositoryFilter' parameter 0: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
- projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:632)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:410)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:330)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:267)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:222)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:308)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:149)
- projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
- projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
- projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
- projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
- projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
- projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
- projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
- projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
- projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
- projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
- projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
- projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
- projectname-cas | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
- projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
- projectname-cas | ... 39 more
- projectname-cas | Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
- projectname-cas | ... 63 more
- projectname-cas | 2024-08-06 16:23:48,036 ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost]] - <Exception Processing [ErrorPage[errorCode=0, location=/error]]>
- projectname-cas | org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'springSessionRepositoryFilter' defined in class path resource [org/springframework/session/config/annotation/web/http/SpringHttpSessionConfiguration.class]: Unsatisfied dependency expressed through method 'springSessionRepositoryFilter' parameter 0: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
- projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
- projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
- projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:632)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:410)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:330)
- projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:267)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:222)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:308)
- projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:149)
- projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
- projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
- projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
- projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
- projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
- projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
- projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
- projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
- projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
- projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
- projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
- projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
- projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
- projectname-cas | Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.session.jdbc.config.annotation.web.http.JdbcHttpSessionConfiguration': Unsatisfied dependency expressed through method 'setTransactionManager' parameter 0: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
- projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
- projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
- projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
- projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
- projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
- projectname-cas | ... 39 more
- projectname-cas | Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 8: transactionManagerConsent,ticketTransactionManager,inspektrAuditTransactionManager,transactionManagerGoogleAuthenticator,transactionManagerEvents,passwordlessTransactionManager,transactionManagerServiceReg,transactionManagerWebAuthn
- projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
- projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
- projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
- projectname-cas | ... 63 more
- ^CGracefully stopping... (press Ctrl+C again to force)
- [+] Stopping 1/1
- ✔ Container projectname-cas Stopped 3.7s
- canceled
- ```
- My build.gradle:
- ```
- import org.apache.tools.ant.taskdefs.condition.*
- import org.gradle.internal.logging.text.*
- import org.apereo.cas.metadata.*
- import java.nio.file.*
- import java.lang.reflect.*
- import org.gradle.internal.logging.text.*
- import static org.gradle.internal.logging.text.StyledTextOutput.Style
- buildscript {
- repositories {
- if (project.privateRepoUrl) {
- maven {
- url project.privateRepoUrl
- credentials {
- username = project.privateRepoUsername
- password = System.env.PRIVATE_REPO_TOKEN
- }
- }
- }
- mavenLocal()
- mavenCentral()
- gradlePluginPortal()
- maven {
- url 'https://oss.sonatype.org/content/repositories/snapshots'
- mavenContent { snapshotsOnly() }
- }
- maven {
- url "https://repo.spring.io/milestone"
- mavenContent { releasesOnly() }
- }
- }
- dependencies {
- classpath "org.springframework.boot:spring-boot-gradle-plugin:${project.springBootVersion}"
- classpath "io.freefair.gradle:maven-plugin:${project.gradleFreeFairPluginVersion}"
- classpath "io.freefair.gradle:lombok-plugin:${project.gradleFreeFairPluginVersion}"
- classpath "io.spring.gradle:dependency-management-plugin:${project.gradleDependencyManagementPluginVersion}"
- classpath "de.undercouch:gradle-download-task:${project.gradleDownloadTaskVersion}"
- classpath "org.apereo.cas:cas-server-core-api-configuration-model:${project.'cas.version'}"
- classpath "org.apereo.cas:cas-server-core-configuration-metadata-repository:${project.'cas.version'}"
- }
- }
- repositories {
- if (project.privateRepoUrl) {
- maven {
- url project.privateRepoUrl
- credentials {
- username = project.privateRepoUsername
- password = System.env.PRIVATE_REPO_TOKEN
- }
- }
- }
- mavenLocal()
- mavenCentral()
- maven { url 'https://oss.sonatype.org/content/repositories/releases' }
- maven {
- url 'https://oss.sonatype.org/content/repositories/snapshots'
- mavenContent { snapshotsOnly() }
- }
- maven {
- url "https://repository.apache.org/content/repositories/snapshots"
- mavenContent { snapshotsOnly() }
- }
- maven {
- url 'https://build.shibboleth.net/nexus/content/repositories/releases/'
- mavenContent { releasesOnly() }
- }
- maven {
- url "https://build.shibboleth.net/nexus/content/repositories/snapshots"
- mavenContent { snapshotsOnly() }
- }
- maven {
- url "https://repo.spring.io/milestone"
- mavenContent { releasesOnly() }
- }
- }
- apply plugin: "io.freefair.war-overlay"
- apply plugin: "war"
- apply plugin: "org.springframework.boot"
- apply plugin: "io.freefair.lombok"
- apply from: rootProject.file("gradle/springboot.gradle")
- apply from: rootProject.file("gradle/tasks.gradle")
- def out = services.get(StyledTextOutputFactory).create("cas")
- configurations {
- all {
- resolutionStrategy {
- cacheChangingModulesFor 0, "seconds"
- cacheDynamicVersionsFor 0, "seconds"
- preferProjectModules()
- def failIfConflict = project.hasProperty("failOnVersionConflict") && Boolean.valueOf(project.getProperty("failOnVersionConflict"))
- if (failIfConflict) {
- failOnVersionConflict()
- }
- if (project.hasProperty("tomcatVersion")) {
- eachDependency { DependencyResolveDetails dependency ->
- def requested = dependency.requested
- if (requested.group.startsWith("org.apache.tomcat") && requested.name != "jakartaee-migration") {
- dependency.useVersion("${tomcatVersion}")
- }
- }
- }
- }
- exclude(group: "cglib", module: "cglib")
- exclude(group: "cglib", module: "cglib-full")
- exclude(group: "org.slf4j", module: "slf4j-log4j12")
- exclude(group: "org.slf4j", module: "slf4j-simple")
- exclude(group: "org.slf4j", module: "jcl-over-slf4j")
- exclude(group: "org.apache.logging.log4j", module: "log4j-to-slf4j")
- }
- }
- war {
- entryCompression = ZipEntryCompression.STORED
- enabled = false
- }
- java {
- toolchain {
- languageVersion = JavaLanguageVersion.of(project.targetCompatibility)
- def chosenJvmVendor = null
- JvmVendorSpec.declaredFields.each { field ->
- if (field.type == JvmVendorSpec && Modifier.isStatic(field.getModifiers())) {
- if (field.name == project.jvmVendor?.toUpperCase()) {
- chosenJvmVendor = field.get(null)
- return
- }
- }
- }
- if (chosenJvmVendor != null) {
- vendor = chosenJvmVendor
- out.withStyle(Style.Success).println("Using ${chosenJvmVendor} as the JVM vendor for the Java toolchain")
- } else {
- out.withStyle(Style.Info).println("JVM vendor ${project.jvmVendor} is not recognized")
- }
- }
- }
- if (project.hasProperty("appServer")) {
- def appServer = project.findProperty('appServer') ?: ''
- out.withStyle(Style.Success).println("Building CAS version ${project.version} with application server ${appServer}")
- } else {
- out.withStyle(Style.Success).println("Building CAS version ${project.version} without an application server")
- }
- dependencies {
- /**
- * Do NOT modify the lines below or else you will risk breaking dependency management.
- **/
- implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")
- implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
- /**
- * Do NOT modify the lines below or else you will risk breaking the build.
- **/
- implementation "org.apereo.cas:cas-server-core-api-configuration-model"
- implementation "org.apereo.cas:cas-server-webapp-init"
- if (appServer == 'tomcat') {
- implementation "org.apereo.cas:cas-server-webapp-init"
- }
- developmentOnly "org.springframework.boot:spring-boot-devtools:${project.springBootVersion}"
- /**
- * CAS dependencies and modules may be listed here.
- *
- * There is no need to specify the version number for each dependency
- * since versions are all resolved and controlled by the dependency management
- * plugin via the CAS bom.
- **/
- implementation "org.apereo.cas:cas-server-support-consent-webflow"
- implementation "org.apereo.cas:cas-server-support-consent-jdbc"
- implementation "org.apereo.cas:cas-server-support-audit-jdbc"
- implementation "org.apereo.cas:cas-server-support-jdbc"
- implementation "org.apereo.cas:cas-server-support-throttle"
- implementation "org.apereo.cas:cas-server-support-throttle-jdbc"
- implementation "org.apereo.cas:cas-server-core-events-configuration"
- implementation "org.apereo.cas:cas-server-core-events"
- implementation "org.apereo.cas:cas-server-support-events-jpa"
- implementation "org.apereo.cas:cas-server-support-gauth"
- implementation "org.apereo.cas:cas-server-support-gauth-jpa"
- implementation "org.apereo.cas:cas-server-support-session-jdbc"
- implementation "org.apereo.cas:cas-server-support-passwordless-webflow"
- implementation "org.apereo.cas:cas-server-support-passwordless-jpa"
- implementation "org.apereo.cas:cas-server-support-jpa-hibernate"
- implementation "org.apereo.cas:cas-server-support-jdbc-drivers"
- implementation "org.apereo.cas:cas-server-support-jpa-service-registry"
- implementation "org.apereo.cas:cas-server-support-jpa-ticket-registry"
- implementation "org.apereo.cas:cas-server-support-webconfig"
- implementation "org.apereo.cas:cas-server-support-webauthn"
- implementation "org.apereo.cas:cas-server-support-webauthn-jpa"
- testImplementation "org.springframework.boot:spring-boot-starter-test"
- }
- ```
- gradle.properties:
- ```
- # This overlay project's version
- # For consistency and with no other effect, this is set to the CAS version itself.
- version=7.0.6
- # This is the CAS server version that will be deployed.
- # Versions typically are in the format of:
- # [Major].[Minor].[Patch].[Security]
- # For patch and security releases and unless explicitly stated otherwise, the below property
- # and NOTHING ELSE is the only change you usually need to make to upgrade your CAS deployment.
- cas.version=7.0.6
- # The Spring Boot version is very much tied to the CAS release 7.0.6
- # and must not be modified or upgraded out of band, as doing so would most likely
- # jeopardize the stability of your CAS deployment leading to unpredictable behavior.
- springBootVersion=3.2.1
- # The coordinates of this overlay project
- group=org.apereo.cas
- artifactId=cas-overlay
- # Before changing the JDK versions here, you must account for the following:
- # - Dependency Compatibility: Ensure that all libraries and frameworks you use are compatible with Java 21 and above.
- # - Environment Compatibility: Check that your deployment environments (e.g., servers, CI/CD pipelines, cloud services) support Java 21 and above.
- # Remember that this CAS build does and will only officially support Java 21. Do NOT change platform requirements unless
- # you really know what you are doing and are comfortable managing the deployment and its risks completely on your own.
- # This property defines the version of Java that your source code is written in.
- # It ensures that your code is compatible with the specified version of the Java language.
- # Gradle will expect your source code to be compatible with JDK 21.
- sourceCompatibility=21
- # This property specifies the version of the Java runtime that the compiled bytecode should be compatible with.
- # It ensures that the bytecode generated by the compiler will run on JDK 21.
- targetCompatibility=21
- # This property controls the JVM vendor that is used by Gradle toolchains.
- # You may want to build CAS using a Java version that is not supported for running Gradle
- # by setting this property to the vendor of the JDK you want to use.
- # If Gradle canât find a locally available toolchain that matches the requirements
- # of the build, it can automatically download one.
- # Options include: AMAZON, ADOPTIUM, JETBRAINS, MICROSOFT, ORACLE, SAP, BELLSOFT, etc.
- # Setting this to a blank or invalid value will force Gradle to use the JDK installation on the build machine.
- jvmVendor=AMAZON
- # This plugin controls how JDK distributions required by the Grtadle toolchain
- # are discovered, and downloaded when necessary.
- # Note that auto-provisioning of a JDK distribution only kicks in when auto-detection fails
- # to find a matching JDK, and auto-provisioning can only download new JDKs and is in no way
- # involved in updating any of the already installed ones.
- gradleFoojayPluginVersion=0.8.0
- gradleFreeFairPluginVersion=8.6
- gradleDependencyManagementPluginVersion=1.1.6
- # Include a launch script for executable WAR artifact
- # Setting this to true allows the final web application
- # to be fully executable on its own.
- executable=true
- # Use -tomcat, -jetty, -undertow for deployment to control the embedded server container
- # that will be used to deploy and manage your CAS deployment.
- # You should set this to blank if you want to deploy to an external container.
- # and want to set up, download and manage the container (i.e. Apache Tomcat) yourself.
- appServer=-tomcat
- # If you are using an embedded Apache Tomcat container to deploy and run CAS,
- # and need to override the Apache Tomcat version, uncomment the property below
- # and specify the the Apache Tomcat version, i.e. 10.1.26.
- # While enabled, this will override any and all upstream changes to
- # Apache Tomcat dependency management and you will be directly responsible to make
- # adjustments and upgrades as necessary. Use with caution, favor less work.
- # tomcatVersion=10.1.26
- # Settings to generate a keystore
- # used by the build to assist with creating
- # self-signed certificates for TLS
- certDir=/etc/cas
- serverKeystore=thekeystore
- exportedServerCert=cas.crt
- storeType=PKCS12
- # Location of the downloaded CAS Shell JAR
- shellDir=build/libs
- ivyVersion=2.5.2
- gradleDownloadTaskVersion=4.1.1
- # Include private repository
- # override these in user properties or pass in values from env on command line
- privateRepoUrl=
- privateRepoUsername=
- # Gradle build settings
- # Do NOT modify unless you know what you're doing!
- org.gradle.configureondemand=true
- org.gradle.caching=true
- org.gradle.parallel=true
- org.gradle.jvmargs=-Xms1024m -Xmx4048m -XX:TieredStopAtLevel=1
- org.gradle.unsafe.configuration-cache=false
- org.gradle.unsafe.configuration-cache-problems=warn
- ```
- settings.gradle:
- ```
- plugins {
- id "org.gradle.toolchains.foojay-resolver-convention" version "${gradleFoojayPluginVersion}"
- }
- rootProject.name = 'cas'
- ```
- etc/cas/config/application.properties
- ```
- cas.server.name=https://projectname-cas.domain.tld/
- cas.server.prefix=https://projectname-cas.domain.tld/cas
- cas.server.scope=domain.tld
- cas.server.tomcat.http[0].enabled=true
- cas.server.tomcat.http[0].port=8080
- cas.server.tomcat.http[0].redirect-port=443
- cas.server.tomcat.http[0].scheme=https
- server.tomcat.remoteip.remote-ip-header=X-Forwarded-For
- cas.webflow.auto-configuration.order=0
- cas.authn.attribute-repository.jdbc[0].order=1
- cas.authn.attribute-repository.jdbc[0].driver-class=org.mariadb.jdbc.Driver
- cas.authn.attribute-repository.jdbc[0].dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.attribute-repository.jdbc[0].password=redactedpassword
- cas.authn.attribute-repository.jdbc[0].url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.authn.attribute-repository.jdbc[0].user=casdata
- cas.authn.attribute-repository.jdbc[0].ddl-auto=update
- cas.authn.accept.order=1
- cas.authn.accept.enabled=false
- cas.authn.policy.any.enabled=false
- cas.authn.accept.password-encoder.encoding-algorithm=PBKDF2WithHmacSHA512
- cas.authn.accept.password-policy.groovy.location=/etc/cas/groovy/password-policy
- cas.authn.accept.principal-transformation.groovy.location=/etc/cas/groovy/principal-transformation
- cas.authn.accept.password-encoder.type=NONE
- cas.events.core.enabled=true
- cas.events.core.track-configuration-modifications=false
- cas.events.core.track-geolocation=false
- cas.events.jpa.enabled=true
- cas.events.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.events.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.events.jpa.password=redactedpassword
- cas.events.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.events.jpa.user=casdata
- cas.events.jpa.ddl-auto=update
- cas.tgc.crypto.encryption.key=< copied from auto generated log message >
- cas.tgc.crypto.signing.key=< copied from auto generated log message >
- cas.webflow.crypto.signing.key=< copied from auto generated log message >
- cas.webflow.crypto.encryption.key=< copied from auto generated log message >
- cas.jdbc.gen-ddl=true
- cas.audit.jdbc.ddl-auto=update
- cas.audit.jdbc.driver-class=org.mariadb.jdbc.Driver
- cas.audit.jdbc.dialect=org.hibernate.dialect.MariaDBDialect
- cas.audit.jdbc.password=redactedpassword
- cas.audit.jdbc.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.audit.jdbc.user=casdata
- cas.authn.jdbc.search[0].order=1
- cas.authn.jdbc.search[0].driver-class=org.mariadb.jdbc.Driver
- cas.authn.jdbc.search[0].dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.jdbc.search[0].table-users=persons
- cas.authn.jdbc.search[0].field-password=password
- cas.authn.jdbc.search[0].field-user=person_id
- cas.authn.jdbc.search[0].password-encoder.type=NONE
- cas.authn.jdbc.search[0].password=redactedpasswordextra
- cas.authn.jdbc.search[0].url=jdbc:mariadb://projectname-db:3306/projectname
- cas.authn.jdbc.search[0].user=projectname
- cas.authn.jdbc.search[0].principal-transformation.groovy.location=/etc/cas/groovy/jdbc-search
- cas.authn.core.service-authentication-resolution.order=0
- cas.authn.mfa.gauth.rank=1
- cas.authn.mfa.gauth.core.issuer=CASIssuer
- cas.authn.mfa.gauth.core.label=CASLabel
- cas.authn.mfa.gauth.core.scratch-codes.encryption.key=< copied from auto generated log message >
- cas.authn.mfa.gauth.crypto.encryption.key=< copied from auto generated log message >
- cas.authn.mfa.gauth.crypto.signing.key=< copied from auto generated log message >
- cas.authn.mfa.gauth.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.authn.mfa.gauth.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.mfa.gauth.jpa.password=redactedpassword
- cas.authn.mfa.gauth.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.authn.mfa.gauth.jpa.user=casdata
- cas.authn.mfa.gauth.jpa.ddl-auto=update
- cas.authn.mfa.web-authn.rank=2
- cas.authn.mfa.web-authn.core.application-id=projectname
- cas.authn.mfa.web-authn.core.relying-party-id=projectname
- cas.authn.mfa.web-authn.core.relying-party-name=projectname
- cas.authn.mfa.web-authn.jpa.ddl-auto=update
- cas.authn.mfa.web-authn.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.authn.mfa.web-authn.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.mfa.web-authn.jpa.password=redactedpassword
- cas.authn.mfa.web-authn.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.authn.mfa.web-authn.jpa.user=casdata
- cas.authn.mfa.web-authn.crypto.encryption.key=< copied from auto generated log message >
- cas.authn.mfa.web-authn.crypto.signing.key=< copied from auto generated log message >
- cas.authn.throttle.jdbc.ddl-auto=update
- cas.authn.throttle.jdbc.driver-class=org.mariadb.jdbc.Driver
- cas.authn.throttle.jdbc.dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.throttle.jdbc.password=redactedpassword
- cas.authn.throttle.jdbc.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.authn.throttle.jdbc.user=casdata
- cas.authn.passwordless.core.delegated-authentication-selector-script.location=/etc/cas/groovy/delegated-authentication
- cas.authn.passwordless.tokens.jpa.ddl-auto=update
- cas.authn.passwordless.tokens.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.authn.passwordless.tokens.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.authn.passwordless.tokens.jpa.password=redactedpassword
- cas.authn.passwordless.tokens.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.authn.passwordless.tokens.jpa.user=casdata
- cas.authn.passwordless.tokens.crypto.encryption.key=< copied from auto generated log message >
- cas.authn.passwordless.tokens.crypto.signing.key=< copied from auto generated log message >
- cas.consent.core.active=true
- cas.consent.core.enabled=true
- cas.consent.core.webflow.enabled=true
- cas.consent.core.crypto.encryption.key=< copied from auto generated log message >
- cas.consent.core.crypto.signing.key=< copied from auto generated log message >
- cas.consent.jpa.ddl-auto=update
- cas.consent.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.consent.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.consent.jpa.password=redactedpassword
- cas.consent.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.consent.jpa.user=casdata
- cas.service-registry.jpa.enabled=true
- cas.service-registry.jpa.ddl-auto=update
- cas.service-registry.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.service-registry.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- cas.service-registry.jpa.password=redactedpassword
- cas.service-registry.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.service-registry.jpa.user=casdata
- cas.ticket.registry.jpa.ddl-auto=create
- cas.ticket.registry.jpa.crypto.enabled=true
- cas.ticket.registry.jpa.crypto.encryption.key=< copied from auto generated log message >
- cas.ticket.registry.jpa.crypto.signing.key=< copied from auto generated log message >
- cas.ticket.registry.jpa.driver-class=org.mariadb.jdbc.Driver
- cas.ticket.registry.jpa.enabled=true
- cas.ticket.registry.jpa.password=redactedpassword
- cas.ticket.registry.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
- cas.ticket.registry.jpa.user=casdata
- cas.ticket.registry.jpa.dialect=org.hibernate.dialect.MariaDBDialect
- ```
- How I tried to get trace logging working in etc/cas/config/log4j2.xml:
- ```xml
- <Properties>
- <Property name="baseDir">/var/log</Property>
- <!-- <Property name="cas.log.level">info</Property>-->
- <Property name="cas.log.level">trace</Property>
- <!-- <Property name="spring.webflow.log.level">warn</Property>-->
- <Property name="spring.webflow.log.level">trace</Property>
- <!-- <Property name="spring.security.log.level">info</Property>-->
- <Property name="spring.security.log.level">trace</Property>
- <!-- <Property name="spring.cloud.log.level">warn</Property>-->
- <Property name="spring.cloud.log.level">trace</Property>
- <!-- <Property name="spring.web.log.level">warn</Property>-->
- <Property name="spring.web.log.level">trace</Property>
- <!-- <Property name="spring.boot.log.level">warn</Property>-->
- <Property name="spring.boot.log.level">trace</Property>
- <!-- <Property name="ldap.log.level">warn</Property>-->
- <Property name="ldap.log.level">trace</Property>
- <!-- <Property name="pac4j.log.level">warn</Property>-->
- <Property name="pac4j.log.level">trace</Property>
- <!-- <Property name="opensaml.log.level">warn</Property>-->
- <Property name="opensaml.log.level">trace</Property>
- <!-- <Property name="hazelcast.log.level">warn</Property>-->
- <Property name="hazelcast.log.level">trace</Property>
- <!-- <Property name="jdbc.log.level">warn</Property>-->
- <Property name="jdbc.log.level">trace</Property>
- <!-- <Property name="log.console.stacktraces">true</Property>-->
- <Property name="log.console.stacktraces">true</Property>
- <!-- <Property name="log.file.stacktraces">false</Property>-->
- <Property name="log.file.stacktraces">false</Property>
- <!-- -Dlog.stacktraceappender=null to disable stacktrace log -->
- <Property name="log.stacktraceappender">casStackTraceFile</Property>
- <Property name="log.include.location">false</Property>
- </Properties>
- ```
- Dockerfile:
- ```Dockerfile
- FROM ubuntu:22.04
- ARG S6_VERSION
- ## Install packages needed for later commands and that are just useful when
- ## running containers.
- RUN DEBIAN_FRONTEND=noninteractive apt-get update
- RUN DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
- lsb-release \
- ca-certificates \
- curl \
- vim \
- inetutils-ping \
- iproute2 \
- xz-utils \
- bzip2 \
- unzip \
- file \
- media-types \
- procps \
- gpg \
- openjdk-21-jre-headless \
- openjdk-21-jdk-headless
- ## Configure vim to not use mouse interaction since that messes with things when working in the container.
- COPY docker-config/etc-vim-vimrc.local /etc/vim/vimrc.local
- ## Install s6-overlay
- COPY s6-overlay-noarch.tar.xz /opt/s6-overlay-noarch.tar.xz
- COPY s6-overlay-x86_64.tar.xz /opt/s6-overlay-x86_64.tar.xz
- RUN DEBIAN_FRONTEND=noninteractive tar -C / -Jxpf /opt/s6-overlay-noarch.tar.xz
- RUN DEBIAN_FRONTEND=noninteractive tar -C / -Jxpf /opt/s6-overlay-x86_64.tar.xz
- RUN DEBIAN_FRONTEND=noninteractive rm -f /opt/s6-overlay-noarch.tar.xz
- RUN DEBIAN_FRONTEND=noninteractive rm -f /opt/s6-overlay-x86_64.tar.xz
- ## Set S6 to wait forever if needed.
- ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
- ## Copy certs
- COPY docker-config/certs/IssuerIntermediate.crt /usr/local/share/ca-certificates/IssuerIntermediate.crt
- COPY docker-config/certs/IssuerRoot.crt /usr/local/share/ca-certificates/IssuerRoot.crt
- COPY docker-config/certs/appcert.crt /etc/ssl/appcert.crt
- RUN keytool -import -alias appcert -keystore /etc/ssl/appcertcerts.jks -file /etc/ssl/appcert.crt -noprompt -storepass changeit
- RUN keytool -import -alias IssuerIntermediate -keystore /etc/ssl/appcertcerts.jks -file /usr/local/share/ca-certificates/IssuerIntermediate.crt -noprompt -storepass changeit
- RUN keytool -import -alias IssuerRoot -keystore /etc/ssl/appcertcerts.jks -file /usr/local/share/ca-certificates/IssuerRoot.crt -noprompt -storepass changeit
- RUN update-ca-certificates
- ## Add S6-Overlay configuration
- COPY docker-config/s6/scripts/app-setup.sh /usr/local/bin/app-setup.sh
- RUN chmod +x /usr/local/bin/app-setup.sh
- COPY docker-config/s6/etc-s6-overlay-s6-rc-d /etc/s6-overlay/s6-rc.d
- RUN mkdir -p /etc/cas/config \
- && mkdir -p /usr/local/share/cas-server \
- && mkdir -p /usr/local/share/config-server
- #COPY cas-server/build/libs/cas.war /usr/local/share/cas-server/cas.war
- COPY cas/build/libs/cas.war /usr/local/share/cas-server/cas.war
- #COPY config-server/build/libs/casconfigserver.war /usr/local/share/config-server/casconfigserver.war
- #WORKDIR /usr/local/share/config-server
- #RUN jar -xf casconfigserver.war
- WORKDIR /usr/local/share/cas-server
- #RUN jar -xf cas.war
- CMD ["/init"]
- ```
- s6 run script:
- ```
- #!/command/with-contenv /bin/bash
- cd /usr/local/share/cas-server &&
- java -Xdebug -Dspring.index.ignore=true -jar cas.war
- ```
- How I build:
- ```
- # cd into overlay root
- ./gradlew clean build --refresh-dependencies;
- # cd to main project root, where the Dockerfile I shared lives at < project root >/cas/Dockerfile
- docker buildx build --tag="projectname-cas:dev" cas;
- ```
Add Comment
Please, Sign In to add comment