spring-security.xml 文件的解析错误
Posted
技术标签:
【中文标题】spring-security.xml 文件的解析错误【英文标题】:Parsing error for spring-security.xml file 【发布时间】:2012-11-26 03:23:36 【问题描述】:我对 xml 知之甚少或一无所知,我必须编写一个 spring-security.xml 文件。我猜这个问题与我的xml没有遵循xsd有关。这是xml。
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:s="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">
<s:http auto-config="true">
<s:intercept-url pattern="/login" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<s:intercept-url pattern="/index.jsp" access="IS_AUTHENTICATED_ANONYMOUSLY" />
<s:intercept-url pattern="/**" access="ROLE_USER" />
<s:intercept-url pattern="/" access="ROLE_USER" />
<s:form-login login-page="/login" default-target-url="/getemp"/>
<s:logout logout-success-url="/logout" />
</s:http>
<s:authentication-manager>
<s:authentication-provider>
<s:ldap-authentication-provider user-dn-pattern="uid=0,ou=people"/>
</s:authentication-provider>
</s:authentication-manager>
<s:ldap-server id="ldapServer" url="ldap://test.com:389" />
</beans>
当我尝试运行 Web 应用程序时出现错误。
原因:org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: 发现以元素 's:ldap-authentication-provider' 开头的无效内容。 '"http://www.springframework.org/schema/security":any-user-service, "http://www.springframework.org/schema/security":password-encoder' 之一是预期的。
这是xsd
spring security xsd
【问题讨论】:
【参考方案1】:xsd 表示<s:authentication-manager>
接受authentication-provider
或ldap-authentication-provider
作为子级。所以,删除包裹你的<s:ldap-authentication-provider>
的<s:authentication-provider>
,这样你就可以解决这个问题了。您的最终代码应如下所示:
<s:authentication-manager>
<s:ldap-authentication-provider user-dn-pattern="uid=0,ou=people"/>
</s:authentication-manager>
【讨论】:
以上是关于spring-security.xml 文件的解析错误的主要内容,如果未能解决你的问题,请参考以下文章
在使用 Oauth、SAML 和 spring-security 的多租户的情况下从 spring-security.xml 中获取错误