Fix compile
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
package lime.net;
|
package lime.net;
|
||||||
|
|
||||||
|
|
||||||
import flash.utils.ByteArray;
|
|
||||||
import haxe.io.Bytes;
|
import haxe.io.Bytes;
|
||||||
import lime.app.Future;
|
import lime.app.Future;
|
||||||
import lime.app.Promise;
|
import lime.app.Promise;
|
||||||
|
|||||||
@@ -1,124 +1,124 @@
|
|||||||
package lime.net.oauth;
|
package lime.net.oauth;
|
||||||
|
|
||||||
|
|
||||||
import haxe.crypto.Base64;
|
//import haxe.crypto.Base64;
|
||||||
import haxe.crypto.Hmac;
|
//import haxe.crypto.Hmac;
|
||||||
import haxe.io.Bytes;
|
//import haxe.io.Bytes;
|
||||||
import lime.net.URLRequestMethod;
|
//import lime.net.URLRequestMethod;
|
||||||
import lime.net.URLRequestHeader;
|
//import lime.net.URLRequestHeader;
|
||||||
import lime.net.URLRequest;
|
//import lime.net.URLRequest;
|
||||||
import lime.net.URIParser;
|
//import lime.net.URIParser;
|
||||||
import lime.net.oauth.OAuthToken;
|
//import lime.net.oauth.OAuthToken;
|
||||||
|
//
|
||||||
using StringTools;
|
//using StringTools;
|
||||||
|
//
|
||||||
class OAuthRequest {
|
//class OAuthRequest {
|
||||||
|
//
|
||||||
public var version:OAuthVersion = V1;
|
//public var version:OAuthVersion = V1;
|
||||||
public var parameters:Map<String, String>;
|
//public var parameters:Map<String, String>;
|
||||||
public var request:URLRequest;
|
//public var request:URLRequest;
|
||||||
|
//
|
||||||
private var uri:URIParser;
|
//private var uri:URIParser;
|
||||||
|
//
|
||||||
|
//
|
||||||
public function new (version:OAuthVersion = V1, method:URLRequestMethod, url:String, parameters:Map<String, String>) {
|
//public function new (version:OAuthVersion = V1, method:URLRequestMethod, url:String, parameters:Map<String, String>) {
|
||||||
|
//
|
||||||
this.version = version;
|
//this.version = version;
|
||||||
request = new URLRequest();
|
//request = new URLRequest();
|
||||||
request.url = url;
|
//request.url = url;
|
||||||
request.method = cast method;
|
//request.method = cast method;
|
||||||
this.parameters = parameters;
|
//this.parameters = parameters;
|
||||||
|
//
|
||||||
uri = new URIParser(url);
|
//uri = new URIParser(url);
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
|
//
|
||||||
public function getHeader ():URLRequestHeader {
|
//public function getHeader ():URLRequestHeader {
|
||||||
|
//
|
||||||
var result = "";
|
//var result = "";
|
||||||
|
//
|
||||||
switch(version) {
|
//switch(version) {
|
||||||
|
//
|
||||||
case V1:
|
//case V1:
|
||||||
result = "OAuth ";
|
//result = "OAuth ";
|
||||||
|
//
|
||||||
var keys = parameters.keys();
|
//var keys = parameters.keys();
|
||||||
for(key in keys) {
|
//for(key in keys) {
|
||||||
result += '${key.urlEncode()}="${parameters.get(key).urlEncode()}"';
|
//result += '${key.urlEncode()}="${parameters.get(key).urlEncode()}"';
|
||||||
if(keys.hasNext()) {
|
//if(keys.hasNext()) {
|
||||||
result += ", ";
|
//result += ", ";
|
||||||
}
|
//}
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
case V2:
|
//case V2:
|
||||||
// TODO
|
//// TODO
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
return new URLRequestHeader("Authorization", result);
|
//return new URLRequestHeader("Authorization", result);
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Signs the petition, only for OAuth 1.0
|
//* Signs the petition, only for OAuth 1.0
|
||||||
*/
|
//*/
|
||||||
public function sign (consumer:OAuthConsumer, ?accessToken:OAuth1AccessToken, ?signatureMethod:OAuthSignatureMethod = HMAC_SHA1):Void {
|
//public function sign (consumer:OAuthConsumer, ?accessToken:OAuth1AccessToken, ?signatureMethod:OAuthSignatureMethod = HMAC_SHA1):Void {
|
||||||
|
//
|
||||||
var key = consumer.secret.urlEncode() + "&";
|
//var key = consumer.secret.urlEncode() + "&";
|
||||||
if(accessToken != null) {
|
//if(accessToken != null) {
|
||||||
key += accessToken.secret == null ? "" : accessToken.secret.urlEncode();
|
//key += accessToken.secret == null ? "" : accessToken.secret.urlEncode();
|
||||||
}
|
//}
|
||||||
var message = request.method + "&" + normalizeURI() + "&" + normalizeParameters();
|
//var message = request.method + "&" + normalizeURI() + "&" + normalizeParameters();
|
||||||
var hash = new Hmac (SHA1);
|
//var hash = new Hmac (SHA1);
|
||||||
var bytes = hash.make (Bytes.ofString (key), Bytes.ofString (message));
|
//var bytes = hash.make (Bytes.ofString (key), Bytes.ofString (message));
|
||||||
|
//
|
||||||
parameters.set("oauth_signature", Base64.encode (bytes));
|
//parameters.set("oauth_signature", Base64.encode (bytes));
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
// SIGNING FUNCTIONS
|
//// SIGNING FUNCTIONS
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Prepares the message parameters for the signing process
|
//* Prepares the message parameters for the signing process
|
||||||
*/
|
//*/
|
||||||
private function normalizeParameters():String {
|
//private function normalizeParameters():String {
|
||||||
|
//
|
||||||
var result = new Array<KVPair>();
|
//var result = new Array<KVPair>();
|
||||||
|
//
|
||||||
if(uri.queryArray != null) {
|
//if(uri.queryArray != null) {
|
||||||
result = result.concat(uri.queryArray);
|
//result = result.concat(uri.queryArray);
|
||||||
}
|
//}
|
||||||
// TODO add data if POST
|
//// TODO add data if POST
|
||||||
|
//
|
||||||
for(key in parameters.keys()) {
|
//for(key in parameters.keys()) {
|
||||||
|
//
|
||||||
if(key == "realm") continue;
|
//if(key == "realm") continue;
|
||||||
result.push( { k: key, v: parameters.get(key) } );
|
//result.push( { k: key, v: parameters.get(key) } );
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
result.sort(OAuthSort);
|
//result.sort(OAuthSort);
|
||||||
|
//
|
||||||
return result.map(function(p:KVPair) return p.k.urlEncode()+"="+p.v.urlEncode()).join("&").urlEncode();
|
//return result.map(function(p:KVPair) return p.k.urlEncode()+"="+p.v.urlEncode()).join("&").urlEncode();
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
private function normalizeURI():String {
|
//private function normalizeURI():String {
|
||||||
var scheme = uri.protocol == null ? "https" : uri.protocol.toLowerCase();
|
//var scheme = uri.protocol == null ? "https" : uri.protocol.toLowerCase();
|
||||||
var authority = uri.authority.toLowerCase();
|
//var authority = uri.authority.toLowerCase();
|
||||||
var port = (scheme == "https" || scheme == "http") ? null : uri.port;
|
//var port = (scheme == "https" || scheme == "http") ? null : uri.port;
|
||||||
var path = uri.path;
|
//var path = uri.path;
|
||||||
var result = (scheme + "://" + authority + (port == null ? "" : ":" + port) + path);
|
//var result = (scheme + "://" + authority + (port == null ? "" : ":" + port) + path);
|
||||||
return result.urlEncode();
|
//return result.urlEncode();
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
/**
|
///**
|
||||||
* Parameters are sorted by name, using lexicographical byte value ordering.
|
//* Parameters are sorted by name, using lexicographical byte value ordering.
|
||||||
* If two or more parameters share the same name, they are sorted by their value.
|
//* If two or more parameters share the same name, they are sorted by their value.
|
||||||
*/
|
//*/
|
||||||
private function OAuthSort(a:KVPair, b:KVPair) {
|
//private function OAuthSort(a:KVPair, b:KVPair) {
|
||||||
return if(a.k < b.k) -1 else if (a.k > b.k) 1 else if (a.v < b.v) -1 else 1;
|
//return if(a.k < b.k) -1 else if (a.k > b.k) 1 else if (a.v < b.v) -1 else 1;
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
}
|
//}
|
||||||
|
//
|
||||||
|
//
|
||||||
typedef KVPair = {k:String, v:String};
|
//typedef KVPair = {k:String, v:String};
|
||||||
Reference in New Issue
Block a user