2011-01-05 4 views
2

스프링 통합 2.0.0을 사용 중이며 Spring 통합에 의해 노출 된 웹 서비스에 대한 호출을 보호하려고합니다. 그래서 안전한 채널을 사용했고 지금까지 Spring-core 3.0.5와 Spring security 3.0.5를 사용하여 잘 동작합니다.스프링 통합 스프링 보안과 스프링 보안을 모두 사용할 때 어떤 버전을 사용할 것입니까?

하지만 스프링 웹 서비스의 WSS 인터셉터를 사용하고 싶었습니다. 나는이 같은 XwsSecurityInterceptor를 선언 할 때 :

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'wsSecurityInterceptor' defined in class path resource [SES/Operations/Logging/applicationContext-security.xml]: Cannot create inner bean 'org.springframework.ws.soap.security.xwss.callback.SpringPlainTextPasswordValidationCallbackHandler#b0dbb' of type [org.springframework.ws.soap.security.xwss.callback.SpringPlainTextPasswordValidationCallbackHandler] while setting bean property 'callbackHandler'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.ws.soap.security.xwss.callback.SpringPlainTextPasswordValidationCallbackHandler#b0dbb' defined in class path resource [SES/Operations/Logging/applicationContext-security.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/security/AuthenticationManager 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:281) 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:120) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1317) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291) 
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222) 
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288) 
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:190) 
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:574) 
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895) 
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425) 
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4135) 
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4630) 
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3391) 
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:426) 
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1309) 
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) 
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) 
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) 
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) 
at java.lang.Thread.run(Thread.java:662) 
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.ws.soap.security.xwss.callback.SpringPlainTextPasswordValidationCallbackHandler#b0dbb' defined in class path resource [SES/Operations/Logging/applicationContext-security.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: org/springframework/security/AuthenticationManager 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:527) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:270) 
... 25 more 
Caused by: java.lang.NoClassDefFoundError: org/springframework/security/AuthenticationManager 
at java.lang.Class.getDeclaredMethods0(Native Method) 
at java.lang.Class.privateGetDeclaredMethods(Class.java:2427) 
at java.lang.Class.privateGetPublicMethods(Class.java:2547) 
at java.lang.Class.getMethods(Class.java:1410) 
at java.beans.Introspector.getPublicDeclaredMethods(Introspector.java:1280) 
at java.beans.Introspector.getTargetMethodInfo(Introspector.java:1154) 
at java.beans.Introspector.getBeanInfo(Introspector.java:405) 
at java.beans.Introspector.getBeanInfo(Introspector.java:164) 
at org.springframework.beans.CachedIntrospectionResults.<init>(CachedIntrospectionResults.java:224) 
at org.springframework.beans.CachedIntrospectionResults.forClass(CachedIntrospectionResults.java:149) 
at org.springframework.beans.BeanWrapperImpl.getCachedIntrospectionResults(BeanWrapperImpl.java:305) 
at org.springframework.beans.BeanWrapperImpl.getPropertyDescriptorInternal(BeanWrapperImpl.java:335) 
at org.springframework.beans.BeanWrapperImpl.isWritableProperty(BeanWrapperImpl.java:407) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1319) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1076) 
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) 
... 27 more 
Caused by: java.lang.ClassNotFoundException: org.springframework.security.AuthenticationManager 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) 
... 43 more 

내 받는다는 종속성 :

<bean id="wsSecurityInterceptor" class="org.springframework.ws.soap.security.xwss.XwsSecurityInterceptor"> 
    <description> 
     This interceptor validates incoming messages according to the policy defined in 'securityPolicy.xml'. 
     The policy defines that all incoming requests must have a UsernameToken with a password digest in it. 
     The actual authentication is performed by the Spring Security callback handler. 
    </description> 
    <property name="secureResponse" value="false"/> 
    <property name="policyConfiguration" 
       value="classpath:securityPolicy.xml"/> 
    <property name="callbackHandler"> 
     <bean class="org.springframework.ws.soap.security.xwss.callback.SpringPlainTextPasswordValidationCallbackHandler"> 
      <property name="authenticationManager" ref="authenticationManager"/> 
     </bean> 
    </property> 
</bean> 

나는이 스택을 얻을 그리고 다음과 같은 문제를했다 있습니다 :

<dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-ldap</artifactId> 
    <version>3.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-core</artifactId> 
    <version>3.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-web</artifactId> 
    <version>3.0.5.RELEASE</version> 
    </dependency> 

    <dependency> 
    <groupId>org.springframework.security</groupId> 
    <artifactId>spring-security-config</artifactId> 
    <version>3.0.5.RELEASE</version> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.directory.server</groupId> 
    <artifactId>apacheds-core</artifactId> 
    <version>1.5.5</version> 
    <scope>compile</scope> 
    </dependency> 
    <dependency> 
    <groupId>org.apache.directory.server</groupId> 
    <artifactId>apacheds-server-jndi</artifactId> 
    <version>1.5.5</version> 
    <scope>compile</scope> 
    <optional>true</optional> 
    </dependency> 

     <dependency> 
      <groupId>org.springframework.ws</groupId> 
      <artifactId>spring-ws-security</artifactId> 
      <version>1.5.9</version> 
      <scope>runtime</scope> 
      <exclusions> 
       <exclusion> 
        <groupId>org.apache.ws.security</groupId> 
        <artifactId>wss4j</artifactId> 
       </exclusion> 
       <exclusion> 
        <groupId>org.springframework</groupId> 
        <artifactId>spring-beans</artifactId> 
       </exclusion> 
      </exclusions> 
     </dependency> 

    <!-- Spring integration dependencies --> 
    <dependency> 
    <groupId>org.springframework.integration</groupId> 
    <artifactId>spring-integration-xml</artifactId> 
    <version>2.0.0.RELEASE</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework.integration</groupId> 
    <artifactId>spring-integration-security</artifactId> 
    <version>2.0.0.RELEASE</version> 
    </dependency> 
    <dependency> 
    <groupId>org.springframework.integration</groupId> 
    <artifactId>spring-integration-ws</artifactId> 
    <version>2.0.0.RELEASE</version> 
    </dependency> 

나는 몇몇 패키지가 2.x와 3.x 버전 사이에서 재 작업되었다는 것을 읽었을 때 의존성 문제와 관련이 있다고 생각한다. 같은 병의 3.0.5 버전과 충돌하는 2.0.6 버전의 스프링 빈을 가져 왔으므로 스프링 - 보안 - 스프링 - 빈에 대한 전이 종속성을 제외해야한다는 점에 유의하십시오.

내 질문은 : 어떤 버전의 다른 스프링 모듈 (스프링 - 통합, 스프링 통합, 스프링 보안, 스프링 프레임 워크)을 사용해야합니까? 사전에 어떤 도움

덕분에

파브리스

답변

0

최신 버전이 함께 작동합니다. 이번 주 Spring-ws 버전 2.0이 릴리스됨에 따라 문제는 생산을 위해 해결되어야합니다.

+0

안녕하세요, 저는 스프링 - WS를 최신 2.0 스냅 샷으로 업그레이드했습니다. 당신의 도움을 주셔서 감사합니다! –

관련 문제