提问者:小点点

WebMvcTest:从WebSecurityConfigrerAdapter迁移到SecurityFilterChain


如这里所述,Spring Security弃用了我已经使用了一段时间的WebSecurityConfigrerAdapter。我使用了基于组件的方法并引入了SecurityFilterChainInMemoryUserDetailsManagerbean(请参阅:提交),但后来我的一个测试失败了,它使用@WellMockUser

使用基于Spring Security组件的方法(SecurityFilterChain)时,@WebMvcTest测试是否适用于@WellMockUser

  • 测试:https://github.com/pszemus/spring-security-test/blob/master/src/test/java/com/example/springsecuritytest/TestControllerTest.java
  • 使用WebSecurityConfigrerAdapter(所有测试都通过)的旧安全配置:https://github.com/pszemus/spring-security-test/blob/c323ce3af77bb067c7eef58fd933689ef97c082c/src/main/java/com/example/springsecuritytest/SecurityConfiguration.java
  • 使用基于组件的方法的新安全配置(givenMockedCredentials_shouldAccessSecuredEndpoint测试失败,并显示消息:预期状态:

整个项目,测试失败,位于:https://github.com/pszemus/spring-security-test


共1个答案

匿名用户

您应该在测试类中添加@import(YourSecurityConfiguration. class)@WebMvcTest不会自动获取配置,因此您必须明确告诉它使用哪个配置。