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