Problem Statement
When a user logs into dotCMS via SAML SSO successfully but does not have the dotcms_back_end_user role (i.e., lacks permission to access the admin UI), they are currently redirected to a blank dotCMS backend page that continuously reloads. This creates confusion and appears broken to the end user.
Steps to Reproduce
- Set up SAML SSO in dotCMS.
- Attempt to log in via SAML with a user that exists in the SSO provider but does not have the dotcms_back_end_user role.
- User is redirected to the backend admin page.
- The page remains blank and continuously refreshes.
Acceptance Criteria
Scope & staging. This issue targets a first fix stage focused on breaking the infinite redirect loop and giving the user a clear "access denied" experience with a diagnostic log line. Some criteria below may be split into follow-up stages / separate issues depending on effort — in particular anything that requires changing dotCMS's existing shared error-page infrastructure (e.g. adding a logout/sign-out link), and the larger RelayState / role-aware-landing work. Items expected to spill into later stages are marked (later stage).
Root-cause trace and rationale are in the comment thread below: front-end SAML users default to /dotAdmin/ and lose the original request due to DEFAULT_LOGIN_PATH = "/dotAdmin/" plus cross-site SameSite session loss on the IdP POST-back.
Stage 1 — break the loop + surface the denial (primary scope of this issue)
No regressions (Stage 1)
Follow-up stages — may be split into separate issues
dotCMS Version
current
Proposed Objective
Customer Support
Proposed Priority
Priority 3 - Average
External Links... Slack Conversations, Support Tickets, Figma Designs, etc.
Assumptions & Initiation Needs
No response
Quality Assurance Notes & Workarounds
Interim workaround for front-end SSO deployments: set the IdP optional property redirect.after.login to a front-end URL, so the post-login redirect no longer defaults to /dotAdmin/.
Sub-Tasks & Estimates
No response
Problem Statement
When a user logs into dotCMS via SAML SSO successfully but does not have the dotcms_back_end_user role (i.e., lacks permission to access the admin UI), they are currently redirected to a blank dotCMS backend page that continuously reloads. This creates confusion and appears broken to the end user.
Steps to Reproduce
Acceptance Criteria
Stage 1 — break the loop + surface the denial (primary scope of this issue)
/dotAdmin) does not trigger a new SAMLAuthnRequest; authentication is treated as terminal.DOTCMS_FRONT_END_USER, no backend role) authenticating against a live IdP SSO session reaches a terminal page within a bounded number of redirects — noERR_TOO_MANY_REDIRECTS, no continuous reload.No regressions (Stage 1)
/dotAdminsuccessfully, unchanged.REDIRECT_AFTER_LOGINflow is preserved).Follow-up stages — may be split into separate issues
/dotAdmin; front-end-only users land on a front-end destination (the RelayState target or a configured front-end landing) and are never defaulted into/dotAdmin/.dotCMS Version
current
Proposed Objective
Customer Support
Proposed Priority
Priority 3 - Average
External Links... Slack Conversations, Support Tickets, Figma Designs, etc.
Assumptions & Initiation Needs
No response
Quality Assurance Notes & Workarounds
Interim workaround for front-end SSO deployments: set the IdP optional property
redirect.after.loginto a front-end URL, so the post-login redirect no longer defaults to/dotAdmin/.Sub-Tasks & Estimates
No response