CAS 6.4.x with SPNEGO, "Factory method 'spnegoAuthentications' threw exception"

122 views
Skip to first unread message

Thierry MURGUE

unread,
Sep 2, 2021, 9:31:17 AM9/2/21
to CAS Community

Hi all,

I have a working conf with SPNEGO for CAS 6.2.x (last tried 6.2.8).

I’ve tried for 2 days to do the same with the new 6.4.0 version.

I used the generated WAR overlay from the doc (SPNEGO Authentication / Resources / Generate CAS Server WAR Overlay)

I downloaded jcifs-ext.jar from the CAS codebase (branch 6.4.x) in lib/ (newly created)

I added implementation files("${projectDir}/lib/jcifs-ext.jar") into build.gradle just before spnego-webflow dependency

 

And when I build the project, I have error like this :

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Factory method 'spnegoAuthentications' threw exception; nested exception is java.lang.IllegalArgumentException: Location must not be null

 

All files are from the generated overlay, only the few changes explained before.

 

Any help will be very much appreciated.

Thanks in advance,

Best regards,

--

Thierry

Dmitriy Kopylenko

unread,
Sep 2, 2021, 9:58:46 AM9/2/21
to cas-...@apereo.org
Hi.

If you could post the entire stack trace, that would help to see what might be misconfigured.

Cheers,
D.

--
- 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 cas-user+u...@apereo.org.
To view this discussion on the web visit https://groups.google.com/a/apereo.org/d/msgid/cas-user/21608710-65f9-439c-8f8d-f38487feb134n%40apereo.org.

Thierry MURGUE

unread,
Sep 2, 2021, 10:17:14 AM9/2/21
to CAS Community, dkopylenko

Sure!

 

Here it is!

 



java.lang.IllegalStateException: Erreur lors du démarrage du conteneur fils

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:720)

at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)

at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)

at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:946)

at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1792)

at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:118)

at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:757)

at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:426)

at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1520)

at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:309)

at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:123)

at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:423)

at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:366)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:936)

at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:843)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1384)

at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1374)

at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)

at org.apache.tomcat.util.threads.InlineExecutorService.execute(InlineExecutorService.java:75)

at java.base/java.util.concurrent.AbstractExecutorService.submit(AbstractExecutorService.java:140)

at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:909)

at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:262)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardService.startInternal(StandardService.java:434)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:930)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

at org.apache.catalina.startup.Catalina.start(Catalina.java:772)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:342)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)

Caused by: org.apache.catalina.LifecycleException: Echec de démarrage du composant [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/cas]]

at org.apache.catalina.util.LifecycleBase.handleSubClassException(LifecycleBase.java:440)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:198)

at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)

... 37 more

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopedTarget.spnegoAuthentications' defined in class path resource [org/apereo/cas/config/SpnegoConfiguration.class]: Bean instant

iation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Factory method 'spnegoAuthentications' threw exception; nested exception is java.lang.IllegalArgumentException: Location must not be null

at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:658)

at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:486)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1334)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1177)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564)

at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524)

at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$1(AbstractBeanFactory.java:374)

at org.springframework.cloud.context.scope.GenericScope$BeanLifecycleWrapper.getBean(GenericScope.java:376)

at org.springframework.cloud.context.scope.GenericScope.get(GenericScope.java:179)

at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:371)

at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208)

at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154)

at org.springframework.cloud.context.scope.refresh.RefreshScope.eagerlyInitialize(RefreshScope.java:125)

at org.springframework.cloud.context.scope.refresh.RefreshScope.start(RefreshScope.java:117)

at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:112)

at org.springframework.cloud.context.scope.refresh.RefreshScope.onApplicationEvent(RefreshScope.java:67)

at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)

at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)

at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)

at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)

at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)

at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938)

at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)

at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)

at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754)

at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434)

at org.springframework.boot.SpringApplication.run(SpringApplication.java:338)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:175)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:155)

at org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:97)

at org.apereo.cas.util.spring.boot.AbstractCasSpringBootServletInitializer.onStartup(AbstractCasSpringBootServletInitializer.java:32)

at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:174)

at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5166)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)

... 38 more

Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [java.util.List]: Factory method 'spnegoAuthentications' threw exception; nested exception is java.lang.IllegalArgumentException: Location must not be null

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)

at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:653)

... 71 more

Caused by: java.lang.IllegalArgumentException: Location must not be null

at org.springframework.util.Assert.notNull(Assert.java:201)

at org.springframework.core.io.DefaultResourceLoader.getResource(DefaultResourceLoader.java:145)

at org.springframework.context.support.GenericApplicationContext.getResource(GenericApplicationContext.java:228)

at org.apereo.cas.config.SpnegoConfiguration.spnegoAuthentications(SpnegoConfiguration.java:68)

at org.apereo.cas.config.SpnegoConfiguration$$EnhancerBySpringCGLIB$$2ce2197c.CGLIB$spnegoAuthentications$2(<generated>)

at org.apereo.cas.config.SpnegoConfiguration$$EnhancerBySpringCGLIB$$2ce2197c$$FastClassBySpringCGLIB$$43038486.invoke(<generated>)

at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)

at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:331)

at org.apereo.cas.config.SpnegoConfiguration$$EnhancerBySpringCGLIB$$2ce2197c.spnegoAuthentications(<generated>)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:566)

at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)

... 72 more

Dmitriy Kopylenko

unread,
Sep 3, 2021, 10:02:53 AM9/3/21
to cas-...@apereo.org
Hi there.

The error points to this line: https://github.com/apereo/cas/blob/master/support/cas-server-support-spnego/src/main/java/org/apereo/cas/config/SpnegoConfiguration.java#L68 where it calls Spring resource loader abstraction to load Kerboros config file and apparently the resource representation of that Kerboros config file is null. That is controlled by this setting -> cas.authn.spnego.system.kerberos-conf

You might want to check that you have correctly specified the value for that property pointing to your Kerboros config file.

D.

Thierry MURGUE

unread,
Sep 7, 2021, 4:16:53 AM9/7/21
to CAS Community, dkopylenko
Hi Dmitriy, Hi all!

It Works! Thanks a lot.
With 6.2, this setting was not mandatory... Maybe, they should add this in the docs (can't find here : https://apereo.github.io/cas/6.4.x/authentication/SPNEGO-Authentication.html)
Or maybe I didn't look at the right place in the docs.

Thanks you again.
Best regards,
--
Thierry
Reply all
Reply to author
Forward
0 new messages