gpt4 book ai didi

Spring Test Junit 5 & Security boot 2.2 如何模拟认证?

转载 作者:行者123 更新时间:2023-12-04 04:03:03 25 4
gpt4 key购买 nike

我想为使用 JWT token 验证的 Rest API 创建 JUnit 5 测试:这个 jwt token 是在来自不同(身份验证服务器)的 UI 上生成的,我在我的 API 中使用这个 token 来保护我如何模拟这个在我的测试课上。 RestController 用@PreAuthorize("isAuthenticated()") 注释

@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
@AutoConfigureMockMvc
@ActiveProfiles("local")
class ManagementSoftwareControllerTest {



@Autowired
private MockMvc mockMvc;

@Autowired
private WebApplicationContext context;

@BeforeEach
void init() {
mockMvc = MockMvcBuilders
.webAppContextSetup(context)
.apply(springSecurity())
.build();
}

@Test
public void testGetWidgetsSuccess() throws Exception {

// Execute the GET request
mockMvc.perform(MockMvcRequestBuilders.get("/vcf/v1/test")
.with(csrf())
.contentType(MediaType.APPLICATION_JSON)
.accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andReturn();


}

}

最佳答案

添加以下依赖:

<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<version>4.2.3.RELEASE</version>
<scope>test</scope>
</dependency>

然后使用 WithMockUser 如下:

@Test
@WithMockUser(username = "YourUsername", password = "YourPassword", roles = "USER")
public void testAuth() throws Exception {
mockMvc.perform(get("/yourApi"))
.andExpect(status().isOk());
}

关于Spring Test Junit 5 & Security boot 2.2 如何模拟认证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62788539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com