Has anyone managed to get the Custom Seraph Authenticator to work for Confluence 4.0?
Asked by Scott Faller:

The following wiki contains information about a custom siteminder Seraph Authenticator for Confluence 2.1.3

<http://confluence.atlassian.com/display/DEV/SiteMinder+Custom+Seraph+Authenticator+for+Confluence>

Will this work for the latest current version, Confluence 4.0?


Answers:
author: Joe Clark
body: Seraph hasn't changed very much in recent years, so custom authenticators shoud, for the most part, continue to work across Confluence versions.

The only major change in recent history was in Confluence 3.5 - since we introduced totally revamped LDAP support in this release, the user mangement API changed quite a bit. This introduced some breaking changes when it comes to adding new users or trying to modify user properties.

If you encounter any specific problems with changes in the user management API - please post them here and we can work out the details of what you need to change.

comments: author: evaldas
body: Hi Joseph, are there any API changes in Confluence 5 ? I'm trying to set up Confluence 5 with Jasig CAS client 3.3 built from sources which supports Confluence 3.5 changes, but having no luck so far.


author: Joe Clark
body: Hi,

There were some changes required for Confluence 4.1 compatibility. I believe that the Jasig CAS client was updated for these changes, so you should make sure that you are using the latest available version.

Joe.


author: Wiki Team
body: Hi ,

We have update our confluence from 3.2 to 3.5.17 in order to upgrade it to 5.1, after the upgrade we are not able to start confluence using customeauthentication wiht seraph, we are getting following errors

Aug 19, 2013 9:15:52 AM org.apache.catalina.core.StandardContext listenerStart  
SEVERE: Exception sending context initialized event to listener instance of class com.atlassian.config.bootstrap.BootstrappedContextLoaderListener  
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobTriggerFactory' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedScheduledJobTriggerFactoryTarget' while setting bean property 'target'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobTriggerFactoryTarget' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedScheduledJobRegistry' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobRegistry' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedSystemJobs' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedSystemJobs' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot create inner bean 'clearExpiredRememberMeTokensManagedJob' of type \[com.atlassian.confluence.schedule.ManagedScheduledCronJob\] while setting constructor argument with key \[13\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensManagedJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'clearExpiredRememberMeTokensJob' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobTriggerFactoryTarget' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedScheduledJobRegistry' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobRegistry' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedSystemJobs' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedSystemJobs' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot create inner bean 'clearExpiredRememberMeTokensManagedJob' of type \[com.atlassian.confluence.schedule.ManagedScheduledCronJob\] while setting constructor argument with key \[13\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensManagedJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'clearExpiredRememberMeTokensJob' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedScheduledJobRegistry' defined in class path resource \[schedulingSubsystemContext.xml\]: Cannot resolve reference to bean 'managedSystemJobs' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedSystemJobs' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot create inner bean 'clearExpiredRememberMeTokensManagedJob' of type \[com.atlassian.confluence.schedule.ManagedScheduledCronJob\] while setting constructor argument with key \[13\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensManagedJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'clearExpiredRememberMeTokensJob' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'managedSystemJobs' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot create inner bean 'clearExpiredRememberMeTokensManagedJob' of type \[com.atlassian.confluence.schedule.ManagedScheduledCronJob\] while setting constructor argument with key \[13\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensManagedJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'clearExpiredRememberMeTokensJob' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensManagedJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'clearExpiredRememberMeTokensJob' while setting constructor argument; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'clearExpiredRememberMeTokensJob' defined in class path resource \[schedulingSubsystemManagedContext.xml\]: Cannot resolve reference to bean 'rememberMeTokenDao' while setting bean property 'jobDataAsMap' with key \[TypedStringValue: value \[rememberMeTokenDao\], target type \[null\]\]; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeTokenDao' defined in class path resource \[atlassianUserContext.xml\]: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'rememberMeConfig' defined in class path resource \[atlassianUserContext.xml\]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class \[com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration\]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
Caused by: java.lang.NoClassDefFoundError: com/atlassian/seraph/auth/SimpleAbstractRoleMapper  
at java.lang.ClassLoader.defineClass1(Native Method)  
at java.lang.ClassLoader.defineClass(ClassLoader.java:792)  
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)  
at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818)  
at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159)  
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647)  
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)  
at com.opensymphony.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:96)  
at com.atlassian.seraph.config.SecurityConfigImpl.configureClass(SecurityConfigImpl.java:280)  
at com.atlassian.seraph.config.SecurityConfigImpl.configureRoleMapper(SecurityConfigImpl.java:262)  
at com.atlassian.seraph.config.SecurityConfigImpl.\<init\>(SecurityConfigImpl.java:161)  
at com.atlassian.seraph.config.SecurityConfigFactory.loadInstance(SecurityConfigFactory.java:56)  
at com.atlassian.seraph.config.SecurityConfigFactory.getInstance(SecurityConfigFactory.java:21)  
at com.atlassian.seraph.service.rememberme.DefaultRememberMeConfiguration.\<init\>(DefaultRememberMeConfiguration.java:21)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)  
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)  
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)  
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)  
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:85)  
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:61)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:757)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:722)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireByName(AbstractAutowireCapableBeanFactory.java:881)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:829)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedMap(BeanDefinitionValueResolver.java:320)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:140)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)  
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:401)  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:121)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:800)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:718)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:216)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:123)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:287)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:132)  
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:401)  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:121)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:800)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:718)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)  
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:401)  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:121)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:800)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:718)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)  
at org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:401)  
at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:121)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:800)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:718)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:386)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:267)  
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:110)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1100)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:862)  
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:423)  
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:249)  
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:155)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:246)  
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:160)  
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:285)  
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:352)  
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:246)  
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:189)  
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:49)  
at com.atlassian.spring.container.ContainerContextLoaderListener.contextInitialized(ContainerContextLoaderListener.java:32)  
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4205)  
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4704)  
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)  
at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)  
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)  
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)  
at org.apache.catalina.core.StandardService.start(StandardService.java:525)  
at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)  
at org.apache.catalina.startup.Catalina.start(Catalina.java:595)  
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:606)  
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)  
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)  
Caused by: java.lang.ClassNotFoundException: com.atlassian.seraph.auth.SimpleAbstractRoleMapper  
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1680)  
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526)

**Can you please help us to resolve the issue ?**


author: Jean de Laulani?
body: Hi there,

there is an updated version of that Siteminder connector [here](https://bitbucket.org/mryall/confluence-siteminder-authenticator/overview) compatible with Confluence 3.5 (and the revamped LDAP part) so should work with Confluence 4 (though i haven't tested it yet).

Actually, I'd interested to know if you used that connector with a previous version of Confluence, I've used with 2.10.x but could not make it work succesfully with 3.3.x

regards,


Tags: seraph

siteminder