在Spring Boot单元测试中对RestController中的受保护资源进行身份验证调用,可以通过以下步骤实现:
下面是一个示例代码:
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
import org.springframework.test.web.servlet.result.MockMvcResultMatchers;
@SpringBootTest
@AutoConfigureMockMvc
public class MyControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
@WithMockUser(username = "user", roles = "USER")
public void testProtectedResource() throws Exception {
mockMvc.perform(MockMvcRequestBuilders.get("/protected-resource"))
.andExpect(MockMvcResultMatchers.status().isOk())
.andExpect(MockMvcResultMatchers.content().string("Protected resource"));
}
}
在上述示例中,使用@WithMockUser注解指定了一个模拟的用户身份,其中username为"user",roles为"USER"。然后使用MockMvc执行GET请求,访问受保护的资源"/protected-resource",并使用andExpect方法对请求的结果进行断言。
这样,在Spring Boot单元测试中就可以模拟对RestController中受保护资源的身份验证调用了。
关于Spring Boot和Spring Security的更多信息和使用技巧,你可以参考腾讯云的相关文档和产品介绍:
领取专属 10元无门槛券
手把手带您无忧上云