You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 24f085e
Browse filesBrowse the repository at this point in the historyBrowse files
feat: add security.password.enabled to allow SSO-only deployments
Enabling Google SSO does not close the password path. loginWithPassword()
never consulted security.google.enabled, /auth/login is permitAll
unconditionally, and no toggle existed — so a deployment that puts every
human behind Google Workspace still left /auth/login open to every local
account. Anyone treating SSO as an exclusive gate was wrong about it.
Adds security.password.enabled, defaulting to true so existing installs are
unaffected.
- PasswordlessAuthService: reject before the rate limiter and before any
credential comparison. There is nothing to rate-limit when the path is
closed, and rejecting early avoids leaking whether an account exists.
Emits PASSWORD_LOGIN_FAILURE with reason=password_login_disabled so the
refusal is auditable rather than silent.
- @PostConstruct guard: logs an ERROR when password AND google are both
disabled — that combination leaves nobody able to sign in, and is
otherwise only discoverable at the login screen.
- SetupController: expose passwordLoginEnabled on the public status
response, alongside googleEnabled.
- Login.jsx: hide the password form, drop the now-meaningless "or" divider,
and reword the subtitle. Guarded as `!== false` rather than on
truthiness: setupStatus is null on first paint and undefined on installs
predating the flag, and both must render the form — inverting that would
strand users on a login page with no way in if the status call were slow
or failed.
0 commit comments