use Friendica\DI;
use Friendica\Model\APContact;
use Friendica\Model\User;
-use Friendica\Network\HTTPRequest;
/**
* Implements HTTP Signatures per draft-cavage-http-signatures-07.
$headers[] = 'Content-Type: application/activity+json';
- $postResult = HTTPRequest::post($target, $content, $headers);
+ $postResult = DI::httpRequest()->post($target, $content, $headers);
$return_code = $postResult->getReturnCode();
Logger::log('Transmit to ' . $target . ' returned ' . $return_code, Logger::DEBUG);
*/
public static function fetchRaw($request, $uid = 0, $binary = false, $opts = [])
{
+ $headers = [];
+
if (!empty($uid)) {
$owner = User::getOwnerDataById($uid);
if (!$owner) {
return;
}
+ } else {
+ $owner = User::getSystemAccount();
+ if (!$owner) {
+ return;
+ }
+ }
+ if (!empty($owner['uprvkey'])) {
// Header data that is about to be signed.
$host = parse_url($request, PHP_URL_HOST);
$path = parse_url($request, PHP_URL_PATH);
$signature = base64_encode(Crypto::rsaSign($signed_data, $owner['uprvkey'], 'sha256'));
$headers[] = 'Signature: keyId="' . $owner['url'] . '#main-key' . '",algorithm="rsa-sha256",headers="(request-target) date host",signature="' . $signature . '"';
- } else {
- $headers = [];
}
if (!empty($opts['accept_content'])) {
$curl_opts = $opts;
$curl_opts['header'] = $headers;
- $curlResult = DI::httpRequest()->curl($request, false, $curl_opts);
+ $curlResult = DI::httpRequest()->get($request, false, $curl_opts);
$return_code = $curlResult->getReturnCode();
Logger::log('Fetched for user ' . $uid . ' from ' . $request . ' returned ' . $return_code, Logger::DEBUG);
}
$headers = [];
- $headers['(request-target)'] = strtolower($http_headers['REQUEST_METHOD']) . ' ' . $http_headers['REQUEST_URI'];
+ $headers['(request-target)'] = strtolower($http_headers['REQUEST_METHOD']) . ' ' . parse_url($http_headers['REQUEST_URI'], PHP_URL_PATH);
// First take every header
foreach ($http_headers as $k => $v) {