SuperAPI AI 工具集

spring-security-testing

安全与审计

查看项目

更新于 10-16 03:04

技能介绍

该技能用于在 Spring 应用中编写安全相关的测试。触发信号包括 @WithMockUser、@WithUserDetails、csrf()、jwt()、oauth2Login()、mockOidcLogin()、@WithSecurityContext、SecurityMockMvcRequestPostProcessors、AccessDeniedException、SCOPE_。测试环境标注为 Spring Boot 3.2+ / 4.x、Spring Security 6.x / 7.x、Spring Framework 6.x / 7.x 与 JUnit 5。资料提示 Spring Security 7 改变了方法安全默认值与 CSRF 处理,使用 hasRole() 或 csrf() 的测试可能需要更新。

常见参考场景与对应文档:@WithMockUser 与 @WithUserDetails 的设置、角色与权限及 ROLE_ 前缀陷阱、基于 SecurityMockMvcRequestPostProcessors 的逐请求认证(user()、httpBasic())、POST/PUT/DELETE 的 CSRF 处理以避免测试返回 403、使用 jwt() 后处理器测试 JWT 资源服务器、使用 oauth2Login() 与 mockOidcLogin() 测试 OAuth2 登录与 OIDC、为复杂 JWT 场景自定义 @WithSecurityContext、@PreAuthorize 方法安全测试,以及 Boot 3.x 到 4.x 的安全测试变化,均指向 references/security-testing-patterns.md。

不适用场景:非安全关注点的 REST 控制器 HTTP 行为测试应使用 spring-mvc-testing;响应式端点的安全测试应使用 spring-webflux-testing;JPA 仓库测试应使用 spring-jpa-testing;无安全上下文的纯服务单元测试应使用 spring-testing-fundamentals。具体代码示例与命令资料未提供,需查阅上述参考文件。