Fix Summary β€” Speaker Authentication (Epic 9)

Fixed: 2026-03-09

Last updated: March 10, 2026 Reading time: 2 minutes File size: 2.55 KB

Changes made

  • M1: Added explicit Integration tests location: services/event-management-service/src/test/java note 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 in event-management-service (where MagicLinkService and SpeakerMagicLoginController are implemented), not in speaker-coordination-service.

  • N1 + N2: Added an β€œOperational Readiness” subsection to the Testing Strategy section documenting that speaker-coordination-service exposes GET /actuator/health (β†’ HTTP 200, status: UP) and GET /actuator/info (β†’ HTTP 200), covered by the existing HealthControllerIntegrationTest. 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-service or 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 + Secure cookie flags. High security risk; add integration test for SpeakerMagicLoginController response 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_tokens grace-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.