如何将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