Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

`PartialEq`/`Ord` impls for `Authority` ignores case of userinfo part

Đang mở
#625 0 bình luận 1 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức phù hợp với người mới
45/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Đình trệ
Công nghệ
rust
Lĩnh vực
networking

Hướng nghiên cứu

Bắt đầu từ các phần triển khai PartialEq và Ord của http::uri::Authority, sau đó tái hiện vấn đề bằng test userinfo_eq_case_sensitive được nêu trong báo cáo. Kiểm tra cách các thành phần của Authority được phân tích và so sánh. Được xem là hoàn tất khi hành vi so sánh phù hợp với sự phân biệt của RFC đối với userinfo, hoặc khi hành vi có chủ đích được ghi chép rõ ràng và có coverage hồi quy.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

The comparison traits are implemented for http::uri::Authority by case-insensitively comparing the underlying authority string. This works fine if the authority component only consists of the host subcomponent (and optionally the port subcomponent), which is case-insensitive according to RFC 3986 Section 6.2.2.1.

However, the authority component may also contain a (deprecated according to [RFC 9110 Section 4.2.4.]) userinfo subcomponent, which is not specified to be case-insensitive and thus should be compared case-sensitively. In particular, the following test should pass:

use http::uri::Authority;

#[test]
fn userinfo_eq_case_sensitive() {
    assert_ne!(
        Authority::from_static("alice:supersecurepassword@example.com"),
        Authority::from_static("Alice:SuperSecurePassword@example.com")
    );
}

But this fails with the current implementation.

Is the behavior intentional? I understand that complicating the implementation for the deprecated subcomponent might not be desirable. But I think this should at least be documented if it's intentional.

[RFC 9110 Section 4.2.4.]: https://datatracker.ietf.org/doc/html/rfc9110#section-4.2.4

Ngôn ngữ chính
Rust
Star
1.4k
Fork
378
Merge trung bình
1 ngày 21 giờ
Pull request đã merge (30 ngày)
5

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của hyperium/http

Tất cả issue của hyperium/http

Issue tương tự

Thêm issue về Rust

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.