默认情况下,集成会查找名称为“
springSecurityFilterChain”的bean。在提供的示例中,使用的是独立安装程序,这意味着
MockMvc将不会
WebApplicationContext在测试中知道所提供的内容,因此将无法查找“
springSecurityFilterChain” bean。
解决此问题的最简单方法是使用如下代码:
MockMvc mockMvc = MockMvcBuilders // replace standaloneSetup with line below .webAppContextSetup(wac) .alwaysDo(print()) .apply(SecurityMockMvcConfigurers.springSecurity()) .build();
如果您真的想使用standaloneSetup(因为已经有了WebApplicationContext并没有什么意义),则可以使用以下命令显式提供springSecurityFilterChain:
@AutowiredFilterChainProxy springSecurityFilterChain;@Beforepublic void startMocks(){ controller = wac.getBean(RecipesController.class); MockMvc mockMvc = MockMvcBuilders .standaloneSetup(controller) .alwaysDo(print()) .apply(SecurityMockMvcConfigurers.springSecurity(springSecurityFilterChain)) .build(); MockitoAnnotations.initMocks(this);}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)