spring-security-testing について
spring-security-testing は、Spring アプリケーションのセキュリティテストを作成するためのスキルです。JUnit 5 を使う開発者向けに、認証、認可、CSRF、JWT、OAuth2、OIDC の一般的なテストパターンを扱います。
主な機能
- 01モックユーザーとユーザー詳細の設定
- 02リクエスト単位の認証テスト
- 03リクエストへの CSRF トークン追加
- 04JWT リソースサーバーの動作テスト
- 05OAuth2 と OIDC のログインテスト
- 06メソッドセキュリティとカスタムコンテキストのテスト
活用シーン
- 01モックユーザーによるアクセス規則のテスト
- 02保護された POST、PUT、DELETE リクエストのテスト
- 03JWT で保護されたエンドポイントの検証
- 04OAuth2 または 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 対応