当我不使用@withmockuser返回状态401但使用@withmockuser返回状态代码404时
我的管制员
@RestController
@RequestMapping("/api/stocks")
@Api(tags = "stocks")
@Slf4j
public class StockResource {
@GetMapping("/test/test")
@Secured("SYS_ADMIN")
public @ResponseBody String getTest() {
return "hello";
}}
我的测试
@SpringBootTest
@EnableAutoConfiguration(exclude = {LiquibaseAutoConfiguration.class})
@AutoConfigureMockMvc
@ContextConfiguration
class RonadTestApplicationTests {
@Autowired
private MockMvc mvc;
@Test
@WithMockUser(authorities = {"SYS_ADMIN"})
void contextLoads() throws Exception {
mvc.perform(get("/api/stocks/test/test")
.contentType("application/json"))
.andExpect(status().isOk());
}
}
以及我不使用@withmockuser时的输出
Status expected:<200> but was:<401>
Expected :200
Actual :401
以及使用@withmockuser时的输出
Status expected:<200> but was:<404>
Expected :200
Actual :404
1条答案
按热度按时间qlfbtfca1#
看起来您正在尝试测试基于角色的访问,但是在注解中您指定了一个权限。因为@secured()注解指定了一个应该被授予访问权的角色,而不是一个权限(这里将详细介绍)https://www.baeldung.com/spring-security-method-security).
尝试改用@withmockuser(roles=“sys\u admin”)