Я добавил безопасность Spring в свое веб-приложение и сумел настроить его и заставить его работать, используя XSD-location-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 , it терпит неудачу, говоря мне, что я должен обновить мои описания схемы до схемы 5.2 .
Я попытался разрешить ее, заменив XSD-location-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 файл jar, содержащий файлы XSD, но это тоже не сработало:
<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>
я получаю эту ошибку компиляции:
Element type "beans" must be followed by either attribute specifications, ">" or "/>".
Причина, по которой я хочу заменить эти зависимости более высокой версией, состоит в том, чтобы заставить их использовать ту же версию выпуска, что и другие мои пружинные компоненты. , Удаление classpath: в начале моего относительного пути не помогло.
Я перебрал кучу связанных вопросов и ответов, но никто не решил эту проблему, не могли бы вы посоветовать?