关于 spring-security-testing
spring-security-testing 是用于编写 Spring 应用安全测试的技能,面向使用 JUnit 5 的开发者。内容涵盖常见的认证、授权、CSRF、JWT、OAuth2 和 OIDC 测试模式。
主要功能
- 01设置模拟用户和用户详情
- 02测试单请求认证
- 03在请求中添加 CSRF 令牌
- 04测试 JWT 资源服务器行为
- 05测试 OAuth2 和 OIDC 登录
- 06测试方法安全与自定义上下文
适用场景
- 01使用模拟用户测试访问规则
- 02测试受保护的 POST、PUT 和 DELETE 请求
- 03验证受 JWT 保护的端点
- 04测试 OAuth2 或 OIDC 认证流程
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ spring-ai-community/ spring-testing-skills --skill spring-security-testing安装后在 Claude Code 中输入/spring-security-testing确认已加载。
附带文件references/security-testing-patterns.md
详细介绍
Spring Security 测试
信号:@WithMockUser、@WithUserDetails、csrf()、jwt()、oauth2Login()、mockOidcLogin()、@WithSecurityContext、SecurityMockMvcRequestPostProcessors、AccessDeniedException、SCOPE_
测试适用版本
- Spring Boot 3.2+ / Spring Boot 4.x
- Spring Security 6.x / 7.x
- Spring Framework 6.x / Spring Framework 7.x
- JUnit 5
请勿在以下场景使用此技能
- 测试 REST 控制器的 HTTP 行为(状态码、JSON 请求体、请求头),但不关注安全性 → 使用
spring-mvc-testing - 测试带有安全机制的响应式端点 → 使用
spring-webflux-testing - 测试 JPA 仓库 → 使用
spring-jpa-testing - 在没有安全上下文的情况下,为服务逻辑编写纯单元测试 → 使用
spring-testing-fundamentals
何时阅读参考资料
| 场景 | 阅读 |
|---|---|
设置 @WithMockUser 和 @WithUserDetails | references/security-testing-patterns.md |
roles 与 authorities 的区别,以及 ROLE_ 前缀陷阱 | references/security-testing-patterns.md |
使用 SecurityMockMvcRequestPostProcessors(user()、httpBasic())为每个请求设置身份验证 | references/security-testing-patterns.md |
| POST/PUT/DELETE 请求的 CSRF——避免测试中出现 403 | references/security-testing-patterns.md |
使用 jwt() 后置处理器测试 JWT 资源服务器 | references/security-testing-patterns.md |
使用 oauth2Login()、mockOidcLogin() 测试 OAuth2 登录和 OIDC | references/security-testing-patterns.md |
为复杂 JWT 场景自定义 @WithSecurityContext | references/security-testing-patterns.md |
测试 @PreAuthorize 方法安全性 | references/security-testing-patterns.md |
| Boot 3.x → 4.x 安全测试变更 | references/security-testing-patterns.md |
评论
支持 Markdown