Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

[coverage] Conformance findings: AUTH-012

Ouverte
#896 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
3/5
Temps estimé
1-2 jours
Accessibilité débutants
72/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Calme
Stack technique
python
Domaine
backend, networking

Piste de recherche

Commencez dans thrift_backend.py et comparez la gestion du schéma de l’hôte avec common/url_utils.py::normalize_host_with_protocol. Examinez le test xfail test_explicit_tls_opt_out_connects_over_plaintext_http dans la coverage PR, puis vérifiez le contrat attendu : un http:// explicite se connecte via HTTP en clair, tandis que des paramètres TLS omis ou invalides et un hôte https:// explicite ne le font pas.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

Summary

Surfaced by the multi-language coverage fan-out while conformance-testing these SPEC-IDs against databricks/databricks-sql-python. Each finding is committed as an expected-failure (xfail) test in the coverage PR — the test asserts the CORRECT (post-fix) behavior and stays red until THIS driver (databricks/databricks-sql-python) is fixed, then flips green as a tripwire.

Findings

  • AUTH-012 [thrift]: Thrift backend silently forces https:// onto an explicit http:// server_hostname (thrift_backend.py prepends "https://" unless the composed URI already starts with it, yielding https://http://host:port/...), so the explicit plaintext opt-out is never honoured and the cleartext endpoint is never dialed; contradicts common/url_utils.py::normalize_host_with_protocol, which preserves an explicit http:// host. Kernel/SEA honours it correctly.
    • failing test: test_explicit_tls_opt_out_connects_over_plaintext_http (see the coverage PR diff under tests/)
  • AUTH-012: Thrift backend silently forces https:// onto an explicit http:// server_hostname (thrift_backend.py prepends "https://" unless the composed URI already starts with it, yielding https://http://host:port/...), so an explicit plaintext opt-out is never honoured and the cleartext endpoint is never dialed — contradicting common/url_utils.py::normalize_host_with_protocol, which documents that an explicit http:// host is preserved. The kernel/SEA backend honours it correctly.

Reproduce & Expected

AUTH-012 — Verifies the transport-scheme contract for an EXPLICIT TLS opt-out, and that TLS is never downgraded without one.

Reproduce:

  • Local cleartext HTTP listener recording every request it receives.
  • Host = the plaintext listener's host, port = its port, TLS-disable option = canonical
    falsy value (ODBC SSL=0). Attempt to open a session.
  • Same target, TLS-disable option OMITTED entirely.
  • Same target, TLS-disable option set to a non-canonical value (e.g. ture).
  • Host given WITH an explicit https:// scheme, TLS-disable option set falsy.

Expected (per the shared spec):

  • full assertion contract:
result:
- label: explicit_opt_out
  no_unsupported_option_error: true
- label: explicit_opt_out
  plaintext_session_open_request_count: 1
- label: tls_default_absent
  plaintext_session_open_request_count: 0
- label: tls_default_typo
  plaintext_session_open_request_count: 0
- label: explicit_https_host_wins
  plaintext_session_open_request_count: 0

Context

Langage dominant
Python
Étoiles
233
Forks
152
Merge moyen
21 h 5 min
PR mergées (30 j)
10

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de databricks/databricks-sql-python

Toutes les issues de databricks/databricks-sql-python

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.