Skip to content
Back to skills

Json Schema Validation

ASecurity

JSONスキーマ検証(JSON Schema Validation)機能の開発・修正を行う際に使用。ユーザー登録スキーマ、Identity Verificationスキーマ、外部API検証実装時に役立つ。

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added February 9, 2026
securityjavabashapisecuritydocumentation

Works with

  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill json-schema-validation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Json Schema Validation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Json Schema Validation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-json-schema-validation/badge)](https://www.skillsdirectory.com/skills/majiayu000-json-schema-validation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: json-schema-validation
description: JSONスキーマ検証(JSON Schema Validation)機能の開発・修正を行う際に使用。ユーザー登録スキーマ、Identity Verificationスキーマ、外部API検証実装時に役立つ。
---

# JSONスキーマ検証(JSON Schema Validation)開発ガイド

## ドキュメント

- `documentation/docs/content_03_concepts/06-security-extensions/concept-03-schema-validation.md` - JSONスキーマ検証概念

## 機能概要

JSONスキーマ検証は、入力データの構造・型・制約を検証する層。
- **JSON Schema Draft 2020-12準拠**
- **ユーザー登録検証**: テナント別カスタムスキーマ
- **Identity Verification検証**: 本人確認申請データ検証
- **外部API検証**: リクエスト/レスポンス検証
- **詳細エラーメッセージ**: フィールド別エラー

## モジュール構成

```
libs/
└── idp-server-platform/                     # プラットフォーム基盤
    └── .../platform/json/schema/
        ├── JsonSchemaDefinition.java       # スキーマ定義
        ├── JsonSchemaValidator.java        # スキーマ検証
        └── JsonSchemaValidationException.java
```

## ユーザー登録でのスキーマ検証

`idp-server-core/openid/identity/IdPUserCreator.java` 内:

```java
public class IdPUserCreator {

    JsonSchemaDefinition definition;
    AuthenticationInteractionRequest request;

    public User create() {
        User user = User.initialized();

        // スキーマ定義に基づいてフィールドを設定
        if (definition.hasProperty("name") &&
            request.containsKey("name")) {
            user.setName(request.getValueAsString("name"));
        }

        if (definition.hasProperty("email") &&
            request.containsKey("email")) {
            user.setEmail(request.getValueAsString("email"));
        }

        // その他のフィールドも同様に処理
        // ...

        return user;
    }
}
```

**注意**: JsonSchemaDefinitionが、許可されたフィールドを定義します。

## スキーマ定義例

### ユーザー登録スキーマ

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "format": "email"
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "birthdate": {
      "type": "string",
      "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
    }
  },
  "required": ["email", "name"]
}
```

### Identity Verification申請スキーマ

```json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "document_type": {
      "type": "string",
      "enum": ["passport", "drivers_license", "national_id"]
    },
    "document_number": {
      "type": "string",
      "minLength": 5
    }
  },
  "required": ["document_type", "document_number"]
}
```

## スキーマ検証エラー

```java
public class JsonSchemaValidationException {
    // フィールド別の詳細エラーメッセージ
    // - 必須フィールド不足
    // - 型不一致
    // - フォーマット違反
    // - 制約違反(minLength, maxLength, pattern等)
}
```

## E2Eテスト

```
e2e/src/tests/
└── integration/ida/
    └── (Identity Verificationスキーマ検証テスト)
```

## コマンド

```bash
# ビルド
./gradlew :libs:idp-server-platform:compileJava

# テスト
cd e2e && npm test -- integration/ida/
```

## トラブルシューティング

### スキーマ検証失敗
- スキーマ定義が正しいか確認(JSON Schema Draft 2020-12形式)
- 必須フィールドが含まれているか確認

### 型エラー
- フィールドの型がスキーマと一致するか確認
- string, number, boolean, object, arrayを正しく使用

### フォーマット検証失敗
- email, uri, date-time等のフォーマットが正しいか確認
- カスタムpattern(正規表現)が正しいか確認

### カスタムスキーマが反映されない
- テナント別スキーマ設定が正しいか確認
- JsonSchemaDefinitionが正しくロードされているか確認

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.