Page MenuHomePhabricator

Move account passwords to shared infrastructure
ClosedPublic

Authored by epriestley on Jan 22 2018, 1:12 AM.
Tags
None
Referenced Files
Unknown Object (File)
Mon, Apr 22, 9:45 AM
Unknown Object (File)
Fri, Apr 19, 7:07 PM
Unknown Object (File)
Wed, Apr 10, 12:44 PM
Unknown Object (File)
Tue, Apr 2, 4:50 PM
Unknown Object (File)
Tue, Apr 2, 4:49 PM
Unknown Object (File)
Tue, Apr 2, 4:48 PM
Unknown Object (File)
Tue, Apr 2, 4:48 PM
Unknown Object (File)
Tue, Apr 2, 4:48 PM
Subscribers
None

Details

Summary

Ref T13043. This moves user account passwords to the new shared infrastructure.

There's a lot of code changes here, but essentially all of it is the same as the VCS password logic in D18898.

Test Plan
  • Ran migration.
  • Spot checked table for general sanity.
  • Logged in with an existing password.
  • Hit all error conditions on "change password", "set password", "register new account" flows.
  • Verified that changing password logs out other sessions.
  • Verified that revoked passwords of a different type can't be selected.
  • Changed passwords a bunch.
  • Verified that salt regenerates properly after password change.
  • Tried to login with the wrong password, which didn't work.

Diff Detail

Repository
rP Phabricator
Branch
revoke13
Lint
Lint Passed
SeverityLocationCodeMessage
Advicesrc/applications/people/storage/PhabricatorUser.php:1624XHP16TODO Comment
Unit
Tests Passed
Build Status
Buildable 19106
Build 25793: Run Core Tests
Build 25792: arc lint + arc unit

Event Timeline

epriestley added inline comments.
resources/sql/autopatches/20180120.auth.03.vcsdata.sql
4–5

There's a little bit of juggling here to make sure that the migration runs okay if the unique key on phid gets added sooner than we expect. This just gives each new password a unique value, then the followup migrations overwrite them with real PHIDs.

src/applications/settings/panel/PhabricatorPasswordSettingsPanel.php
73–76

It turns out this comment is out of date; CSRF tokens haven't depended on any secret shared with passwords in a long time.

This revision is now accepted and ready to land.Jan 23 2018, 7:47 PM