security.xml странная ошибка при использовании Spring

#spring-security

#spring-безопасность

Вопрос:

Я пытаюсь настроить Spring Security в своем простом приложении. Вот мой файл конфигурации, security.xml :

 <beans:beans xmlns="http://www.springframework.org/schema/security"
    xmlns:b="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:jdbc="http://www.springframework.org/schema/jdbc"
    xsi:schemaLocation="http://www.springframework.org/schema/beans
                        http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                        http://www.springframework.org/schema/jdbc
                        http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd
                        http://www.springframework.org/schema/security
                        http://www.springframework.org/schema/security/spring-security-3.0.xsd">
    <http>
        <form-login login-page="/login/" authentication-failure-url="/fail/" />
        <logout logout-success-url="/" />
    </http>

    <authentication-manager>
        <authentication-provider user-service-ref='myUserDetailsService' />
    </authentication-manager>

    <b:bean id="myUserDetailsService" class="my.package.security.MyUserDataService" />
</beans:beans>
  

Я получил следующие ошибки при развертывании:

Префикс «beans» для элемента «beans:beans» не привязан.

Как я могу решить эту проблему?

Ответ №1:

Вам не хватает префиксов beans и b . Вы объявили b префикс, а затем использовали beans один. Вам нужно выбрать один и придерживаться его. Например, заменить

 xmlns:b="http://www.springframework.org/schema/beans" 
  

с

 xmlns:beans="http://www.springframework.org/schema/beans" 
  

и затем

 <b:bean...
  

с

 <beans:bean...
  

Ответ №2:

Вы объявляете пространство имен как b: и используете его везде, кроме заключающего beans тега, в котором вы используете beans:beans вместо b:beans .