Я пытаюсь проверить мою страницу входа, используя mvc-test. Я работал очень хорошо, прежде чем добавил spring безопасность.
Мой код:
mockMvc.perform(
post("j_spring_security_check")
.param(LOGIN_FORM_USERNAME_FIELD, testUsernameValue)
.param(LOGIN_FORM_PASSWORD_FIELD, testPasswordValue))
.andDo(print())
.andExpect(status().isOk())
.andExpect(model().attribute(LOGIN_PAGE_STATUS_VALUE, LOGIN_PAGE_STATUS_FALSE_INDICATOR));
В тестовом классе добавлены правильные аннотации:
@RunWith(SpringJUnit4ClassRunner.class)
@WebAppConfiguration
@ContextConfiguration(locations = {"classpath:security-context.xml", "classpath:applicationContext.xml", "classpath:test-contexts/test-context.xml" })
Мой фильтр определен (в web.xml):
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
Когда я пытаюсь добавить web.xml в @ContextConfiguration, он терпит неудачу, когда я его удаляю, я получаю исключение:
java.lang.AssertionError: Status expected:<200> but was:<405>
Есть ли способ добавить DelegatingProxyFilter для проверки контекста с конфигурацией, определенной в моем security-context.xml, чтобы она работала? Я пробовал несколько учебников с инъекцией FilterProxyChain, но он не работает в моем случае.
Может кто-нибудь мне помочь? Спасибо заранее