如何使用 Spring Security 模拟基于令牌的身份验证以进行单元测试 Spring Boot Rest 控制器?

问题描述 投票:0回答:1

我想使用 Spring 安全框架对其余控制器进行单元测试,该控制器通过 JWT 令牌进行身份验证。我无法找到模拟基于 JWT 令牌的身份验证来测试其余控制器的方法。

请让我知道流程或分享任何有帮助的链接

spring-boot spring-security
1个回答
0
投票

使用此依赖项

<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());
© www.soinside.com 2019 - 2024. All rights reserved.