jerrac

CAS Exception Issue

Aug 6th, 2024
93
0
4 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 68.62 KB | None | 0 0
  1. Container output:
  2.  
  3. ```text
  4. projectname-cas | s6-rc: info: service s6rc-oneshot-runner: starting
  5. projectname-cas | s6-rc: info: service s6rc-oneshot-runner successfully started
  6. projectname-cas | s6-rc: info: service fix-attrs: starting
  7. projectname-cas | s6-rc: info: service fix-attrs successfully started
  8. projectname-cas | s6-rc: info: service legacy-cont-init: starting
  9. projectname-cas | s6-rc: info: service legacy-cont-init successfully started
  10. projectname-cas | s6-rc: info: service cas: starting
  11. projectname-cas | s6-rc: info: service cas successfully started
  12. projectname-cas | s6-rc: info: service legacy-services: starting
  13. projectname-cas | s6-rc: info: service legacy-services successfully started
  14. 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...>
  15. projectname-cas | 2024-08-06 16:22:56,052 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
  16. projectname-cas |
  17. projectname-cas | ____ ____ ___ ____ ___ ___ __ ____ _____
  18. projectname-cas | / T| \ / _]| \ / _] / \ / ] / T/ ___/
  19. projectname-cas | Y o || o )/ [_ | D ) / [_ Y Y / / Y o ( \_
  20. projectname-cas | | || _/Y _]| / Y _]| O | / / | |\__ T
  21. projectname-cas | | _ || | | [_ | \ | [_ | | / \_ | _ |/ \ |
  22. projectname-cas | | | || | | T| . Y| Tl ! \ || | |\ |
  23. projectname-cas | l__j__jl__j l_____jl__j\_jl_____j \___/ \____jl__j__j \___j
  24. projectname-cas |
  25. projectname-cas | CAS Version: 7.0.6
  26. projectname-cas | CAS Branch: 7.0.x
  27. projectname-cas | CAS Commit Id: 02ea13b3237f456b077e477044bac9a0d6218d13
  28. projectname-cas | CAS Build Date/Time: 2024-07-26T14:23:20.861751Z
  29. projectname-cas | Spring Boot Version: 3.2.1
  30. projectname-cas | Spring Version: 6.1.2
  31. projectname-cas | Java Home: /usr/lib/jvm/java-21-openjdk-amd64
  32. projectname-cas | Java Vendor: Ubuntu
  33. projectname-cas | Java Version: 21.0.3
  34. projectname-cas | Servlet Version: 6.0.0
  35. projectname-cas | JVM Free Memory: 80 MB
  36. projectname-cas | JVM Maximum Memory: 7 GB
  37. projectname-cas | JVM Total Memory: 308 MB
  38. projectname-cas | OS Architecture: amd64
  39. projectname-cas | OS Name: Linux
  40. projectname-cas | OS Version: 6.5.0-44-generic
  41. projectname-cas | OS Date/Time: 2024-08-06T16:22:58.311930841
  42. projectname-cas | OS Timezone: SystemClock[GMT]
  43. projectname-cas | OS Temp Directory: /tmp
  44. projectname-cas | ------------------------------------------------------------
  45. projectname-cas | Apache Tomcat Version: Apache Tomcat/10.1.26
  46. projectname-cas | ------------------------------------------------------------
  47. projectname-cas |
  48. projectname-cas |
  49. 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]]>
  50. 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...>
  51. projectname-cas | 2024-08-06 16:22:58,602 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
  52. projectname-cas | 2024-08-06 16:22:58,603 INFO [org.apereo.cas.web.CasWebApplication] - <The following 1 profile is active: "standalone">
  53. projectname-cas | 2024-08-06 16:23:02,473 INFO [org.apereo.cas.tomcat.CasTomcatServletWebServerFactoryCustomizer] - <Activated embedded tomcat container HTTP port on [8080]>
  54. 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.>
  55. 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.>
  56. 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.>
  57. 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.>
  58. 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.>
  59. 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.>
  60. 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.>
  61. 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.>
  62. 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)>
  63. projectname-cas | 2024-08-06 16:23:19,176 INFO [org.apereo.cas.services.mgmt.AbstractServicesManager] - <Loaded [0] service(s) from [JpaServiceRegistry].>
  64. projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <>
  65. projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <
  66. projectname-cas |
  67. projectname-cas |
  68. projectname-cas | ____ ___ ____ ___ __ __
  69. projectname-cas | | \ / _] / T| \ | T T
  70. projectname-cas | | D ) / [_ Y o || \ | | |
  71. projectname-cas | | / Y _]| || D Y| ~ |
  72. projectname-cas | | \ | [_ | _ || |l___, |
  73. projectname-cas | | . Y| T| | || || !
  74. projectname-cas | l__j\_jl_____jl__j__jl_____jl____/
  75. projectname-cas |
  76. projectname-cas | CAS is now running at https://projectname-cas.domain.tld/cas
  77. projectname-cas | >
  78. projectname-cas | 2024-08-06 16:23:19,184 INFO [org.apereo.cas.web.CasWebApplicationReady] - <>
  79. 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]>
  80. 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...>
  81. projectname-cas | 2024-08-06 16:23:20,511 INFO [org.apereo.cas.configuration.CasConfigurationPropertiesValidator] - <Validated CAS property sources and configuration successfully.>
  82. 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 < ?]>
  83. projectname-cas | 2024-08-06 16:23:26,065 INFO [org.apereo.inspektr.audit.support.JdbcAuditTrailManager] - <[0] records deleted.>
  84. projectname-cas | 2024-08-06 16:23:36,047 INFO [org.apereo.cas.services.mgmt.AbstractServicesManager] - <Loaded [0] service(s) from [JpaServiceRegistry].>
  85. projectname-cas | 2024-08-06 16:23:47,736 INFO [org.apereo.cas.ticket.registry.DefaultTicketRegistryCleaner] - <[0] expired tickets removed.>
  86. 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>
  87. 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
  88. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
  89. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
  90. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  91. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  92. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  93. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  94. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  95. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  96. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  97. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
  98. projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
  99. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
  100. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
  101. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  102. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  103. projectname-cas | at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:109)
  104. projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  105. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  106. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  107. projectname-cas | at org.apereo.cas.logging.web.ThreadContextMDCServletFilter.doFilter(ThreadContextMDCServletFilter.java:100)
  108. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  109. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  110. projectname-cas | at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
  111. projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
  112. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  113. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  114. projectname-cas | at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
  115. projectname-cas | at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
  116. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  117. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  118. projectname-cas | at org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:32)
  119. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  120. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  121. projectname-cas | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
  122. projectname-cas | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
  123. projectname-cas | at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:598)
  124. projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
  125. projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  126. projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  127. projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
  128. projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
  129. projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
  130. projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
  131. projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  132. projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
  133. projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
  134. projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  135. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  136. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  137. projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  138. projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
  139. 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
  140. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
  141. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
  142. projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
  143. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
  144. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
  145. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
  146. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  147. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  148. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  149. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  150. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  151. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
  152. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  153. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  154. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  155. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  156. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  157. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  158. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  159. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  160. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  161. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
  162. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  163. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
  164. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
  165. projectname-cas | ... 50 more
  166. 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
  167. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
  168. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
  169. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  170. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
  171. projectname-cas | ... 74 more
  172. 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>
  173. 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
  174. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
  175. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
  176. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  177. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  178. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  179. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  180. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  181. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  182. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  183. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
  184. projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
  185. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
  186. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
  187. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  188. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  189. projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
  190. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  191. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  192. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:632)
  193. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:410)
  194. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:330)
  195. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:267)
  196. projectname-cas | at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
  197. projectname-cas | at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:222)
  198. projectname-cas | at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:308)
  199. projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:149)
  200. projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  201. projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  202. projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
  203. projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
  204. projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
  205. projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
  206. projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  207. projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
  208. projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
  209. projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  210. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  211. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  212. projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  213. projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
  214. 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
  215. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
  216. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
  217. projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
  218. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
  219. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
  220. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
  221. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  222. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  223. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  224. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  225. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  226. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
  227. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  228. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  229. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  230. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  231. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  232. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  233. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  234. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  235. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  236. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
  237. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  238. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
  239. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
  240. projectname-cas | ... 39 more
  241. 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
  242. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
  243. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
  244. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  245. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
  246. projectname-cas | ... 63 more
  247. projectname-cas | 2024-08-06 16:23:48,036 ERROR [org.apache.catalina.core.ContainerBase.[Tomcat].[localhost]] - <Exception Processing [ErrorPage[errorCode=0, location=/error]]>
  248. 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
  249. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:802)
  250. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:546)
  251. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  252. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  253. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  254. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  255. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  256. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  257. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  258. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:204)
  259. projectname-cas | at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1238)
  260. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.initDelegate(DelegatingFilterProxy.java:332)
  261. projectname-cas | at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
  262. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  263. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  264. projectname-cas | at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
  265. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
  266. projectname-cas | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
  267. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:632)
  268. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:410)
  269. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:330)
  270. projectname-cas | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:267)
  271. projectname-cas | at org.apache.catalina.core.StandardHostValve.custom(StandardHostValve.java:362)
  272. projectname-cas | at org.apache.catalina.core.StandardHostValve.status(StandardHostValve.java:222)
  273. projectname-cas | at org.apache.catalina.core.StandardHostValve.throwable(StandardHostValve.java:308)
  274. projectname-cas | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:149)
  275. projectname-cas | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
  276. projectname-cas | at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
  277. projectname-cas | at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:663)
  278. projectname-cas | at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:731)
  279. projectname-cas | at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
  280. projectname-cas | at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:389)
  281. projectname-cas | at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
  282. projectname-cas | at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:904)
  283. projectname-cas | at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
  284. projectname-cas | at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
  285. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
  286. projectname-cas | at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
  287. projectname-cas | at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
  288. projectname-cas | at java.base/java.lang.Thread.run(Thread.java:1583)
  289. 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
  290. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:895)
  291. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:848)
  292. projectname-cas | at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
  293. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:508)
  294. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1418)
  295. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:598)
  296. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  297. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  298. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  299. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  300. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  301. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:413)
  302. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)
  303. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1164)
  304. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:561)
  305. projectname-cas | at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:521)
  306. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:325)
  307. projectname-cas | at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
  308. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:323)
  309. projectname-cas | at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
  310. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
  311. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
  312. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  313. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:911)
  314. projectname-cas | at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:789)
  315. projectname-cas | ... 39 more
  316. 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
  317. projectname-cas | at org.springframework.beans.factory.config.DependencyDescriptor.resolveNotUnique(DependencyDescriptor.java:218)
  318. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1420)
  319. projectname-cas | at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
  320. projectname-cas | at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.resolveMethodArguments(AutowiredAnnotationBeanPostProcessor.java:887)
  321. projectname-cas | ... 63 more
  322. ^CGracefully stopping... (press Ctrl+C again to force)
  323. [+] Stopping 1/1
  324. ✔ Container projectname-cas Stopped 3.7s
  325. canceled
  326.  
  327. ```
  328.  
  329. My build.gradle:
  330.  
  331. ```
  332. import org.apache.tools.ant.taskdefs.condition.*
  333. import org.gradle.internal.logging.text.*
  334. import org.apereo.cas.metadata.*
  335. import java.nio.file.*
  336. import java.lang.reflect.*
  337. import org.gradle.internal.logging.text.*
  338. import static org.gradle.internal.logging.text.StyledTextOutput.Style
  339.  
  340. buildscript {
  341. repositories {
  342. if (project.privateRepoUrl) {
  343. maven {
  344. url project.privateRepoUrl
  345. credentials {
  346. username = project.privateRepoUsername
  347. password = System.env.PRIVATE_REPO_TOKEN
  348. }
  349. }
  350. }
  351. mavenLocal()
  352. mavenCentral()
  353. gradlePluginPortal()
  354. maven {
  355. url 'https://oss.sonatype.org/content/repositories/snapshots'
  356. mavenContent { snapshotsOnly() }
  357. }
  358. maven {
  359. url "https://repo.spring.io/milestone"
  360. mavenContent { releasesOnly() }
  361. }
  362. }
  363. dependencies {
  364. classpath "org.springframework.boot:spring-boot-gradle-plugin:${project.springBootVersion}"
  365. classpath "io.freefair.gradle:maven-plugin:${project.gradleFreeFairPluginVersion}"
  366. classpath "io.freefair.gradle:lombok-plugin:${project.gradleFreeFairPluginVersion}"
  367. classpath "io.spring.gradle:dependency-management-plugin:${project.gradleDependencyManagementPluginVersion}"
  368. classpath "de.undercouch:gradle-download-task:${project.gradleDownloadTaskVersion}"
  369. classpath "org.apereo.cas:cas-server-core-api-configuration-model:${project.'cas.version'}"
  370. classpath "org.apereo.cas:cas-server-core-configuration-metadata-repository:${project.'cas.version'}"
  371. }
  372. }
  373.  
  374. repositories {
  375. if (project.privateRepoUrl) {
  376. maven {
  377. url project.privateRepoUrl
  378. credentials {
  379. username = project.privateRepoUsername
  380. password = System.env.PRIVATE_REPO_TOKEN
  381. }
  382. }
  383. }
  384. mavenLocal()
  385. mavenCentral()
  386. maven { url 'https://oss.sonatype.org/content/repositories/releases' }
  387. maven {
  388. url 'https://oss.sonatype.org/content/repositories/snapshots'
  389. mavenContent { snapshotsOnly() }
  390. }
  391. maven {
  392. url "https://repository.apache.org/content/repositories/snapshots"
  393. mavenContent { snapshotsOnly() }
  394. }
  395. maven {
  396. url 'https://build.shibboleth.net/nexus/content/repositories/releases/'
  397. mavenContent { releasesOnly() }
  398. }
  399. maven {
  400. url "https://build.shibboleth.net/nexus/content/repositories/snapshots"
  401. mavenContent { snapshotsOnly() }
  402. }
  403. maven {
  404. url "https://repo.spring.io/milestone"
  405. mavenContent { releasesOnly() }
  406. }
  407. }
  408.  
  409.  
  410. apply plugin: "io.freefair.war-overlay"
  411. apply plugin: "war"
  412.  
  413. apply plugin: "org.springframework.boot"
  414. apply plugin: "io.freefair.lombok"
  415.  
  416.  
  417.  
  418. apply from: rootProject.file("gradle/springboot.gradle")
  419. apply from: rootProject.file("gradle/tasks.gradle")
  420.  
  421.  
  422. def out = services.get(StyledTextOutputFactory).create("cas")
  423.  
  424. configurations {
  425. all {
  426. resolutionStrategy {
  427. cacheChangingModulesFor 0, "seconds"
  428. cacheDynamicVersionsFor 0, "seconds"
  429. preferProjectModules()
  430. def failIfConflict = project.hasProperty("failOnVersionConflict") && Boolean.valueOf(project.getProperty("failOnVersionConflict"))
  431. if (failIfConflict) {
  432. failOnVersionConflict()
  433. }
  434.  
  435. if (project.hasProperty("tomcatVersion")) {
  436. eachDependency { DependencyResolveDetails dependency ->
  437. def requested = dependency.requested
  438. if (requested.group.startsWith("org.apache.tomcat") && requested.name != "jakartaee-migration") {
  439. dependency.useVersion("${tomcatVersion}")
  440. }
  441. }
  442. }
  443. }
  444. exclude(group: "cglib", module: "cglib")
  445. exclude(group: "cglib", module: "cglib-full")
  446. exclude(group: "org.slf4j", module: "slf4j-log4j12")
  447. exclude(group: "org.slf4j", module: "slf4j-simple")
  448. exclude(group: "org.slf4j", module: "jcl-over-slf4j")
  449. exclude(group: "org.apache.logging.log4j", module: "log4j-to-slf4j")
  450. }
  451. }
  452.  
  453. war {
  454. entryCompression = ZipEntryCompression.STORED
  455. enabled = false
  456. }
  457.  
  458. java {
  459. toolchain {
  460. languageVersion = JavaLanguageVersion.of(project.targetCompatibility)
  461. def chosenJvmVendor = null
  462. JvmVendorSpec.declaredFields.each { field ->
  463. if (field.type == JvmVendorSpec && Modifier.isStatic(field.getModifiers())) {
  464. if (field.name == project.jvmVendor?.toUpperCase()) {
  465. chosenJvmVendor = field.get(null)
  466. return
  467. }
  468. }
  469. }
  470. if (chosenJvmVendor != null) {
  471. vendor = chosenJvmVendor
  472. out.withStyle(Style.Success).println("Using ${chosenJvmVendor} as the JVM vendor for the Java toolchain")
  473. } else {
  474. out.withStyle(Style.Info).println("JVM vendor ${project.jvmVendor} is not recognized")
  475. }
  476. }
  477. }
  478.  
  479.  
  480.  
  481.  
  482.  
  483. if (project.hasProperty("appServer")) {
  484. def appServer = project.findProperty('appServer') ?: ''
  485. out.withStyle(Style.Success).println("Building CAS version ${project.version} with application server ${appServer}")
  486. } else {
  487. out.withStyle(Style.Success).println("Building CAS version ${project.version} without an application server")
  488. }
  489.  
  490. dependencies {
  491. /**
  492. * Do NOT modify the lines below or else you will risk breaking dependency management.
  493. **/
  494. implementation enforcedPlatform("org.apereo.cas:cas-server-support-bom:${project.'cas.version'}")
  495. implementation platform(org.springframework.boot.gradle.plugin.SpringBootPlugin.BOM_COORDINATES)
  496.  
  497. /**
  498. * Do NOT modify the lines below or else you will risk breaking the build.
  499. **/
  500. implementation "org.apereo.cas:cas-server-core-api-configuration-model"
  501. implementation "org.apereo.cas:cas-server-webapp-init"
  502.  
  503. if (appServer == 'tomcat') {
  504. implementation "org.apereo.cas:cas-server-webapp-init"
  505. }
  506.  
  507. developmentOnly "org.springframework.boot:spring-boot-devtools:${project.springBootVersion}"
  508.  
  509. /**
  510. * CAS dependencies and modules may be listed here.
  511. *
  512. * There is no need to specify the version number for each dependency
  513. * since versions are all resolved and controlled by the dependency management
  514. * plugin via the CAS bom.
  515. **/
  516. implementation "org.apereo.cas:cas-server-support-consent-webflow"
  517. implementation "org.apereo.cas:cas-server-support-consent-jdbc"
  518. implementation "org.apereo.cas:cas-server-support-audit-jdbc"
  519. implementation "org.apereo.cas:cas-server-support-jdbc"
  520. implementation "org.apereo.cas:cas-server-support-throttle"
  521. implementation "org.apereo.cas:cas-server-support-throttle-jdbc"
  522. implementation "org.apereo.cas:cas-server-core-events-configuration"
  523. implementation "org.apereo.cas:cas-server-core-events"
  524. implementation "org.apereo.cas:cas-server-support-events-jpa"
  525. implementation "org.apereo.cas:cas-server-support-gauth"
  526. implementation "org.apereo.cas:cas-server-support-gauth-jpa"
  527. implementation "org.apereo.cas:cas-server-support-session-jdbc"
  528. implementation "org.apereo.cas:cas-server-support-passwordless-webflow"
  529. implementation "org.apereo.cas:cas-server-support-passwordless-jpa"
  530. implementation "org.apereo.cas:cas-server-support-jpa-hibernate"
  531. implementation "org.apereo.cas:cas-server-support-jdbc-drivers"
  532. implementation "org.apereo.cas:cas-server-support-jpa-service-registry"
  533. implementation "org.apereo.cas:cas-server-support-jpa-ticket-registry"
  534. implementation "org.apereo.cas:cas-server-support-webconfig"
  535. implementation "org.apereo.cas:cas-server-support-webauthn"
  536. implementation "org.apereo.cas:cas-server-support-webauthn-jpa"
  537.  
  538.  
  539. testImplementation "org.springframework.boot:spring-boot-starter-test"
  540. }
  541.  
  542. ```
  543.  
  544. gradle.properties:
  545.  
  546. ```
  547.  
  548. # This overlay project's version
  549. # For consistency and with no other effect, this is set to the CAS version itself.
  550. version=7.0.6
  551.  
  552. # This is the CAS server version that will be deployed.
  553. # Versions typically are in the format of:
  554. # [Major].[Minor].[Patch].[Security]
  555. # For patch and security releases and unless explicitly stated otherwise, the below property
  556. # and NOTHING ELSE is the only change you usually need to make to upgrade your CAS deployment.
  557. cas.version=7.0.6
  558.  
  559. # The Spring Boot version is very much tied to the CAS release 7.0.6
  560. # and must not be modified or upgraded out of band, as doing so would most likely
  561. # jeopardize the stability of your CAS deployment leading to unpredictable behavior.
  562. springBootVersion=3.2.1
  563.  
  564. # The coordinates of this overlay project
  565. group=org.apereo.cas
  566. artifactId=cas-overlay
  567.  
  568. # Before changing the JDK versions here, you must account for the following:
  569. # - Dependency Compatibility: Ensure that all libraries and frameworks you use are compatible with Java 21 and above.
  570. # - Environment Compatibility: Check that your deployment environments (e.g., servers, CI/CD pipelines, cloud services) support Java 21 and above.
  571. # Remember that this CAS build does and will only officially support Java 21. Do NOT change platform requirements unless
  572. # you really know what you are doing and are comfortable managing the deployment and its risks completely on your own.
  573.  
  574. # This property defines the version of Java that your source code is written in.
  575. # It ensures that your code is compatible with the specified version of the Java language.
  576. # Gradle will expect your source code to be compatible with JDK 21.
  577. sourceCompatibility=21
  578.  
  579. # This property specifies the version of the Java runtime that the compiled bytecode should be compatible with.
  580. # It ensures that the bytecode generated by the compiler will run on JDK 21.
  581. targetCompatibility=21
  582.  
  583. # This property controls the JVM vendor that is used by Gradle toolchains.
  584. # You may want to build CAS using a Java version that is not supported for running Gradle
  585. # by setting this property to the vendor of the JDK you want to use.
  586. # If Gradle can’t find a locally available toolchain that matches the requirements
  587. # of the build, it can automatically download one.
  588. # Options include: AMAZON, ADOPTIUM, JETBRAINS, MICROSOFT, ORACLE, SAP, BELLSOFT, etc.
  589. # Setting this to a blank or invalid value will force Gradle to use the JDK installation on the build machine.
  590. jvmVendor=AMAZON
  591.  
  592. # This plugin controls how JDK distributions required by the Grtadle toolchain
  593. # are discovered, and downloaded when necessary.
  594. # Note that auto-provisioning of a JDK distribution only kicks in when auto-detection fails
  595. # to find a matching JDK, and auto-provisioning can only download new JDKs and is in no way
  596. # involved in updating any of the already installed ones.
  597. gradleFoojayPluginVersion=0.8.0
  598.  
  599. gradleFreeFairPluginVersion=8.6
  600. gradleDependencyManagementPluginVersion=1.1.6
  601.  
  602.  
  603. # Include a launch script for executable WAR artifact
  604. # Setting this to true allows the final web application
  605. # to be fully executable on its own.
  606. executable=true
  607.  
  608.  
  609. # Use -tomcat, -jetty, -undertow for deployment to control the embedded server container
  610. # that will be used to deploy and manage your CAS deployment.
  611. # You should set this to blank if you want to deploy to an external container.
  612. # and want to set up, download and manage the container (i.e. Apache Tomcat) yourself.
  613. appServer=-tomcat
  614.  
  615. # If you are using an embedded Apache Tomcat container to deploy and run CAS,
  616. # and need to override the Apache Tomcat version, uncomment the property below
  617. # and specify the the Apache Tomcat version, i.e. 10.1.26.
  618. # While enabled, this will override any and all upstream changes to
  619. # Apache Tomcat dependency management and you will be directly responsible to make
  620. # adjustments and upgrades as necessary. Use with caution, favor less work.
  621. # tomcatVersion=10.1.26
  622.  
  623. # Settings to generate a keystore
  624. # used by the build to assist with creating
  625. # self-signed certificates for TLS
  626. certDir=/etc/cas
  627. serverKeystore=thekeystore
  628. exportedServerCert=cas.crt
  629. storeType=PKCS12
  630.  
  631. # Location of the downloaded CAS Shell JAR
  632. shellDir=build/libs
  633. ivyVersion=2.5.2
  634. gradleDownloadTaskVersion=4.1.1
  635.  
  636. # Include private repository
  637. # override these in user properties or pass in values from env on command line
  638. privateRepoUrl=
  639. privateRepoUsername=
  640.  
  641. # Gradle build settings
  642. # Do NOT modify unless you know what you're doing!
  643. org.gradle.configureondemand=true
  644. org.gradle.caching=true
  645. org.gradle.parallel=true
  646. org.gradle.jvmargs=-Xms1024m -Xmx4048m -XX:TieredStopAtLevel=1
  647. org.gradle.unsafe.configuration-cache=false
  648. org.gradle.unsafe.configuration-cache-problems=warn
  649.  
  650. ```
  651. settings.gradle:
  652. ```
  653. plugins {
  654. id "org.gradle.toolchains.foojay-resolver-convention" version "${gradleFoojayPluginVersion}"
  655. }
  656. rootProject.name = 'cas'
  657. ```
  658.  
  659. etc/cas/config/application.properties
  660. ```
  661. cas.server.name=https://projectname-cas.domain.tld/
  662. cas.server.prefix=https://projectname-cas.domain.tld/cas
  663. cas.server.scope=domain.tld
  664. cas.server.tomcat.http[0].enabled=true
  665. cas.server.tomcat.http[0].port=8080
  666. cas.server.tomcat.http[0].redirect-port=443
  667. cas.server.tomcat.http[0].scheme=https
  668. server.tomcat.remoteip.remote-ip-header=X-Forwarded-For
  669. cas.webflow.auto-configuration.order=0
  670. cas.authn.attribute-repository.jdbc[0].order=1
  671. cas.authn.attribute-repository.jdbc[0].driver-class=org.mariadb.jdbc.Driver
  672. cas.authn.attribute-repository.jdbc[0].dialect=org.hibernate.dialect.MariaDBDialect
  673. cas.authn.attribute-repository.jdbc[0].password=redactedpassword
  674. cas.authn.attribute-repository.jdbc[0].url=jdbc:mariadb://projectname-cas-db:3306/casdata
  675. cas.authn.attribute-repository.jdbc[0].user=casdata
  676. cas.authn.attribute-repository.jdbc[0].ddl-auto=update
  677. cas.authn.accept.order=1
  678. cas.authn.accept.enabled=false
  679. cas.authn.policy.any.enabled=false
  680. cas.authn.accept.password-encoder.encoding-algorithm=PBKDF2WithHmacSHA512
  681. cas.authn.accept.password-policy.groovy.location=/etc/cas/groovy/password-policy
  682. cas.authn.accept.principal-transformation.groovy.location=/etc/cas/groovy/principal-transformation
  683. cas.authn.accept.password-encoder.type=NONE
  684. cas.events.core.enabled=true
  685. cas.events.core.track-configuration-modifications=false
  686. cas.events.core.track-geolocation=false
  687. cas.events.jpa.enabled=true
  688. cas.events.jpa.driver-class=org.mariadb.jdbc.Driver
  689. cas.events.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  690. cas.events.jpa.password=redactedpassword
  691. cas.events.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  692. cas.events.jpa.user=casdata
  693. cas.events.jpa.ddl-auto=update
  694. cas.tgc.crypto.encryption.key=< copied from auto generated log message >
  695. cas.tgc.crypto.signing.key=< copied from auto generated log message >
  696. cas.webflow.crypto.signing.key=< copied from auto generated log message >
  697. cas.webflow.crypto.encryption.key=< copied from auto generated log message >
  698. cas.jdbc.gen-ddl=true
  699. cas.audit.jdbc.ddl-auto=update
  700. cas.audit.jdbc.driver-class=org.mariadb.jdbc.Driver
  701. cas.audit.jdbc.dialect=org.hibernate.dialect.MariaDBDialect
  702. cas.audit.jdbc.password=redactedpassword
  703. cas.audit.jdbc.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  704. cas.audit.jdbc.user=casdata
  705. cas.authn.jdbc.search[0].order=1
  706. cas.authn.jdbc.search[0].driver-class=org.mariadb.jdbc.Driver
  707. cas.authn.jdbc.search[0].dialect=org.hibernate.dialect.MariaDBDialect
  708. cas.authn.jdbc.search[0].table-users=persons
  709. cas.authn.jdbc.search[0].field-password=password
  710. cas.authn.jdbc.search[0].field-user=person_id
  711. cas.authn.jdbc.search[0].password-encoder.type=NONE
  712. cas.authn.jdbc.search[0].password=redactedpasswordextra
  713. cas.authn.jdbc.search[0].url=jdbc:mariadb://projectname-db:3306/projectname
  714. cas.authn.jdbc.search[0].user=projectname
  715. cas.authn.jdbc.search[0].principal-transformation.groovy.location=/etc/cas/groovy/jdbc-search
  716. cas.authn.core.service-authentication-resolution.order=0
  717. cas.authn.mfa.gauth.rank=1
  718. cas.authn.mfa.gauth.core.issuer=CASIssuer
  719. cas.authn.mfa.gauth.core.label=CASLabel
  720. cas.authn.mfa.gauth.core.scratch-codes.encryption.key=< copied from auto generated log message >
  721. cas.authn.mfa.gauth.crypto.encryption.key=< copied from auto generated log message >
  722. cas.authn.mfa.gauth.crypto.signing.key=< copied from auto generated log message >
  723. cas.authn.mfa.gauth.jpa.driver-class=org.mariadb.jdbc.Driver
  724. cas.authn.mfa.gauth.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  725. cas.authn.mfa.gauth.jpa.password=redactedpassword
  726. cas.authn.mfa.gauth.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  727. cas.authn.mfa.gauth.jpa.user=casdata
  728. cas.authn.mfa.gauth.jpa.ddl-auto=update
  729. cas.authn.mfa.web-authn.rank=2
  730. cas.authn.mfa.web-authn.core.application-id=projectname
  731. cas.authn.mfa.web-authn.core.relying-party-id=projectname
  732. cas.authn.mfa.web-authn.core.relying-party-name=projectname
  733. cas.authn.mfa.web-authn.jpa.ddl-auto=update
  734. cas.authn.mfa.web-authn.jpa.driver-class=org.mariadb.jdbc.Driver
  735. cas.authn.mfa.web-authn.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  736. cas.authn.mfa.web-authn.jpa.password=redactedpassword
  737. cas.authn.mfa.web-authn.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  738. cas.authn.mfa.web-authn.jpa.user=casdata
  739. cas.authn.mfa.web-authn.crypto.encryption.key=< copied from auto generated log message >
  740. cas.authn.mfa.web-authn.crypto.signing.key=< copied from auto generated log message >
  741. cas.authn.throttle.jdbc.ddl-auto=update
  742. cas.authn.throttle.jdbc.driver-class=org.mariadb.jdbc.Driver
  743. cas.authn.throttle.jdbc.dialect=org.hibernate.dialect.MariaDBDialect
  744. cas.authn.throttle.jdbc.password=redactedpassword
  745. cas.authn.throttle.jdbc.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  746. cas.authn.throttle.jdbc.user=casdata
  747. cas.authn.passwordless.core.delegated-authentication-selector-script.location=/etc/cas/groovy/delegated-authentication
  748. cas.authn.passwordless.tokens.jpa.ddl-auto=update
  749. cas.authn.passwordless.tokens.jpa.driver-class=org.mariadb.jdbc.Driver
  750. cas.authn.passwordless.tokens.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  751. cas.authn.passwordless.tokens.jpa.password=redactedpassword
  752. cas.authn.passwordless.tokens.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  753. cas.authn.passwordless.tokens.jpa.user=casdata
  754. cas.authn.passwordless.tokens.crypto.encryption.key=< copied from auto generated log message >
  755. cas.authn.passwordless.tokens.crypto.signing.key=< copied from auto generated log message >
  756. cas.consent.core.active=true
  757. cas.consent.core.enabled=true
  758. cas.consent.core.webflow.enabled=true
  759. cas.consent.core.crypto.encryption.key=< copied from auto generated log message >
  760. cas.consent.core.crypto.signing.key=< copied from auto generated log message >
  761. cas.consent.jpa.ddl-auto=update
  762. cas.consent.jpa.driver-class=org.mariadb.jdbc.Driver
  763. cas.consent.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  764. cas.consent.jpa.password=redactedpassword
  765. cas.consent.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  766. cas.consent.jpa.user=casdata
  767. cas.service-registry.jpa.enabled=true
  768. cas.service-registry.jpa.ddl-auto=update
  769. cas.service-registry.jpa.driver-class=org.mariadb.jdbc.Driver
  770. cas.service-registry.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  771. cas.service-registry.jpa.password=redactedpassword
  772. cas.service-registry.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  773. cas.service-registry.jpa.user=casdata
  774. cas.ticket.registry.jpa.ddl-auto=create
  775. cas.ticket.registry.jpa.crypto.enabled=true
  776. cas.ticket.registry.jpa.crypto.encryption.key=< copied from auto generated log message >
  777. cas.ticket.registry.jpa.crypto.signing.key=< copied from auto generated log message >
  778. cas.ticket.registry.jpa.driver-class=org.mariadb.jdbc.Driver
  779. cas.ticket.registry.jpa.enabled=true
  780. cas.ticket.registry.jpa.password=redactedpassword
  781. cas.ticket.registry.jpa.url=jdbc:mariadb://projectname-cas-db:3306/casdata
  782. cas.ticket.registry.jpa.user=casdata
  783. cas.ticket.registry.jpa.dialect=org.hibernate.dialect.MariaDBDialect
  784.  
  785. ```
  786.  
  787. How I tried to get trace logging working in etc/cas/config/log4j2.xml:
  788. ```xml
  789. <Properties>
  790. <Property name="baseDir">/var/log</Property>
  791. <!-- <Property name="cas.log.level">info</Property>-->
  792. <Property name="cas.log.level">trace</Property>
  793. <!-- <Property name="spring.webflow.log.level">warn</Property>-->
  794. <Property name="spring.webflow.log.level">trace</Property>
  795. <!-- <Property name="spring.security.log.level">info</Property>-->
  796. <Property name="spring.security.log.level">trace</Property>
  797. <!-- <Property name="spring.cloud.log.level">warn</Property>-->
  798. <Property name="spring.cloud.log.level">trace</Property>
  799. <!-- <Property name="spring.web.log.level">warn</Property>-->
  800. <Property name="spring.web.log.level">trace</Property>
  801. <!-- <Property name="spring.boot.log.level">warn</Property>-->
  802. <Property name="spring.boot.log.level">trace</Property>
  803. <!-- <Property name="ldap.log.level">warn</Property>-->
  804. <Property name="ldap.log.level">trace</Property>
  805. <!-- <Property name="pac4j.log.level">warn</Property>-->
  806. <Property name="pac4j.log.level">trace</Property>
  807. <!-- <Property name="opensaml.log.level">warn</Property>-->
  808. <Property name="opensaml.log.level">trace</Property>
  809. <!-- <Property name="hazelcast.log.level">warn</Property>-->
  810. <Property name="hazelcast.log.level">trace</Property>
  811. <!-- <Property name="jdbc.log.level">warn</Property>-->
  812. <Property name="jdbc.log.level">trace</Property>
  813. <!-- <Property name="log.console.stacktraces">true</Property>-->
  814. <Property name="log.console.stacktraces">true</Property>
  815. <!-- <Property name="log.file.stacktraces">false</Property>-->
  816. <Property name="log.file.stacktraces">false</Property>
  817. <!-- -Dlog.stacktraceappender=null to disable stacktrace log -->
  818. <Property name="log.stacktraceappender">casStackTraceFile</Property>
  819. <Property name="log.include.location">false</Property>
  820. </Properties>
  821. ```
  822.  
  823. Dockerfile:
  824. ```Dockerfile
  825. FROM ubuntu:22.04
  826. ARG S6_VERSION
  827. ## Install packages needed for later commands and that are just useful when
  828. ## running containers.
  829. RUN DEBIAN_FRONTEND=noninteractive apt-get update
  830. RUN DEBIAN_FRONTEND=noninteractive apt-get -y --no-install-recommends install \
  831. lsb-release \
  832. ca-certificates \
  833. curl \
  834. vim \
  835. inetutils-ping \
  836. iproute2 \
  837. xz-utils \
  838. bzip2 \
  839. unzip \
  840. file \
  841. media-types \
  842. procps \
  843. gpg \
  844. openjdk-21-jre-headless \
  845. openjdk-21-jdk-headless
  846.  
  847. ## Configure vim to not use mouse interaction since that messes with things when working in the container.
  848. COPY docker-config/etc-vim-vimrc.local /etc/vim/vimrc.local
  849.  
  850. ## Install s6-overlay
  851. COPY s6-overlay-noarch.tar.xz /opt/s6-overlay-noarch.tar.xz
  852. COPY s6-overlay-x86_64.tar.xz /opt/s6-overlay-x86_64.tar.xz
  853. RUN DEBIAN_FRONTEND=noninteractive tar -C / -Jxpf /opt/s6-overlay-noarch.tar.xz
  854. RUN DEBIAN_FRONTEND=noninteractive tar -C / -Jxpf /opt/s6-overlay-x86_64.tar.xz
  855. RUN DEBIAN_FRONTEND=noninteractive rm -f /opt/s6-overlay-noarch.tar.xz
  856. RUN DEBIAN_FRONTEND=noninteractive rm -f /opt/s6-overlay-x86_64.tar.xz
  857.  
  858. ## Set S6 to wait forever if needed.
  859. ENV S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
  860.  
  861. ## Copy certs
  862. COPY docker-config/certs/IssuerIntermediate.crt /usr/local/share/ca-certificates/IssuerIntermediate.crt
  863. COPY docker-config/certs/IssuerRoot.crt /usr/local/share/ca-certificates/IssuerRoot.crt
  864. COPY docker-config/certs/appcert.crt /etc/ssl/appcert.crt
  865. RUN keytool -import -alias appcert -keystore /etc/ssl/appcertcerts.jks -file /etc/ssl/appcert.crt -noprompt -storepass changeit
  866. RUN keytool -import -alias IssuerIntermediate -keystore /etc/ssl/appcertcerts.jks -file /usr/local/share/ca-certificates/IssuerIntermediate.crt -noprompt -storepass changeit
  867. RUN keytool -import -alias IssuerRoot -keystore /etc/ssl/appcertcerts.jks -file /usr/local/share/ca-certificates/IssuerRoot.crt -noprompt -storepass changeit
  868. RUN update-ca-certificates
  869.  
  870. ## Add S6-Overlay configuration
  871. COPY docker-config/s6/scripts/app-setup.sh /usr/local/bin/app-setup.sh
  872. RUN chmod +x /usr/local/bin/app-setup.sh
  873. COPY docker-config/s6/etc-s6-overlay-s6-rc-d /etc/s6-overlay/s6-rc.d
  874. RUN mkdir -p /etc/cas/config \
  875. && mkdir -p /usr/local/share/cas-server \
  876. && mkdir -p /usr/local/share/config-server
  877. #COPY cas-server/build/libs/cas.war /usr/local/share/cas-server/cas.war
  878. COPY cas/build/libs/cas.war /usr/local/share/cas-server/cas.war
  879. #COPY config-server/build/libs/casconfigserver.war /usr/local/share/config-server/casconfigserver.war
  880. #WORKDIR /usr/local/share/config-server
  881. #RUN jar -xf casconfigserver.war
  882. WORKDIR /usr/local/share/cas-server
  883. #RUN jar -xf cas.war
  884.  
  885. CMD ["/init"]
  886. ```
  887.  
  888. s6 run script:
  889.  
  890. ```
  891. #!/command/with-contenv /bin/bash
  892. cd /usr/local/share/cas-server &&
  893. java -Xdebug -Dspring.index.ignore=true -jar cas.war
  894. ```
  895.  
  896. How I build:
  897.  
  898. ```
  899. # cd into overlay root
  900. ./gradlew clean build --refresh-dependencies;
  901. # cd to main project root, where the Dockerfile I shared lives at < project root >/cas/Dockerfile
  902. docker buildx build --tag="projectname-cas:dev" cas;
  903. ```
Add Comment
Please, Sign In to add comment