/** * LDAPのパスワード認証処理を実施する * * @param $input_user_id ユーザID * @param $input_passwd パスワード * @return 連想配列1エントリ */ function check_passwd_by_ldap($input_user_id, $input_passwd) { $ldap_user_info_row = ACSLDAP::get_ldap_user_info_row($input_user_id); /* LDAPにデータが有る場合はパスワード認証 */ if (count($ldap_user_info_row) > 1) { /* LDAPパスワードの認証 */ $passwd = str_replace("{crypt}", "", $ldap_user_info_row['userpassword']); if (crypt($input_passwd, $passwd) == $passwd || ACSSystem::verify_passwd_by_hash($input_passwd, $passwd) == 0) { return $input_user_id; } } return null; }
/** * パスワードファイル認証 * * @param $input_user_id 入力ユーザID * @param $input_passwd 入力パスワード * @return 成功(true) / 失敗(false) */ function check_passwd_by_htpasswd($input_user_id, $input_passwd) { // エスケープ処理 $filepassword = ""; // ファイル読み込み $data_arr = file(ACS_PASSWD_FILE); foreach ($data_arr as $line) { list($user_id, $passwd) = explode(':', trim($line)); // ユーザ情報(user_info)が存在するユーザIDのみ保存対象とする if ($input_user_id == $user_id) { if (crypt($input_passwd, $passwd) == $passwd) { // OK→マイページへ return 0; } // 暗号形式の比較 if (ACSSystem::verify_passwd_by_hash($input_passwd, $passwd) == 0) { return 0; } } } return -1; }