コード例 #1
0
ファイル: login.php プロジェクト: drognisep/Simple-Groupware
 static function validate_login_ntlm($username, $password)
 {
     if (!function_exists("java_get_base")) {
         require "lib/java/java.php";
     }
     if (!function_exists("java_require")) {
         sys_log_message_alert("login", sprintf("{t}%s is not compiled / loaded into PHP.{/t}", "PHP/Java Bridge"));
         return false;
     }
     java_require("jcifs-1.3.8_tb.jar");
     $conf = new JavaClass("jcifs.Config");
     $conf->setProperty("jcifs.smb.client.responseTimeout", "5000");
     $conf->setProperty("jcifs.resolveOrder", "LMHOSTS,DNS");
     $conf->setProperty("jcifs.smb.client.soTimeout", "10000");
     $conf->setProperty("jcifs.smb.lmCompatibility", "0");
     $conf->setProperty("jcifs.smb.client.useExtendedSecurity", false);
     $auth = sys_get_header("Authorization");
     $session = new JavaClass("jcifs.smb.SmbSession");
     $result = new Java("jcifs.smb.NtlmPasswordAuthentication", "", $username, $password);
     $username = $result->getUsername();
     if (SETUP_AUTH_NTLM_SHARE) {
         $w = new Java("jcifs.smb.SmbFile", SETUP_AUTH_NTLM_SHARE, $result);
         $message = $w->canListFiles();
         if ($message == "Invalid access to memory location.") {
             header("Location: index.php");
             exit;
         }
     } else {
         $message = $session->logon(SETUP_AUTH_HOSTNAME_NTLM, $result);
     }
     if ($message != "" or $username == "") {
         sys_log_message_alert("login", sprintf("{t}Login failed from %s.{/t} (ntlm) ({t}Username{/t}: %s, %s)", _login_get_remoteaddr(), $username, $message));
         return false;
     }
     $_SERVER["REMOTE_USER"] = modify::strip_ntdomain($username);
     if (empty($_REQUEST["folder"])) {
         $_REQUEST["redirect"] = 1;
     }
     return true;
 }
コード例 #2
0
ファイル: cifs.php プロジェクト: drognisep/Simple-Groupware
 private static function _get_ntlm($mfolder)
 {
     static $cache = array();
     if (empty($cache[$mfolder])) {
         if (!function_exists("java_require")) {
             if (!isset($cache[$mfolder])) {
                 sys_warning(sprintf("{t}%s is not compiled / loaded into PHP.{/t}", "PHP/Java Bridge"));
             }
             $cache[$mfolder] = false;
         } else {
             java_require("jcifs-1.3.8_tb.jar");
             $conf = new JavaClass("jcifs.Config");
             $conf->setProperty("jcifs.smb.client.responseTimeout", "5000");
             $conf->setProperty("jcifs.resolveOrder", "LMHOSTS,DNS");
             $conf->setProperty("jcifs.smb.client.soTimeout", "120000");
             // TODO2 option for hidden shares
             $creds = sys_credentials($mfolder);
             $creds["domain"] = "";
             if ($creds["options"] != "") {
                 $options = explode(",", $creds["options"]);
                 foreach ($options as $option) {
                     $option = trim($option);
                     if (sys_strbegins($option, "domain=")) {
                         $creds["domain"] = substr($option, 7);
                     }
                 }
             }
             $cache[$mfolder] = new Java("jcifs.smb.NtlmPasswordAuthentication", $creds["domain"], $creds["username"], $creds["password"]);
         }
     }
     return $cache[$mfolder];
 }