Web services 来自不同服务器的WSSE web服务调用?
我已经在synfony 2.3中编写了WSSE身份验证提供程序。 我已经生成了标题和调用web服务。 它在同一台机器上正常工作,当调用不同的机器时,它收到内部服务器错误 {错误:{代码:500,消息:内部服务器错误} 这是标题生成功能:Web services 来自不同服务器的WSSE web服务调用?,web-services,rest,symfony,wsse,Web Services,Rest,Symfony,Wsse,我已经在synfony 2.3中编写了WSSE身份验证提供程序。 我已经生成了标题和调用web服务。 它在同一台机器上正常工作,当调用不同的机器时,它收到内部服务器错误 {错误:{代码:500,消息:内部服务器错误} 这是标题生成功能: function make_nonce() { $chars = "123456789abcdefghijklmnopqrstuvwxyz"; $random = "" . microtime(); $random .= mt_ran
function make_nonce() {
$chars = "123456789abcdefghijklmnopqrstuvwxyz";
$random = "" . microtime();
$random .= mt_rand();
$mi = strlen($chars) - 1;
for ($i = 0; $i < 10; $i++) {
$random .= $chars[mt_rand(0, $mi)];
}
$nonce = md5($random);
return $nonce;
}
function make_token($username, $password) {
$nonce = make_nonce();
$ts = date('c');
$digest = base64_encode(sha1($nonce.$ts.$password, true));
return sprintf('UsernameToken Username="%s", PasswordDigest="%s", Nonce="%s", Created="%s"',
$username, $digest, base64_encode($nonce), $ts);
}
我不明白为什么?从其他国家/地区服务器呼叫时,时间戳是否有任何影响?
请帮忙你不觉得这个问题有点。。。通用?@Rakhitha您可以检查服务器端的应用程序日志,以确定导致500个内部服务器错误的原因。
$contextData = array (
'method' => 'POST',
'header' => 'Content-Type: application/json',
'Authorization: WSSE profile="UsernameToken"' ,
'X-WSSE: '. make_token('apiUser001', 'coloMbo657'),
'content'=> $query );
// Create context resource for our request
$context = stream_context_create (array ( 'http' => $contextData ));
// Read page rendered as result of your POST request
echo $result = file_get_contents (
'http://abc.xxu.com/api/v1/users', // page url
false,
$context);