我想使用 Spring 安全框架对其余控制器进行单元测试,该控制器通过 JWT 令牌进行身份验证。我无法找到模拟基于 JWT 令牌的身份验证来测试其余控制器的方法。
请让我知道流程或分享任何有帮助的链接
使用此依赖项
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<version>6.2.2</version>
<scope>test</scope>
</dependency>
https://mvnrepository.com/artifact/org.springframework.security/spring-security-test
使用--> org.springframework.test.web.servlet.MockMvc你可以在没有服务器的情况下调用api。
在调用中,您可以使用 --> org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.jwt 合并 jwt 令牌
下面给出的例子
mockMvc.perform(get("/your-endpoint")
.with(jwt().jwt(builder -> builder.claim("username", "testUser"))))
.andExpect(status().isOk());