簡體   English   中英

Spring Security:配置錯誤

[英]Spring Security : configuration error

我無法解決這個問題,我有4級以上的XSD版本,為什么還有沖突呢?

我正在使用Spring JAR,它們都有版本4或更高版本,但仍然出錯。

以下是spring-security.xml XSD:

<?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> 

以下是錯誤:

在此行找到多個注釋: - 配置問題:您不能在Spring Security 3.1中使用spring-security-2.0.xsd或spring-security-3.0.xsd架構。 請將架構聲明更新為3.1架構。 違規資源:文件[C:/ Documents and Settings / Administrator / My Documents / Google Drive / spring_workspace / spring security_demo / WebContent / WEB-INF / security-context.xml] - 您不能使用spring-security-2.0.xsd或Spring Security 3.1的spring-security-3.0.xsd模式。 請將架構聲明更新為3.1架構。

這是我的調度程序servlet架構:

<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'文件都有相同的模式。

編輯:活動詳情

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:配置問題:您不能在Spring Security 3.1中使用spring-security-2.0.xsd或spring-security-3.0.xsd架構。 請將架構聲明更新為3.1架構。 違規資源:文件[C:/ Documents and Settings / Administrator / My Documents / Google Drive / spring_workspace / spring security_demo / WebContent / WEB-INF / security-context.xml]

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

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

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

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

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

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

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

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

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

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

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

怎么解決?

你的例外說

您不應該使用4.1 xsd,因為您的Spring安全版本是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

更新:將use-expressions屬性添加到http 。因為您正在使用表達式hasRole('Role_Admin')您必須提供此屬性。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM