79
79
return PAM_SUCCESS;
82
static bool authenticate(Session *session, const char *password)
82
class Auth_pam : public Authentication
85
auth_pam_userinfo userinfo= { NULL, NULL };
86
struct pam_conv conv_info= { &auth_pam_talker, (void*)&userinfo };
87
pam_handle_t *pamh= NULL;
89
userinfo.name= session->security_ctx.user.c_str();
90
userinfo.password= password;
92
retval= pam_start("check_user", userinfo.name, &conv_info, &pamh);
94
if (retval == PAM_SUCCESS)
95
retval= pam_authenticate(pamh, PAM_DISALLOW_NULL_AUTHTOK);
97
if (retval == PAM_SUCCESS)
98
retval= pam_acct_mgmt(pamh, PAM_DISALLOW_NULL_AUTHTOK);
100
pam_end(pamh, retval);
102
return (retval == PAM_SUCCESS) ? true: false;
85
virtual bool authenticate(Session *session, const char *password)
88
auth_pam_userinfo userinfo= { NULL, NULL };
89
struct pam_conv conv_info= { &auth_pam_talker, (void*)&userinfo };
90
pam_handle_t *pamh= NULL;
92
userinfo.name= session->security_ctx.user.c_str();
93
userinfo.password= password;
95
retval= pam_start("check_user", userinfo.name, &conv_info, &pamh);
97
if (retval == PAM_SUCCESS)
98
retval= pam_authenticate(pamh, PAM_DISALLOW_NULL_AUTHTOK);
100
if (retval == PAM_SUCCESS)
101
retval= pam_acct_mgmt(pamh, PAM_DISALLOW_NULL_AUTHTOK);
103
pam_end(pamh, retval);
105
return (retval == PAM_SUCCESS) ? true: false;
105
110
static int initialize(void *p)
107
authentication_st *auth= (authentication_st *)p;
112
Authentication **auth= static_cast<Authentication **>(p);
109
auth->authenticate= authenticate;
114
*auth= new Auth_pam();
114
119
static int finalize(void *p)
121
Auth_pam *auth= static_cast<Auth_pam *>(p);