sbuild
1.7.1
|
Authentication conversation handler interface. More...
#include <pam-conv.h>
Public Types | |
typedef std::vector< pam_message > | message_list |
A list of messages. | |
typedef std::shared_ptr< pam > | auth_ptr |
A shared pointer to an pam object. | |
typedef std::weak_ptr< pam > | weak_auth_ptr |
A weak pointer to an pam object. | |
typedef std::shared_ptr< pam_conv > | ptr |
A shared_ptr to an pam_conv object. | |
Public Member Functions | |
virtual | ~pam_conv () |
The destructor. | |
virtual auth_ptr | get_auth ()=0 |
Get the auth object. More... | |
virtual void | set_auth (auth_ptr auth)=0 |
Set the auth object. More... | |
virtual time_t | get_warning_timeout ()=0 |
Get the time at which the user will be warned. More... | |
virtual void | set_warning_timeout (time_t timeout)=0 |
Set the time at which the user will be warned. More... | |
virtual time_t | get_fatal_timeout ()=0 |
Get the time at which the conversation will be terminated with an error. More... | |
virtual void | set_fatal_timeout (time_t timeout)=0 |
Set the time at which the conversation will be terminated with an error. More... | |
virtual void | conversation (message_list &messages)=0 |
Hold a conversation with the user. More... | |
Protected Member Functions | |
pam_conv () | |
The constructor. | |
Authentication conversation handler interface.
This interface should be implemented by objects which handle interaction with the user during authentication.
This is a wrapper around the struct pam_conv PAM conversation interface, and is used by auth when interacting with the user during authentication.
A simple implementation is provided in the form of pam_conv_tty. However, more complex implementations might hook into the event loop of a GUI widget system, for example.
The interface allows the setting of optional warning timeout and fatal timeout values, which should default to 0 (not enabled). This is an absolute time after which a warning is displayed or the conversation ends with an error.
Note that the auth object must be specified, and must never be void while the conversation is in progress.
|
pure virtual |
Hold a conversation with the user.
Each of the messages detailed in messages should be displayed to the user, asking for input where required. The type of message is indicated in the pam_message::type field of the pam_message. The pam_message::response field of the pam_message should be filled in if input is required.
On error, an exception will be thrown.
messages | the messages to display to the user, and responses to return to the caller. |
Implemented in sbuild::auth::pam_conv_tty.
|
pure virtual |
|
pure virtual |
Get the time at which the conversation will be terminated with an error.
Implemented in sbuild::auth::pam_conv_tty.
|
pure virtual |
Get the time at which the user will be warned.
Implemented in sbuild::auth::pam_conv_tty.
|
pure virtual |
|
pure virtual |
Set the time at which the conversation will be terminated with an error.
timeout | the time to set. |
Implemented in sbuild::auth::pam_conv_tty.
|
pure virtual |
Set the time at which the user will be warned.
timeout | the time to set. |
Implemented in sbuild::auth::pam_conv_tty.