在使用standaloneSetup的MockMvc进行单元测试时启用GlobalMethodsSecurity,可以通过以下步骤实现:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
@WebMvcTest
注解标记该类为Web MVC测试类,并指定要测试的控制器类。例如:@RunWith(SpringRunner.class)
@WebMvcTest(YourController.class)
public class YourControllerTest {
// ...
}
@Configuration
类,用于配置全局方法安全。在该类中,使用@EnableGlobalMethodSecurity
注解启用全局方法安全,并指定要使用的安全拦截器。例如:@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class GlobalMethodSecurityConfig extends GlobalMethodSecurityConfiguration {
// ...
}
@Import
注解导入上一步创建的全局方法安全配置类。例如:@RunWith(SpringRunner.class)
@WebMvcTest(YourController.class)
@Import(GlobalMethodSecurityConfig.class)
public class YourControllerTest {
// ...
}
MockMvc
对象进行单元测试,并且全局方法安全已经启用。例如:@RunWith(SpringRunner.class)
@WebMvcTest(YourController.class)
@Import(GlobalMethodSecurityConfig.class)
public class YourControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void testYourMethod() throws Exception {
mockMvc.perform(get("/your-endpoint"))
.andExpect(status().isOk())
.andExpect(content().string("Expected response"));
}
}
这样,你就可以在使用standaloneSetup的MockMvc进行单元测试时启用GlobalMethodsSecurity了。请注意,以上步骤中的YourController
和/your-endpoint
应根据你的实际情况进行替换。另外,关于GlobalMethodsSecurity的更多详细信息和配置选项,可以参考Spring Security官方文档:https://docs.spring.io/spring-security/site/docs/current/reference/html5/#method-security。
领取专属 10元无门槛券
手把手带您无忧上云