我想使用像这样配置的Spring安全性
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
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.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-4.0.xsd">
<http>
<intercept-url pattern="/add-job**" access="hasRole('USER')" />
<form-login />
<logout />
</http>
<authentication-manager>
<authentication-provider>
<user-service>
<user name="admin" password="admin" authorities="ROLE_USER, ROLE_ADMIN" />
</user-service>
</authentication-provider>
</authentication-manager>
</beans:beans>
但是我的错误是
此行找到多个注释: - schema_reference.4:无法读取架构文档“http://www.springframework.org/schema/ security / spring-security-4.0.xsd',因为1)找不到文件; 2)文件无法阅读; 3) 文档的根元素不是。 - cvc-complex-type.2.4.c:匹配的通配符是strict,但是找不到元素的声明 的 'http'。
和
我的安全pom.xml是
<!-- Security -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>4.0.2.RELEASE</version>
</dependency>
我无法找到解决此问题的方法。
答案 0 :(得分:3)
感谢回答家伙,但最后我在Migrating from Spring Security 3.x to 4.x (XML Configuration)找到了解决方案,并找到了以下依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>4.0.0.RELEASE</version>
</dependency>
这与问题中提到的一面,这种方法解决了我的问题。
答案 1 :(得分:1)
Spring建议使用此http://www.springframework.org/schema/security/spring-security.xsd
代替指定版本号,就像使用spring-beans
一样。
这样,我有一个具有相同Spring安全依赖关系的项目,而是4.0.2.RELEASE
我有4.0.1.RELEASE
并且它没有问题。
所以你必须按如下方式尝试模式配置:
xsi:schemaLocation="
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"
如果它不起作用,那么您可能会遇到传递依赖问题,而您只是加载两个或更多不同的spring安全版本。在这种情况下,请尝试使用mvn dependency:tree
查看configuration
工件上是否存在多个弹簧安全依赖性,并排除您不需要的那个。