Skip to content

Finish the password-change logic #728

Description

@dnwiebe

When the password is changed from the UI, a lot of correct things happen, but not enough of them.

In general, when it receives a UiChangePasswordRequest, the Configurator actor sends a NewPasswordMessage to each of the actors listed in its new_password_subs field. That's good.

The problem is that when the Configurator receives a BindMessage, it populates the new_password_subs field with only the Neighborhood's recipient. This means that when the password changes, only the Neighborhood finds out about the change, and every other actor that needs encrypted data from the PersistentConfiguration keeps the old password. That means the Node goes crazy and has to be restarted whenever the password is changed.

Tasks:

  1. Look through the PersistentConfiguration and find all the methods that require a password.
  2. Find all the actors that call any of those methods.
  3. Implement a handler for the NewPassword message in each of those actors, and make sure the BindMessage contains a NewPassword recipient for each of those actors.
  4. In the Configurator's BindMessage handler, add those new recipients to the Configurator's new_password_subs list.
  5. Write a test (probably a single-hop _integration test) that changes a Node's database password and then verifies that every actor that uses the database password is using the new password properly to access the database.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions