我已经将Spring Security 添加到我的web应用程序中,并设法使用xsd位置uri对其进行配置和工作http://www.springframework.org/schema/security/spring-security-4.2.xsd . 这是我的工作配置,名为security-context.xml:
<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/security http://www.springframework.org/schema/security/spring-security-4.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="primaryadmin" authorities="admin"
password="dummypass" />
<security:user name="secondaryadmin" authorities="admin"
password="dummypass" />
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
<security:http use-expressions="true">
<security:intercept-url pattern="/**" access="isAuthenticated()" />
<security:form-login />
</security:http>
</beans>
我面临的问题是,这个xsd文件的最高版本在这个位置是4.2,所以当我想将maven依赖项(spring security core、spring security web、spring security config)与更高版本5.2.1.release一起使用时,它失败了,告诉我应该将模式声明更新为5.2模式。
我试图通过将xsd位置uri替换为http://www.springframework.org/schema/beans/spring-beans.xsd 但我在部署过程中遇到了一个错误:
Caused by: org.xml.sax.SAXParseException; lineNumber: 5; columnNumber: 35; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'security:authentication-manager'.
我还试图通过引用maven下载的包含xsd文件的jar来解决这个问题,但这也不起作用:
<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/security classpath:org/springframework/security/config/spring-security-4.2.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
<security:authentication-manager>
在 <security:authentication-manager>
第i行出现以下编译错误:
Element type "beans" must be followed by either attribute specifications, ">" or "/>".
我想用更高版本替换这些依赖项的原因是使它们使用与我的其他spring组件相同的版本。删除类路径:在相对路径的开头没有帮助。
我已经钻研了一堆相关的问题和答案,但没有一个能解决这个问题,你能给我建议吗?
暂无答案!
目前还没有任何答案,快来回答吧!