コード例 #1
0
ファイル: ACSLDAP.class.php プロジェクト: nkawa/acs-git-test
 /**
  * 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;
 }
コード例 #2
0
 /**
  * パスワードファイル認証
  *
  * @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;
 }