Fix Summary β Speaker Authentication (Epic 9)
Fixed: 2026-03-09
Changes made
-
M1: Added explicit
Integration tests location: services/event-management-service/src/test/javanote to the Story 9.1 Testing block, and expanded the global Testing Strategy βIntegration Testsβ subsection with a per-story test location table. This makes clear that Story 9.1 tests live inevent-management-service(whereMagicLinkServiceandSpeakerMagicLoginControllerare implemented), not inspeaker-coordination-service. -
N1 + N2: Added an βOperational Readinessβ subsection to the Testing Strategy section documenting that
speaker-coordination-serviceexposesGET /actuator/health(β HTTP 200,status: UP) andGET /actuator/info(β HTTP 200), covered by the existingHealthControllerIntegrationTest. These are service-foundation tests inherited from Story 5.4, not Epic 9 business-rule tests.
Skipped β needs manual decision
- U1: βJWT tokens 30-day expiry (AC1 & AC4)β β no test exists verifying expiry duration or reusability. Should add an integration test in
event-management-serviceor remove the specific expiry claim from the AC. - U2: βJWT claims content (AC6)β β no test validates the exact claim set (
user_id,email,roles,expiration). Needs an integration test asserting the parsed JWT structure. - U3: βHTTP-only cookie attributes (AC2)β β no test verifies
HttpOnly+Securecookie flags. High security risk; add integration test forSpeakerMagicLoginControllerresponse headers. - U4: βInvalid/expired JWT error messaging (AC5)β β no test asserts error response shape for bad tokens. Recommend adding a negative-path integration test.
- U5: βEmail-match branching logic (Story 9.2 AC1)β β new-user-create vs existing-user-role-extend logic is entirely untested. Core Epic 9 invariant; must be covered before 9.2 is marked done.
- U6: βZero duplicate accounts (Story 9.2 AC5)β β deduplication test absent; add Cognito-level uniqueness enforcement test before production deploy.
- U7: βDual auth JWT equivalence (Story 9.3 AC3)β β equivalence between magic-link and password JWTs untested. Add integration test comparing claim sets from both paths.
- U8: β7-day grace period for deprecated tokens (Story 9.4 AC3)β β legacy
speaker_tokensgrace-window behavior untested. Needs time-mocked integration test. - U9: βRS256 signing algorithm enforcementβ β no test rejects HS256 or unsigned tokens. High security risk; add a security test asserting algorithm validation before production deploy.