Доброго времени суток!Я в php - не жужу, не пинайте ))
Есть owa на exchange2007. Есть nagios монитор (FAN). Надо проверять авторизацию через https.
Нарыл скрипт check_owa:
<?php
$username = "юзверь";
$password = "пасс_для_юзверя";
$mailboxURL = "https://exchange.домен.ру/owa";
$authURL = "https://exchange.домен.ру/owa";
$pg = curl_init();
curl_setopt( $pg, CURLOPT_URL, $mailboxURL );
curl_setopt( $pg, CURLOPT_USERAGENT, "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)" );
curl_setopt( $pg, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $pg, CURLOPT_COOKIEJAR, "cookie.txt" );
curl_setopt( $pg, CURLOPT_COOKIEFILE, "cookie.txt" );
curl_setopt( $pg, CURLOPT_HEADER, false );
curl_setopt( $pg, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $pg, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $pg, CURLOPT_SSL_VERIFYHOST, false );
curl_setopt( $pg, CURLOPT_VERBOSE, false );
$response = curl_exec( $pg );
$info = curl_getinfo( $pg );
$postData = array();
$postData["url"] = $mailboxURL;
$postData["reason"] = "0";
$postData["destination"] = $mailboxURL;
$postData["flags"] = "0";
$postData["username"] = $username;
$postData["password"] = $password;
$postData["SubmitCreds"] = "Log On";
$postText = "";
foreach( $postData as $key => $value ) {
$postText .= $key . "=" . $value . "&";
}
curl_setopt( $pg, CURLOPT_REFERER, $info["url"] );
curl_setopt( $pg, CURLOPT_URL, $authURL );
curl_setopt( $pg, CURLOPT_POST, true );
curl_setopt( $pg, CURLOPT_POSTFIELDS, $postText );
$response = curl_exec( $pg );
$info = curl_getinfo( $pg );
$needle = "Connected to Microsoft Exchange";
if ( strpos( $response, $needle ) )
printf( "OK - Logon to OWA successful.\n" );
else
printf( "Critical - Logon to OWA failed.\n" );
?>
Вкручиваю в nagios. приходит ответ (Null).
Был опыт реализации подобного, подскажите, что не правильно делаю?
Может дело в cookies? Не вижу их ((