format: email rejects RFC 5321 Mailbox values when the TLD is not recognized
まだ誰も着手していません。
評価
調査の方向性
openapi-request-validator-core/pom.xml から始めて、フォーマットの経路を追跡します。つまり、NetworkNT の EmailFormat、IPv6AwareEmailValidator、Apache Commons EmailValidator、DomainValidator を通るメールアドレスの経路です。認識されない TLD を持つ構文的に有効なドメインに対する現在の動作を確認し、その後、IANA TLD 要件なしで RFC 5321 Mailbox 構文が受け入れられることを示すカバレッジを定義します。
索引モデルが issue の本文から書いたものです。
説明
Summary
format: email validation currently appears to reject email addresses whose domain has a syntactically valid top-level label but is not in the validator's recognized/IANA TLD list.
That seems stricter than the OpenAPI email format definition, which says that email is an email address as defined by the RFC 5321 Mailbox rule.
Example
Schema:
type: object
properties:
email:
type: string
format: email
required:
- email
Request body:
{
"email": "[email protected]"
}
Actual result: validation fails.
Expected result: this should pass format: email syntax validation, because the domain part is syntactically valid under RFC 5321:
Mailbox = Local-part "@" ( Domain / address-literal )
Domain = sub-domain *("." sub-domain)
RFC 5321 does not require the final label to be present in the IANA root zone or in an implementation-maintained TLD list for the address to match the Mailbox grammar.
Relevant code path
This seems to come from the Java validation stack rather than from OpenAPI itself:
-
openapi-request-validator-core/pom.xmldepends oncom.networknt:json-schema-validator. -
NetworkNT’s
com.networknt.schema.format.EmailFormatconstructs:new IPv6AwareEmailValidator(true, true) -
IPv6AwareEmailValidatorextends Apache Commons Validator’sEmailValidator. -
Apache Commons
EmailValidator.isValidDomain(...)delegates toDomainValidator. -
DomainValidator.isValid(...)checks that the domain has a recognized top-level domain viaisValidTld(...). -
DomainValidatordocuments this as validation of TLDs “as defined and maintained by the Internet Assigned Numbers Authority (IANA).”
Why this matters
This makes format: email unsuitable for some valid API inputs, including internal/test/private domains (with local DNS resolution).
Suggested fix
Please consider to configure the underlying email validator so format: email checks RFC 5321 Mailbox syntax without requiring a recognized/IANA TLD.
Thanks!
- 主要言語
- Java
- スター
- 16
- フォーク
- 6
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
atlassian/openapi-request-validator のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 62/100
-
Message context not populated when validating response headers対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 3/5 1〜2日 初心者へのやさしさ 55/100
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
atlassian/openapi-request-validator#22 · リアクション 1 件 ·
-
Migrate to networknt json-schema-validator 3.x (Jackson 3 API)対応中かも @stefanobaghino が 114 日前に担当しました。 オープン
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
atlassian/openapi-request-validator#21 · コメント 7 件 · リアクション 5 件 ·
atlassian/openapi-request-validator の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 60/100
メンテナーはふだん 1 日以内に返信
-
[BUG] S3 CORS responses omit Access-Control-Allow-Credentials for matched origins対応中かも このイシューにリンクされたプルリクエストがオープン中、またはマージ済みです。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
floci-io/floci#5369 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
securityHeaders replaces a route's own Content-Security-Policy (0.9.9; weakens embedders' pages)オープンbug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
sqlcipher/sqlcipher-android#97 · コメント 1 件 ·
-
area-integrations
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信