mvc-test を使用してログイン ページをテストしようとしています。春のセキュリティを追加する前は、かなりうまくいっていました。
私のコードは次のとおりです。
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>
@ContextConfiguration に web.xml を追加しようとすると失敗し、削除すると例外が発生します。
java.lang.AssertionError: Status expected:<200> but was:<405>
DelegatingProxyFilter を追加して、security-context.xml で定義された構成でコンテキストをテストし、動作させる方法はありますか? FilterProxyChain を注入していくつかのチュートリアルを試しましたが、私の場合はうまくいきません。
誰かがそれを手伝ってくれますか?前もって感謝します