Represents the stage after the server has generated its first response to the client. This
struct is responsible for handling the client’s final message.
Contains information about stored passwords. In particular, it stores the password that has been
salted and hashed, the salt that was used, and the number of iterations of the hashing algorithm
Represents the first stage in the authentication process, after the client has submitted their
first message. This struct is responsible for responding to the message
An AuthenticationProvider looks up password information for a given user, and also checks if a
user is authorized to act on another user’s behalf. The authorization component is optional, and
if not implemented will simply allow users to act on their own behalf, and no one else’s.