Skip to content

Do not put the query string of a request into observation names and tags - #920

Open
arturobernalg wants to merge 5 commits into
apache:masterfrom
arturobernalg:observation-uri-redaction
Open

arturobernalg wants to merge 5 commits into
apache:masterfrom
arturobernalg:observation-uri-redaction

Conversation

@arturobernalg

Copy link
Copy Markdown
Member

The span name and the per-URI I/O tag carried the query string, which may hold tokens and makes the tag cardinality unbounded. Observed with a request to /path?token=SECRET: the classic span name was GET http://127.0.0.1:PORT/path?token=SECRET, the async one GET /path?token=SECRET, and the uri tag /path?token=SECRET.

The name and the tag now carry the scheme, host and path only. Userinfo and fragment did not reach them in the observed cases and are stripped defensively. Metric names and tag keys are unchanged.

Tests added, classic and async.

ok2c and others added 4 commits October 31, 2026 14:53
…be executed manually during release preparation due to those tests failing intermittently in CI
Since the default verifier fallback was removed, CLIENT or BOTH policy
with a null HostnameVerifier performed no hostname verification at all.
ConscryptClientTlsStrategy and the deprecated DefaultClientTlsStrategy
constructor now select the BUILTIN policy when no verifier is given, and
AbstractClientTlsStrategy rejects CLIENT or BOTH without a verifier.
Once the CONNECT tunnel is established a 407 comes from the origin. It
was evaluated against the proxy auth exchange, which failed with a
NullPointerException or IllegalStateException. The response is now
returned to the caller as is.
The target name was passed as the endpoint name when connecting to the
first hop, so the proxy certificate was verified against, and the SNI
set to, the target virtual host instead of the proxy. The target name is
now used only when upgrading to TLS for the target.
The span name and the per-URI I/O tag carried the query string, which
may hold tokens and makes the tag cardinality unbounded. They now contain
the scheme, host and path only.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants