[ 
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)

Reply via email to