CAS 5 Gradle Overlay - Custom Theme

113 views
Skip to first unread message

Mohannad Henno

unread,
May 27, 2018, 5:01:28 AM5/27/18
to CAS Community
Hi there,

I have setup the CAS 5.2.X gradle overlay and I am trying to customize the login page look & feel but this is not working. As per the documentation, the custom theme/CSS files should be added to the src/main/resources. I have done this and added the theme name to the service JSON file. When I run the CAS server the custom CSS is not loaded and I am getting the following error in the log:

2018-05-27 12:04:54,569 WARN [org.apereo.cas.services.web.ServiceThemeResolver] - <Custom theme [hbmsu] for service [id=1525768999448,name=LocalCasClient,description=Local CAS PHP Client,serviceId=http://cas-client.local:9090(\\z|/.*),usernameAttributeProvider=org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider@d,theme=hbmsu,evaluationOrder=-1,logoutType=BACK_CHANNEL,attributeReleasePolicy=org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy@33cff996[attributeFilter=<null>,principalAttributesRepository=org.apereo.cas.authentication.principal.DefaultPrincipalAttributesRepository@641f67bd[],authorizedToReleaseCredentialPassword=false,authorizedToReleaseAuthenticationAttributes=true,authorizedToReleaseProxyGrantingTicket=false,excludeDefaultAttributes=false,principalIdAttribute=<null>,consentPolicy=org.apereo.cas.services.consent.DefaultRegisteredServiceConsentPolicy@4c5fe168[excludedAttributes=<null>,includeOnlyAttributes=<null>,enabled=true],allowedAttributes=[]],accessStrategy=org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy@7bcef346[enabled=true,ssoEnabled=true,requireAllAttributes=true,requiredAttributes={},unauthorizedRedirectUrl=<null>,caseInsensitive=false,rejectedAttributes={}],publicKey=org.apereo.cas.services.RegisteredServicePublicKeyImpl@3781a6e0[location=<null>,algorithm=RSA],proxyPolicy=org.apereo.cas.services.RefuseRegisteredServiceProxyPolicy@1c1af7d2,logo=<null>,logoutUrl=<null>,requiredHandlers=[],properties={},multifactorPolicy=org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy@28bc1d22[multifactorAuthenticationProviders=[],failureMode=NOT_SET,principalAttributeNameTrigger=<null>,principalAttributeValueToMatch=<null>,bypassEnabled=false],informationUrl=<null>,privacyUrl=<null>,contacts=[],expirationPolicy=org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy@1b5bfdfc[deleteWhenExpired=false,notifyWhenDeleted=false,expirationDate=<null>],<null>] cannot be located. Falling back to default theme...>
2018-05-27 12:04:54,569 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [FixedThemeResolver]>
2018-05-27 12:04:54,570 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <No specific theme could be found. Using default theme [cas-theme-default}>
2018-05-27 12:04:54,601 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [CookieThemeResolver]>
2018-05-27 12:04:54,602 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [SessionThemeResolver]>
2018-05-27 12:04:54,603 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [RequestHeaderThemeResolver]>
2018-05-27 12:04:54,603 DEBUG [org.apereo.cas.services.web.ChainingThemeResolver] - <Attempting to resolve theme via [ServiceThemeResolver]>
2018-05-27 12:04:54,604 DEBUG [org.apereo.cas.services.web.ServiceThemeResolver] - <Service [id=1525768999448,name=LocalCasClient,description=Local CAS PHP Client,serviceId=http://cas-client.local:9090(\\z|/.*),usernameAttributeProvider=org.apereo.cas.services.DefaultRegisteredServiceUsernameProvider@d,theme=hbmsu,evaluationOrder=-1,logoutType=BACK_CHANNEL,attributeReleasePolicy=org.apereo.cas.services.ReturnAllowedAttributeReleasePolicy@33cff996[attributeFilter=<null>,principalAttributesRepository=org.apereo.cas.authentication.principal.DefaultPrincipalAttributesRepository@641f67bd[],authorizedToReleaseCredentialPassword=false,authorizedToReleaseAuthenticationAttributes=true,authorizedToReleaseProxyGrantingTicket=false,excludeDefaultAttributes=false,principalIdAttribute=<null>,consentPolicy=org.apereo.cas.services.consent.DefaultRegisteredServiceConsentPolicy@4c5fe168[excludedAttributes=<null>,includeOnlyAttributes=<null>,enabled=true],allowedAttributes=[]],accessStrategy=org.apereo.cas.services.DefaultRegisteredServiceAccessStrategy@7bcef346[enabled=true,ssoEnabled=true,requireAllAttributes=true,requiredAttributes={},unauthorizedRedirectUrl=<null>,caseInsensitive=false,rejectedAttributes={}],publicKey=org.apereo.cas.services.RegisteredServicePublicKeyImpl@3781a6e0[location=<null>,algorithm=RSA],proxyPolicy=org.apereo.cas.services.RefuseRegisteredServiceProxyPolicy@1c1af7d2,logo=<null>,logoutUrl=<null>,requiredHandlers=[],properties={},multifactorPolicy=org.apereo.cas.services.DefaultRegisteredServiceMultifactorPolicy@28bc1d22[multifactorAuthenticationProviders=[],failureMode=NOT_SET,principalAttributeNameTrigger=<null>,principalAttributeValueToMatch=<null>,bypassEnabled=false],informationUrl=<null>,privacyUrl=<null>,contacts=[],expirationPolicy=org.apereo.cas.services.DefaultRegisteredServiceExpirationPolicy@1b5bfdfc[deleteWhenExpired=false,notifyWhenDeleted=false,expirationDate=<null>],<null>] is configured to use a custom theme [hbmsu]>
2018-05-27 12:04:54,605 DEBUG [org.apereo.cas.services.web.ServiceThemeResolver] - <Can't find bundle for base name hbmsu, locale en_US>
java.util.MissingResourceException: Can't find bundle for base name hbmsu, locale en_US
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1573) ~[?:1.8.0_161]
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1396) ~[?:1.8.0_161]
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:1091) ~[?:1.8.0_161]
        at org.apereo.cas.services.web.ServiceThemeResolver$CasThemeResourceBundleMessageSource.doGetBundle(ServiceThemeResolver.java:177) ~[cas-server-support-themes-5.2.3.jar!/:5.2.3]
        at org.apereo.cas.services.web.ServiceThemeResolver.determineThemeNameToChoose(ServiceThemeResolver.java:154) ~[cas-server-support-themes-5.2.3.jar!/:5.2.3]
        at org.apereo.cas.services.web.ServiceThemeResolver.resolveThemeName(ServiceThemeResolver.java:117) ~[cas-server-support-themes-5.2.3.jar!/:5.2.3]
        at org.apereo.cas.services.web.ChainingThemeResolver.resolveThemeName(ChainingThemeResolver.java:42) ~[cas-server-support-themes-5.2.3.jar!/:5.2.3]
        at org.springframework.web.servlet.support.RequestContextUtils.getTheme(RequestContextUtils.java:250) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.servlet.support.RequestContext.getTheme(RequestContext.java:410) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.thymeleaf.spring4.expression.Themes.<init>(Themes.java:55) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.spring4.expression.SpringStandardExpressionObjectFactory.buildObject(SpringStandardExpressionObjectFactory.java:95) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.DialectSetConfiguration$AggregateExpressionObjectFactory.buildObject(DialectSetConfiguration.java:777) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.expression.ExpressionObjects.getObject(ExpressionObjects.java:108) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.spring4.expression.ThymeleafEvaluationContext.lookupVariable(ThymeleafEvaluationContext.java:107) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.expression.spel.ExpressionState.lookupVariable(ExpressionState.java:145) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.expression.spel.ast.VariableReference.getValueInternal(VariableReference.java:75) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.expression.spel.ast.CompoundExpression.getValueRef(CompoundExpression.java:51) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:87) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.expression.spel.ast.SpelNodeImpl.getValue(SpelNodeImpl.java:121) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:324) ~[spring-expression-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.thymeleaf.spring4.expression.SPELVariableExpressionEvaluator.evaluate(SPELVariableExpressionEvaluator.java:263) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.VariableExpression.executeVariableExpression(VariableExpression.java:165) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:66) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.LinkExpression.executeLinkExpression(LinkExpression.java:264) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.SimpleExpression.executeSimple(SimpleExpression.java:85) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.Expression.execute(Expression.java:109) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.expression.Expression.execute(Expression.java:138) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.standard.processor.AbstractStandardExpressionAttributeTagProcessor.doProcess(AbstractStandardExpressionAttributeTagProcessor.java:126) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.processor.element.AbstractAttributeTagProcessor.doProcess(AbstractAttributeTagProcessor.java:74) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.processor.element.AbstractElementTagProcessor.process(AbstractElementTagProcessor.java:95) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.util.ProcessorConfigurationUtils$ElementTagProcessorWrapper.process(ProcessorConfigurationUtils.java:633) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.ProcessorTemplateHandler.handleStandaloneElement(ProcessorTemplateHandler.java:918) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.StandaloneElementTag.beHandled(StandaloneElementTag.java:228) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.Model.process(Model.java:282) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.ProcessorTemplateHandler.handleOpenElement(ProcessorTemplateHandler.java:1587) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.OpenElementTag.beHandled(OpenElementTag.java:205) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.Model.process(Model.java:282) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.Model.process(Model.java:290) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.GatheringModelProcessable.process(GatheringModelProcessable.java:78) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.ProcessorTemplateHandler.handleCloseElement(ProcessorTemplateHandler.java:1640) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.CloseElementTag.beHandled(CloseElementTag.java:139) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.TemplateModel.process(TemplateModel.java:136) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.engine.TemplateManager.parseAndProcess(TemplateManager.java:592) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1098) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.TemplateEngine.process(TemplateEngine.java:1072) ~[thymeleaf-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.spring4.view.ThymeleafView.renderFragment(ThymeleafView.java:352) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.thymeleaf.spring4.view.ThymeleafView.render(ThymeleafView.java:190) ~[thymeleaf-spring4-3.0.9.RELEASE.jar!/:3.0.9.RELEASE]
        at org.springframework.webflow.mvc.servlet.ServletMvcView.doRender(ServletMvcView.java:55) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.mvc.view.AbstractMvcView.render(AbstractMvcView.java:204) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ViewState.render(ViewState.java:293) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ViewState.doEnter(ViewState.java:185) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.DecisionState.doEnter(DecisionState.java:51) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Transition.execute(Transition.java:228) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:105) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.State.enter(State.java:194) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.Flow.start(Flow.java:527) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:223) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.java:140) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_161]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_161]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_161]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_161]
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213) ~[spring-aop-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at com.sun.proxy.$Proxy158.launchExecution(Unknown Source) ~[?:?]
        at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:263) ~[spring-webflow-2.4.6.RELEASE.jar!/:2.4.6.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:967) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:901) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) ~[javax.servlet-api-3.1.0.jar!/:3.1.0]
        at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) ~[spring-webmvc-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[javax.servlet-api-3.1.0.jar!/:3.1.0]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) ~[tomcat-embed-websocket-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apereo.cas.web.support.AuthenticationCredentialsLocalBinderClearingFilter.doFilter(AuthenticationCredentialsLocalBinderClearingFilter.java:28) ~[cas-server-core-web-5.2.3.jar!/:5.2.3]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apereo.cas.security.RequestParameterPolicyEnforcementFilter.doFilter(RequestParameterPolicyEnforcementFilter.java:261) ~[cas-server-security-filter-2.0.7.jar!/:2.0.7]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apereo.cas.security.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:245) ~[cas-server-security-filter-2.0.7.jar!/:2.0.7]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.boot.actuate.trace.WebRequestTraceFilter.doFilterInternal(WebRequestTraceFilter.java:110) ~[spring-boot-actuator-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:81) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apereo.cas.logging.web.ThreadContextMDCServletFilter.doFilter(ThreadContextMDCServletFilter.java:93) ~[cas-server-core-logging-5.2.3.jar!/:5.2.3]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.boot.actuate.autoconfigure.MetricsFilter.doFilterInternal(MetricsFilter.java:106) ~[spring-boot-actuator-1.5.8.RELEASE.jar!/:1.5.8.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) ~[spring-web-4.3.16.RELEASE.jar!/:4.3.16.RELEASE]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apereo.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:66) ~[inspektr-common-1.8.0.GA.jar!/:1.8.0.GA]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:496) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:677) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:803) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:790) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:1.8.0_161]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:1.8.0_161]
        at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) ~[tomcat-embed-core-8.5.28.jar!/:8.5.28]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_161]




Please advise!

Best Regards,
Mohannad


Andy Ng

unread,
May 27, 2018, 10:53:18 AM5/27/18
to CAS Community
Hi Mohannad,

I think the problem might be some of your files / folder is put on the wrong directory.

See if you can write out how your files layouts, that might be helpful to solving your problem.

Meanwhile, you can also check out some theme customization discussion post, to see if it is helpful to you or not. https://groups.google.com/a/apereo.org/forum/m/#!topic/cas-user/J3g7AroO2mM

Cheers!
- Andy

Mohannad Henno

unread,
May 28, 2018, 2:14:38 AM5/28/18
to CAS Community
Hi Andy,

Thank you for your reply and for sharing the discussion links. My folder structure looks very similar to the one mentioned in the posts; here is it.


In the hbmsu.properties file I have added the following:

standard.custom.css.file=/themes/hbmsu/css/cas.css
admin.custom.css.file=/themes/hbmsu/css/admin.css
cas.javascript.file=/themes/hbmsu/js/cas.js

Simply i copied all CSS and JS files from the default theme to change them later.

Best Regards,
Mohannad

Andy Ng

unread,
May 28, 2018, 2:49:14 AM5/28/18
to CAS Community
Hi Mohannad,

The structure in general is definitely correct (For that I mean [src > main > resources > static > themes > hbmsu > css > ...])

One thing I spotted is that you didn't seems to have [src > main > resources > static > themes > hbmsu > js > ...]

I am suspecting that the line:
cas.javascript.file=/themes/hbmsu/js/cas.js

must required you to specified the [.. > static > themes > hbmsu > js ] folder, which I think you didn't include in your CAS path.

See if you create this: [src > main > resources > static > themes > hbmsu > js > cas.js]

Will that make your error goes away. If so, then try removing the line [cas.javascript.file=/themes/hbmsu/js/cas.js] to see if it will work if you remove the line, so you don't need to keep unnecessary folder in your project.

Cheers!
- Andy

Mohannad Henno

unread,
May 28, 2018, 7:56:35 AM5/28/18
to CAS Community
Hi Andy,

Actually this line cas.javascript.file=/themes/hbmsu/js/cas.js is commented in my properties file that's why I did not create the JS folder. Anyway I added the JS folder and uncommented that line and tried again and it gave the same error.

Do I need to enable any extra dependency or change in the configuration to have it activated?

Best Regards,
Mohannad

Andy Ng

unread,
May 28, 2018, 12:14:59 PM5/28/18
to CAS Community
Hi Mohannad,

I just follow your setting and make myself a quick 1 hour demo. And I do make it working.

In the process I spotted something weird in your setting.

Can you try moving the entire src folder inside the cas folder, just like how this person did:

Or, something like these:

├── build
│   └── tomcat
│       ├── logs
│       │   ├── access_log.2018-05-28.log
│       │   └── access_log.2018-05-29.log
│       └── work
│           └── Tomcat
│               └── localhost
│                   └── cas
├── build.gradle
├── build.sh
├── cas
│   ├── build
│   │   ├── libs
│   │   │   ├── cas.war
│   │   │   └── cas.war.original
│   │   ├── resources
│   │   │   └── main
│   │   │       ├── application_back.properties
│   │   │       ├── hbmsu
│   │   │       ├── hbmsu.properties
│   │   │       ├── service
│   │   │       │   └── testJSONFILE-123.json
│   │   │       ├── services
│   │   │       │   └── testJSONFILE-123.json
│   │   │       ├── static
│   │   │       │   └── themes
│   │   │       │       └── hbmsu
│   │   │       └── templates
│   │   └── tmp
│   │       └── war
│   │           └── MANIFEST.MF
│   ├── build.gradle
│   └── src
│       └── main
│           └── resources
│               ├── application_back.properties
│               ├── hbmsu
│               ├── hbmsu.properties
│               ├── service
│               │   └── testJSONFILE-123.json
│               ├── services
│               │   └── testJSONFILE-123.json
│               ├── static
│               │   └── themes
│               │       └── hbmsu
│               └── templates
├── etc
│   └── cas
│       └── config
│           ├── application.yml
│           ├── cas.properties
│           └── log4j2.xml
├── gradle
│   └── wrapper
│       ├── gradle-wrapper.jar
│       └── gradle-wrapper.properties
├── gradle.properties
├── gradlew
├── gradlew.bat
├── LICENSE
├── log
│   ├── cas_audit.log
│   ├── cas.log
│   ├── logArchive
│   │   ├── cas-2018-05-28-22-1.log
│   └── perfStats.log
├── README.md
├── settings.gradle

See if the above works

Cheers!
- Andy

Andy Ng

unread,
May 28, 2018, 9:18:30 PM5/28/18
to CAS Community
Ops make some mistake in the above diagram, forget to remove some file / add some file in. Should be this instead:

├── cas
│   └── src
│       └── main
│           └── resources
│               ├── hbmsu.properties

│               ├── services
│               │   └── testJSONFILE-123.json
│               ├── static
│               │   └── themes
│               │       └── hbmsu
│               │                 └── cas.css
│               └── templates

- Andy

Mohannad Henno

unread,
May 29, 2018, 2:36:11 AM5/29/18
to CAS Community
Hi Andy,

Thank you so much! Yes, this solved the issue.

Thank you again.

Best Regards,
Mohannad
Reply all
Reply to author
Forward
0 new messages