barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

вторник, 10 января 2012 г.

org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'authentication-provider'

Проблема:
При попытке задеплоить на Томкат веб-приложение, использующее Spring Security, вываливается исключение, ругающееся на xml-файл конфигурации Спринга, точнее, на вложенный в <beans> тег <authentication-provider>:
org.xml.sax.SAXParseException: cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'authentication-provider'
Причина:
При переходе версий Spring Security с 2.x на 3.x изменилась схема конфигурационного файла, теперь тег <authentication-provider> должен быть вложен в <authentication-manager>.

Решение:
Поправить конфигурацию спринга, обернув <authentication-provider> в <authentication-manager>:

    <authentication-manager>
        <authentication-provider >
            <user-service>
                <user name="test" password="test" authorities="ROLE_USER,ROLE_ADMIN" />
                <user name="alex" password="847c6f184197dc1545d9891d42814a7d" authorities="ROLE_USER" />
                <user name="tim" password="0513111ff330e25c631b5d3e9c0a4aae" authorities="ROLE_USER" />
            </user-service>
        </authentication-provider>
    </authentication-manager>

Комментариев нет:

Отправить комментарий