Skip to content

Preserve and expose mdui:UIInfo during authentication and registratio…#49

Open
kayjoosten wants to merge 1 commit into
mainfrom
feature/issue-48-preserve-mdui-uiinfo
Open

Preserve and expose mdui:UIInfo during authentication and registratio…#49
kayjoosten wants to merge 1 commit into
mainfrom
feature/issue-48-preserve-mdui-uiinfo

Conversation

@kayjoosten

@kayjoosten kayjoosten commented Jul 2, 2026

Copy link
Copy Markdown

…n (#48)

Reads the mdui:UIInfo extension from incoming AuthnRequests and saves it to session state during both saveAuthenticationRequest and saveRegistrationRequest. Downstream GSSP apps can call getMdui() on StateHandler to retrieve per-language display names.

  • Add StateHandler::getMdui() / hasMdui() and GSSP_MDUI session key
  • Add StateHandlerInterface::getMdui() / hasMdui()
  • Extract saveRequestExtensions() to persist both GsspUserAttributes and mdui extensions from a single call site
  • Fix pre-existing Symfony 8 incompatibility: Request::get() removed, replaced with $request->query->get() in SSOController
  • Add Behat scenarios for auth and registration flows (positive and negative) covering mdui preservation
  • Add unit tests for getMdui() / hasMdui() in StateHandlerTest
  • Add phpstan baseline entry for phpDoc.parseError caused by phpstan's parser not handling dots in PHPMD annotation names
  • Add AuthenticationService::getMdui() / RegistrationService::getMdui(), delegating to StateHandler::getMdui(), so downstream GSSP apps (e.g. gssp-example) can read the mdui data through the public service interfaces they actually consume, not just StateHandler directly

Dependency / merge order

composer.json pins surfnet/stepup-saml-bundle to dev-feature/issue-48-mdui-chunk as 7.0.99 via a VCS repository, with minimum-stability: dev. That branch is Stepup-saml-bundle#137, still open. This must not reach a tagged release as-is — the as 7.0.99 alias would hide the dev dependency from downstream constraint solvers.

Merge order: saml-bundle#137 → tag a release → swap this PR's composer.json to the tagged version → tag this repo → swap the same pin in Stepup-gssp-example#141.

Test plan

  • Unit + service-level tests passing (StateHandlerTest, StateBasedAuthenticationServiceTest, StateBasedRegistrationServiceTest)
  • Behat scenarios for mdui preservation (auth + registration, positive + negative)
  • Swap surfnet/stepup-saml-bundle dev-branch pin for a tagged release before merge

GSSP apps could not read the mdui:UIInfo data that arrives with proxied
AuthnRequests, so they had to fall back to less accurate service naming
or duplicate request parsing outside the bundle.

Persist the UIInfo chunk in session state for both authentication and
registration, then expose it through the public service interfaces that
consuming applications already depend on.

- add coverage for present and absent UIInfo data in both flows
- centralize service-name resolution and formatting for consumers
- pin the unreleased stepup-saml-bundle branch needed for integration
  until the upstream change is released

Resolves: #48
@kayjoosten kayjoosten force-pushed the feature/issue-48-preserve-mdui-uiinfo branch from f7d9790 to c6f1b2a Compare July 10, 2026 11:09
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.

1 participant