If you read the log, you do realize that you need to take out this line: cas.authn.samlIdp.authenticationContextClassMappings[0]=urn:oasis:names:tc:SAML:2.0:ac:classes:SomeClassName->mfa-duo If you don't understand what a setting does, do not add it blindly. Ask.
--Misagh > From: "casuser" <[email protected]> > To: "CAS Community" <[email protected]> > Sent: Friday, January 5, 2018 12:23:13 AM > Subject: [cas-user] CAS 5.2.0 SAML2 dependency injection > I am new to SAML2 and I was following the documentation and added the > dependency > in the pom.xml > < dependency > > < groupId >org.apereo.cas</ groupId > > < artifactId >cas-server-support-saml-idp</ artifactId > > < version >${cas.version}</ version > > </ dependency > > I also have this in the repositories, > < repository > > < id >shibboleth-releases</ id > > < url > >https://build.shibboleth.net/nexus/content/repositories/releases</ url > > </ repository > > Then I have run Maven Rebuild command and the build was successful. Then when > I > try to redeploy in tomcat, I get the following > error: > 2018-01-05 10:23:08,461 INFO > [org.apereo.cas.configuration.config.CasCoreBootstrapStandaloneConfiguration] > - > <Configuration files found at [/etc/cas/config] are > [[/etc/cas/config/application.yml, /etc/cas/config/cas.properties]]> > 2018-01-05 10:23:08,536 INFO > [org.apereo.cas.configuration.config.CasCoreBootstrapStandaloneConfiguration] > - > <Found and loaded [317] setting(s) from [/etc/cas/config]> > 2018-01-05 10:23:08,537 INFO > [org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration] > - <Located property source: PropertiesPropertySource > {name='standaloneCasConfigService'}> > 2018-01-05 10:23:08,726 INFO > [org.apereo.cas.web.CasWebApplicationServletInitializer] - <The following > profiles are active: standalone> > 2018-01-05 10:23:12,536 WARN > [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext] > - <Exception encountered during context initialization - cancelling refresh > attempt: org.springframework.beans.factory.BeanCreationException: Error > creating bean with name 'beanValidationPostProcessor' defined in class path > resource [org/apereo/cas/config/CasCoreUtilConfiguration.class]: > BeanPostProcessor before instantiation of bean failed; nested exception is > org.springframework.beans.factory.UnsatisfiedDependencyException: Error > creating bean with name > 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration': > Unsatisfied dependency expressed through method 'setConfigurers' parameter 0; > nested exception is > org.springframework.beans.factory.UnsatisfiedDependencyException: Error > creating bean with name 'casCoreTicketsConfiguration': Unsatisfied dependency > expressed through field 'casProperties'; nested exception is > org.springframework.beans.factory.BeanCreationException: Error creating bean > with name 'cas-org.apereo.cas.configuration.CasConfigurationProperties': Could > not bind properties to CasConfigurationProperties (prefix=cas, > ignoreInvalidFields=false, ignoreUnknownFields=true, > ignoreNestedProperties=false); nested exception is > org.springframework.beans.InvalidPropertyException: Invalid property > 'authn.samlIdp.authenticationContextClassMappings[0]' of bean class > [org.apereo.cas.configuration.model.core.authentication.AuthenticationProperties]: > Property referenced in indexed property path > 'authenticationContextClassMappings[0]' is neither an array nor a List nor a > Map; returned value was [[]]> > 2018-01-05 10:23:12,537 ERROR > [org.springframework.beans.factory.support.DefaultListableBeanFactory] - > <Destroy method on bean with name > 'org.springframework.context.annotation.internalScheduledAnnotationProcessor' > threw an exception> > java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - > call 'refresh' before multicasting events via the context: > org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@ad43569: > startup date [Fri Jan 05 10:23:08 MYT 2018]; parent: > org.springframework.context.annotation.AnnotationConfigApplicationContext@233a6337 > at > org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:414) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.FactoryBeanRegistrySupport.destroySingletons(FactoryBeanRegistrySupport.java:230) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1030) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:154) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:134) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169) > ~[spring-web-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5244) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:725) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:701) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:717) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:939) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:465) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1608) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at sun.reflect.GeneratedMethodAccessor1713.invoke(Unknown Source) ~[?:?] > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > ~[?:1.8.0_151] > at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_151] > at > org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300) > ~[tomcat8-coyote-8.0.32.jar:8.0.32] > at > com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819) > ~[?:1.8.0_151] > at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801) > ~[?:1.8.0_151] > at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1460) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:906) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.manager.HTMLManagerServlet.deployInternal(HTMLManagerServlet.java:315) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:208) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at javax.servlet.http.HttpServlet.service(HttpServlet.java:648) > ~[servlet-api-3.1.jar:?] > at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) > ~[servlet-api-3.1.jar:?] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) > ~[tomcat8-websocket-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:614) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522) > ~[tomcat8-catalina-8.0.32.jar:8.0.32] > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095) > ~[tomcat8-coyote-8.0.32.jar:8.0.32] > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672) > ~[tomcat8-coyote-8.0.32.jar:8.0.32] > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1504) > ~[tomcat8-coyote-8.0.32.jar:8.0.32] > at > org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1460) > ~[tomcat8-coyote-8.0.32.jar:8.0.32] > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) > ~[?:1.8.0_151] > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) > ~[?:1.8.0_151] > at > org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) > ~[tomcat8-util-8.0.32.jar:8.0.32] > at java.lang.Thread.run(Thread.java:748) [?:1.8.0_151] > 2018-01-05 10:23:12,537 ERROR > [org.springframework.beans.factory.support.DefaultListableBeanFactory] - > <Destroy method on bean with name > 'org.springframework.boot.context.properties.ConfigurationPropertiesBindingPostProcessor' > threw an exception> > java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - > call 'refresh' before multicasting events via the context: > org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@ad43569: > startup date [Fri Jan 05 10:23:08 MYT 2018]; parent: > org.springframework.context.annotation.AnnotationConfigApplicationContext@233a6337 > at > org.springframework.context.support.AbstractApplicationContext.getApplicationEventMulticaster(AbstractApplicationContext.java:414) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.ApplicationListenerDetector.postProcessBeforeDestruction(ApplicationListenerDetector.java:97) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.FactoryBeanRegistrySupport.destroySingletons(FactoryBeanRegistrySupport.java:230) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968) > ~[spring-beans-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1030) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556) > ~[spring-context-4.3.12.RELEASE.jar:4.3.12.RELEASE] > at > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:154) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:134) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.boot.web.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:87) > ~[spring-boot-1.5.8.RELEASE.jar:1.5.8.RELEASE] > at > org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:169) > ~[spring-web-4.3.12.RELEASE.jar:4.3.12.RELEASE] > I tried adding these in the cas.properties: > cas.authn.samlIdp.entityId=http://localhost:8080/cas/idp > cas.authn.samlIdp.scope=localhost:8080 > cas.authn.samlIdp.authenticationContextClassMappings[0]=urn:oasis:names:tc:SAML:2.0:ac:classes:SomeClassName->mfa-duo > cas.authn.samlIdp.metadata.cacheExpirationMinutes=30 > cas.authn.samlIdp.metadata.failFast=true > cas.authn.samlIdp.metadata.location=file:/etc/cas/saml > cas.authn.samlIdp.metadata.privateKeyAlgName=RSA > cas.authn.samlIdp.metadata.requireValidMetadata=true > # cas.authn.samlIdp.metadata.basicAuthnUsername= > # cas.authn.samlIdp.metadata.basicAuthnPassword= > # cas.authn.samlIdp.metadata.supportedContentTypes= > cas.authn.samlIdp.attributeQueryProfileEnabled=true > cas.authn.samlIdp.logout.forceSignedLogoutRequests=true > cas.authn.samlIdp.logout.singleLogoutCallbacksDisabled=false > # cas.authn.samlIdp.response.defaultAuthenticationContextClass= > cas.authn.samlIdp.response.defaultAttributeNameFormat=uri > cas.authn.samlIdp.response.signError=false > cas.authn.samlIdp.response.signingCredentialType=X509|BASIC > cas.authn.samlIdp.response.useAttributeFriendlyName=true > cas.authn.samlIdp.response.attributeNameFormats=attributeName->basic|uri|unspecified|custom-format-etc,... > Still have the same error. > -- > - Website: https://apereo.github.io/cas > - Gitter Chatroom: https://gitter.im/apereo/cas > - List Guidelines: https://goo.gl/1VRrw7 > - Contributions: https://goo.gl/mh7qDG > --- > You received this message because you are subscribed to the Google Groups "CAS > Community" group. > To unsubscribe from this group and stop receiving emails from it, send an > email > to [email protected] . > To view this discussion on the web visit > https://groups.google.com/a/apereo.org/d/msgid/cas-user/60ecf644-c697-4250-bc94-75fd4176f4c2%40apereo.org > . -- - Website: https://apereo.github.io/cas - Gitter Chatroom: https://gitter.im/apereo/cas - List Guidelines: https://goo.gl/1VRrw7 - Contributions: https://goo.gl/mh7qDG --- You received this message because you are subscribed to the Google Groups "CAS Community" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/906064845.11653369.1515170855776.JavaMail.zimbra%40unicon.net.
