Add support for empty Security Requirement Object (`{}`) in security requirement
- 主要语言
- PHP
- 星标
- 500
- 派生
- 99
- PR 合并指标
- 30 天内没有已合并 PR
描述
From https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.0.4.md#security-requirement-object
An empty Security Requirement Object (`{}`) indicates anonymous access is supported.
This is used in https://raw.githubusercontent.com/cloudflare/api-schemas/refs/heads/main/openapi.yaml L164315

With current lib and above Cloudflare spec we get error:
```
There was 1 error:
1) IssueTest::test224FailsOnLargeDefinitions
Undefined offset: 0
/app/src/spec/SecurityRequirements.php:29
/app/src/SpecBaseObject.php:168
/app/src/SpecBaseObject.php:140
/app/src/SpecBaseObject.php:168
/app/src/SpecBaseObject.php:140
/app/src/spec/PathItem.php:81
/app/src/spec/Paths.php:62
/app/src/SpecBaseObject.php:168
/app/src/SpecBaseObject.php:140
/app/src/Reader.php:57
/app/src/Reader.php:138
/app/tests/IssueTest.php:17
phpvfscomposer:///app/vendor/phpunit/phpunit/phpunit:106
```
Observed this issue while fixing https://github.com/cebe/php-openapi/issues/224
So adding implementation for empty Security Requirement Object (`{}`) in security requirement is required.
More info about security schemes and security requirements can be obtained at https://swagger.io/docs/specification/v3_0/authentication/
贡献指南
这个仓库没有索引到贡献指南
调研方向
从报告的 Undefined offset 发生的 spec/SecurityRequirements.php 开始,检查 tests/IssueTest.php,包括 test224FailsOnLargeDefinitions。重现 Cloudflare OpenAPI 案例,并确认空的 Security Requirement Object 可以被接受且不会出现报告的错误。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- php
- 领域
- api, security
- Issue 类型
- 缺陷
- 难度
- 2/5
- 预计耗时
- 1-3 小时
- 活跃度
- 停滞
- 描述清晰度
- 描述清楚
- 新手友好度
- 55/100