[
https://issues.apache.org/jira/browse/ARIES-1993?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17167339#comment-17167339
]
Arnaud MERGEY commented on ARIES-1993:
--------------------------------------
I have shared this pull request [https://github.com/apache/aries/pull/110] with
a fix proposal
> [blueprint/spring integration] Cannot parse spring-security 5 context
> ----------------------------------------------------------------------
>
> Key: ARIES-1993
> URL: https://issues.apache.org/jira/browse/ARIES-1993
> Project: Aries
> Issue Type: Bug
> Components: Blueprint
> Affects Versions: blueprint-spring-0.6.0
> Reporter: Arnaud MERGEY
> Priority: Major
>
> In a blueprint application, trying to parse this blueprint xml file
> {code:java}
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"<blueprint
> xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:spring="http://www.springframework.org/schema/beans"
> xmlns:context="http://www.springframework.org/schema/context"
> xmlns:security="http://www.springframework.org/schema/security"
> xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
> http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
> http://www.springframework.org/schema/beans
> http://www.springframework.org/schema/beans/spring-beans.xsd
> http://www.springframework.org/schema/context
> http://www.springframework.org/schema/context/spring-context.xsd
> http://www.springframework.org/schema/security
> https://www.springframework.org/schema/security/spring-security.xsd"
> default-activation="eager" default-availability="mandatory">
> <!-- <security:debug/> -->
> <security:http/> <security:user-service> <security:user name="user"
> password="password" authorities="ROLE_USER" /> </security:user-service>
> </blueprint>
> {code}
> fails with
> {code:java}
> [Blueprint Extender: 1] WARN
> org.apache.aries.blueprint.spring.SpringApplicationContext - Exception
> encountered during context initialization - cancelling refresh attempt:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.filterChains': Cannot resolve
> reference to bean
> 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting
> bean property 'sourceList' with key [0]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.web.DefaultSecurityFilterChain#0':
> Cannot resolve reference to bean
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'
> while setting constructor argument with key [5]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
> Cannot resolve reference to bean
> 'org.springframework.security.authentication.ProviderManager#0' while setting
> bean property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;[Blueprint
> Extender: 1] WARN org.apache.aries.blueprint.spring.SpringApplicationContext
> - Exception encountered during context initialization - cancelling refresh
> attempt: org.springframework.beans.factory.BeanCreationException: Error
> creating bean with name 'org.springframework.security.filterChains': Cannot
> resolve reference to bean
> 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting
> bean property 'sourceList' with key [0]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.web.DefaultSecurityFilterChain#0':
> Cannot resolve reference to bean
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'
> while setting constructor argument with key [5]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
> Cannot resolve reference to bean
> 'org.springframework.security.authentication.ProviderManager#0' while setting
> bean property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;[Blueprint
> Extender: 1] ERROR
> org.apache.aries.blueprint.container.BlueprintContainerImpl - Unable to start
> container for blueprint bundle
> com.bp.spring.hello/1.0.0.qualifierorg.springframework.beans.factory.BeanCreationException:
> Error creating bean with name 'org.springframework.security.filterChains':
> Cannot resolve reference to bean
> 'org.springframework.security.web.DefaultSecurityFilterChain#0' while setting
> bean property 'sourceList' with key [0]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.web.DefaultSecurityFilterChain#0':
> Cannot resolve reference to bean
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'
> while setting constructor argument with key [5]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
> Cannot resolve reference to bean
> 'org.springframework.security.authentication.ProviderManager#0' while setting
> bean property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1699)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:876)
> at
> org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:878)
> at
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)
> at
> org.apache.aries.blueprint.spring.SpringBeanProcessor.process(SpringBeanProcessor.java:56)
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.processProcessors(BlueprintContainerImpl.java:573)
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:417)
> at
> org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)
> at
> org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:45)
> at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
> at
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> at java.lang.Thread.run(Thread.java:748)Caused by:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.web.DefaultSecurityFilterChain#0':
> Cannot resolve reference to bean
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0'
> while setting constructor argument with key [5]; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
> Cannot resolve reference to bean
> 'org.springframework.security.authentication.ProviderManager#0' while setting
> bean property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:428)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:173)
> at
> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:691)
> at
> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
> ... 29 moreCaused by:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter#0':
> Cannot resolve reference to bean
> 'org.springframework.security.authentication.ProviderManager#0' while setting
> bean property 'authenticationManager'; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1699)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1444)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
> ... 43 moreCaused by:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.springframework.security.authentication.ProviderManager#0':
> Cannot resolve reference to bean
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0'
> while setting constructor argument; nested exception is
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:342)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:113)
> at
> org.springframework.beans.factory.support.ConstructorResolver.resolveConstructorArguments(ConstructorResolver.java:691)
> at
> org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:196)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1358)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1204)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:557)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:517)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:323)
> at
> org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:226)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:321)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
> ... 53 moreCaused by:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name
> 'org.springframework.security.config.authentication.AuthenticationManagerFactoryBean#0':
> FactoryBean threw exception on object creation; nested exception is
> java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:178)
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:101)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1821)
> at
> org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1266)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333)
> at
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
> at
> org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:330)
> ... 65 moreCaused by: java.lang.AbstractMethodError:
> org.apache.aries.blueprint.spring.BlueprintBeanFactory$WrapperBeanFactory.getBeanProvider(Lorg/springframework/core/ResolvableType;)Lorg/springframework/beans/factory/ObjectProvider;
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveBean(DefaultListableBeanFactory.java:431)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:352)
> at
> org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:345)
> at
> org.apache.aries.blueprint.spring.BlueprintBeanFactory.getBean(BlueprintBeanFactory.java:59)
> at
> org.springframework.security.config.authentication.AuthenticationManagerFactoryBean.getBeanOrNull(AuthenticationManagerFactoryBean.java:88)
> at
> org.springframework.security.config.authentication.AuthenticationManagerFactoryBean.getObject(AuthenticationManagerFactoryBean.java:65)
> at
> org.springframework.security.config.authentication.AuthenticationManagerFactoryBean.getObject(AuthenticationManagerFactoryBean.java:41)
> at
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:171)
> ... 71 more
> {code}
> This is because blueprint-spring integration is implementing spring 4
> BeanFactory interface, they have added some methods in spring 5 which needs
> to be implemented as well.
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)