2016-09-24 4 views
3

Я не могу решить эту проблему, у меня есть версия XSD выше 4, тогда почему все еще существует конфликт?Spring Security: ошибка конфигурации

Я использую Spring JARs, и все они имеют версию 4 или выше и все еще получают ошибку.

Ниже XSD для spring-security.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:security="http://www.springframework.org/schema/security" 
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd 
     http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.1.xsd"> 
    <security:http auto-config="true"> <!-- ////this line holds error/////--> 
     <security:intercept-url pattern="/" 
      access="hasRole('ROLE_ADMIN')" /> 
     <security:form-login login-page="/login" 
      default-target-url="/" authentication-failure-url="/loginerror" /> 
     <security:logout logout-success-url="/logout" /> 
     <security:csrf disabled="true" /> 
    </security:http> 
    <security:authentication-manager> 
     <security:authentication-provider> 
      <security:user-service> 
       <security:user name="admin" authorities="ROLE_ADMIN" 
        password="admin" /> 
      </security:user-service> 
     </security:authentication-provider> 
    </security:authentication-manager> 
</beans> 

и следующее сообщение об ошибке:

Multiple annotations found at this line: - Configuration problem: You cannot use a spring-security-2.0.xsd or spring-security-3.0.xsd schema with Spring Security 3.1. Please update your schema declarations to the 3.1 schema. Offending resource: file [C:/Documents and Settings/Administrator/My Documents/Google Drive/spring_workspace/spring security_demo/WebContent/WEB-INF/security-context.xml] - You cannot use a spring-security-2.0.xsd or spring-security-3.0.xsd schema with Spring Security 3.1. Please update your schema declarations to the 3.1 schema.

и это моя схема для диспетчера сервлета:

<beans xmlns="http://www.springframework.org/schema/beans" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" 
    xmlns:context="http://www.springframework.org/schema/context" 
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.1.xsd 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.1.xsd 
     http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.1.xsd"> 

Сначала я думал, что у меня конфликты в обоих у которых есть файлы .xsd, но теперь оба файла .xsd имеют одну и ту же схему.

Edit: Event детали

org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: You cannot use a spring-security-2.0.xsd or spring-security-3.0.xsd schema with Spring Security 3.1. Please update your schema declarations to the 3.1 schema. Offending resource: file [C:/Documents and Settings/Administrator/My Documents/Google Drive/spring_workspace/spring security_demo/WebContent/WEB-INF/security-context.xml]

at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$BeansConfigProblemReporter.fatal(BeansConfig.java:1137)

at org.springframework.beans.factory.parsing.ReaderContext.fatal(ReaderContext.java:68)

at org.springframework.beans.factory.parsing.ReaderContext.fatal(ReaderContext.java:55)

at org.springframework.security.config.SecurityNamespaceHandler.parse(SecurityNamespaceHandler.java:66)

at org.springframework.ide.eclipse.beans.core.internal.model.namespaces.DelegatingNamespaceHandlerResolver$ElementTrackingNamespaceHandler.parse(DelegatingNamespaceHandlerResolver.java:177)

at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1411)

at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ErrorSuppressingBeanDefinitionParserDelegate.parseCustomElement(BeansConfig.java:1428)

at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1401)

at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:172)

at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$ToolingFriendlyBeanDefinitionDocumentReader.doRegisterBeanDefinitions(BeansConfig.java:1357)

at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:94)

at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:508)

at org.springframework.ide.eclipse.beans.core.internal.model.BeansConfig$2.registerBeanDefinitions(BeansConfig.java:410)

Как решить это?

ответ

2

Ваше исключение говорит

You should not use 4.1 xsd,since your spring security version is 3.1

В строке ниже вы упоминали версия весной безопасности, как 4.1, оно должно быть 3,1

http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.1.xsd"> 

Два пути решения

  1. Изменения в http://www.springframework.org/schema/security/spring-security-3.1.xsd
  2. Удалить версию, чтобы весна будет принимать автоматически http://www.springframework.org/schema/security/spring-security.xsd

Update: Добавить потребительные выражения приписывать http .Since вы используете выражение hasRole('Role_Admin') вы должны обеспечить это.

<security:http auto-config="true" use-expressions="true"> 
+0

stll, ведущий меня к тому же 'MatcherType' Я использую eclipse' neon', если это вызывает проблему? –

+0

Нет .. убедитесь, что у вас есть 'spring-security-web-3.1.X.RELEASE.jar из вашего пути к классам' .. вы можете вставить весь файл stacktrace..update вопрос –

+0

@HelloWorld изменить ваш url на'/** ' 'in ' –

Смежные вопросы