Поддержка Spring Security 3.2 CSRF для составных запросов

Мы используем Spring Security с нашим приложением в течение нескольких лет. На прошлой неделе мы обновили Spring Security с версии 3.1.4 до 3.2.0. Обновление прошло успешно, и мы не нашли никаких ошибок после обновления.

Просматривая документацию по Spring Security 3.2.0, мы обнаружили новые функции, связанные с защитой CSRF и заголовками безопасности. Мы следовали инструкциям в документации по Spring Security 3.2.0, чтобы включить защиту CSRF для наших защищенных ресурсов. Он отлично работает для обычных форм, но не работает для многочастных форм в нашем приложении. При отправке формы,CsrfFilter выдает ошибку «Отказано в доступе», ссылаясь на отсутствие токена CSRF в запросе (определяется по журналам DEBUG). Мы попытались использовать первый вариант, предложенный вSpring Security документация для того, чтобы защита CSRF работала с многочастными формами. Мы не хотим использовать второй предложенный вариант, поскольку он пропускает токены CSRF через URL-адреса и создает угрозу безопасности.

Соответствующая часть нашей конфигурации, основанная на документации, доступна в видеСуть на Github. Мы используем Spring версии 4.0.0.

Обратите внимание, что мы уже попробовали следующие варианты без успеха:

Не объявляяMultipartFilter в .web.xmlНе задано имя компонента-преобразователя дляMultipartFilter в .web.xmlИспользование имени компонента распознавателя по умолчаниюfilterMultipartResolver в .webContext.xml

ОБНОВИТЬ: Я подтвердил, что задокументированное поведение не работает даже с примером приложения на одной странице. Может ли кто-нибудь подтвердить, что задокументированное поведение работает так, как ожидалось? Есть ли пример рабочего приложения, которое можно использовать?

Ответы на вопрос(4)

Ваш ответ на вопрос