如何將kerberos auth轉發到其他服務器(使用CURL)和php。 我的請求中有$_SERVER['KRB5CCNAME']
,我需要使用curl將其委託給另一臺服務器。PHP kerberos代表團
這怎麼辦?
代碼:
$ch = curl_init();
$url = 'http://www.somesite.com/info.php';
@curl_setopt($ch, CURLOPT_HTTPGET, 1);
@curl_setopt($ch, CURLOPT_GSSAPI_DELEGATION, CURLGSSAPI_DELEGATION_FLAG);
@curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_GSSNEGOTIATE);
@curl_setopt($ch, CURLOPT_USERPWD, ":");
@curl_setopt($ch, CURLOPT_URL, $url);
@curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$resultContent = @curl_exec($ch);
$httpCode = @curl_getinfo($ch, CURLINFO_HTTP_CODE);
if(@curl_errno($ch))
{
$msg = @curl_error($ch);
curl_close($ch);
die('Curl error: content: '.$this->resultContent.' code: '.$this->httpCode);
}
curl_close($ch);
die('R: code: '.$httpCode.' content: '. htmlspecialchars($resultContent));
編輯:
我只是理解了它在PHP 5.3還沒有得到CURLOPT_GSSAPI_DELEGATION,它已經在5.5.0阿爾法3 增加工作的一個問題,即可查看如果這是問題。
也許使用POST請求? – silkfire 2013-02-19 10:00:50
請在發表評論前仔細閱讀一下kerberos。 Kerberos委派並不是要向其他服務器發送相同的收到請求。 – dfilkovi 2013-02-19 10:24:59
您是否使用SPNEGO支持編譯'curl'? – 2013-02-20 14:02:21