Skip to content

Commit f529514

Browse files
committed
tests: assert the exact subject URI instead of a prefix and two substrings
CodeQL flagged the startswith check as incomplete URL substring sanitization. The assertion now builds the expected spiffe URI from TRUST_DOMAIN and the quoted evaluator and decision ids and compares for equality, which also pins the path structure and the percent-encoding that the previous three assertions did not.
1 parent c3382cd commit f529514

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

integrations/aeoess-aps/tests/test_mapping.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111
from __future__ import annotations
1212

1313
from datetime import datetime, timedelta, timezone
14+
from urllib.parse import quote
1415

1516
import agentrust_trace
1617
import pytest
1718
from agent_passport.crypto import generate_key_pair
1819
from agent_passport.policy import FloorValidatorV1, create_action_intent, evaluate_intent
1920

20-
from aps_trace import EAT_PROFILE, VERDICT_TO_APPRAISAL, build_trace_record
21+
from aps_trace import EAT_PROFILE, TRUST_DOMAIN, VERDICT_TO_APPRAISAL, build_trace_record
2122

2223
FLOOR_VERSION = "floor-1.0"
2324

@@ -103,9 +104,12 @@ def test_eat_profile_is_the_v02_string(record):
103104

104105

105106
def test_subject_is_a_spiffe_uri_naming_evaluator_and_decision(record, permit_decision):
106-
assert record["subject"].startswith("spiffe://agent-passport.org/")
107-
assert permit_decision["evaluatorId"] in record["subject"]
108-
assert permit_decision["decisionId"] in record["subject"]
107+
expected = (
108+
f"spiffe://{TRUST_DOMAIN}"
109+
f"/evaluator/{quote(permit_decision['evaluatorId'], safe='')}"
110+
f"/decision/{quote(permit_decision['decisionId'], safe='')}"
111+
)
112+
assert record["subject"] == expected
109113

110114

111115
def test_iat_comes_from_evaluated_at(record, permit_decision):

0 commit comments

Comments
 (0)