phpを使用して(CURLを使用して)別のサーバーにKerberos認証を転送するにはどうすればよいですか?リクエストが$_SERVER['KRB5CCNAME']
あり、curlを使用してこれを別のサーバーに委任する必要があります。
これはどのように行うことができますか?
コード:
$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 alpha 3で追加されていることがわかりました。問題に取り組んで、それが問題かどうかを確認します。