From 0284d437fe04b01ef95b3f16368f129a2ed3a598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=85kre=20Solberg?= <andreas.solberg@uninett.no> Date: Tue, 12 Jan 2010 07:04:29 +0000 Subject: [PATCH] Adding new function to POST a signed Oauth message git-svn-id: https://simplesamlphp.googlecode.com/svn/trunk@2099 44740490-163a-0410-bde0-09ae8108e29a --- modules/oauth/lib/Consumer.php | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/modules/oauth/lib/Consumer.php b/modules/oauth/lib/Consumer.php index 6eb6e0737..74f243d0c 100644 --- a/modules/oauth/lib/Consumer.php +++ b/modules/oauth/lib/Consumer.php @@ -36,8 +36,6 @@ class sspmod_oauth_Consumer { if(array_key_exists('error', $responseParsed)) throw new Exception('Error getting request token: ') . $responseParsed['error']; -# echo('<pre>'); print_r($response_req); exit; - $requestToken = $responseParsed['oauth_token']; $requestTokenSecret = $responseParsed['oauth_token_secret']; @@ -79,6 +77,33 @@ class sspmod_oauth_Consumer { return new OAuthToken($accessToken, $accessTokenSecret); } + public function postRequest($url, $accessToken, $parameters) { + $data_req = OAuthRequest::from_consumer_and_token($this->consumer, $accessToken, "POST", $url, $parameters); + $data_req->sign_request($this->signer, $this->consumer, $accessToken); + $postdata = $data_req->to_postdata(); + + $opts = array( + 'ssl' => array( + 'verify_peer' => FALSE, + // 'cafile' => $file, + // 'local_cert' => $spKeyCertFile, + 'capture_peer_cert' => TRUE, + 'capture_peer_chain' => TRUE, + ), + 'http' => array( + 'method' => 'POST', + 'content' => $postdata, + 'header' => 'Content-Type: application/x-www-form-urlencoded', + ), + ); + $context = stream_context_create($opts); + $response = file_get_contents($url, FALSE, $context); + if ($response === FALSE) { + throw new SimpleSAML_Error_Exception('Failed to push definition file to ' . $pushURL); + } + return $response; + } + public function getUserInfo($url, $accessToken) { $data_req = OAuthRequest::from_consumer_and_token($this->consumer, $accessToken, "GET", $url, NULL); -- GitLab