riddl 0.99.162 → 0.99.163
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/examples/properties/server.properties.xml +1 -1
- data/lib/ruby/riddl/client.rb +2 -1
- data/lib/ruby/riddl/handlers/oauth.rb +1 -1
- data/lib/ruby/riddl/roles/http%3A%2F%2Foauth.net%2F1.0/base.rb +11 -11
- data/lib/ruby/riddl/server.rb +3 -2
- data/lib/ruby/riddl/utils/properties.rb +2 -2
- data/lib/ruby/riddl/wrapper.rb +1 -1
- data/riddl.gemspec +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 18b85503beb0c20754c0c07bd158b5ded0760fb1
|
4
|
+
data.tar.gz: afcd7fd93113b1f6a5ca754dd5c34720aea2c2a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 09180e1e9b517e1019e87ccfe2a2ea9e26d5fc04f9ce84abcbbed33e2281eab568ca7a7badebedfcb0a795b1f3a4c8bae951eddfcc4cfdf80a9ada8ace914298
|
7
|
+
data.tar.gz: 5474fc3977e917b6585a9149b7dc728103b6db5a26fb2db2600e4668ddc74ec5d0b079f215495c224050d3cec5fef36522e24707596cd16919520be41b4db698
|
data/lib/ruby/riddl/client.rb
CHANGED
@@ -12,6 +12,7 @@ require File.expand_path(File.dirname(__FILE__) + '/protocols/http/generator')
|
|
12
12
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/http/parser')
|
13
13
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/xmpp/generator')
|
14
14
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/xmpp/parser')
|
15
|
+
require File.expand_path(File.dirname(__FILE__) + '/protocols/utils')
|
15
16
|
require File.expand_path(File.dirname(__FILE__) + '/header')
|
16
17
|
require File.expand_path(File.dirname(__FILE__) + '/option')
|
17
18
|
|
@@ -268,7 +269,7 @@ unless Module.constants.include?('CLIENT_INCLUDED')
|
|
268
269
|
p.type = :query
|
269
270
|
end
|
270
271
|
if p.class == Riddl::Parameter::Simple && p.type == :query
|
271
|
-
qparams << Protocols::
|
272
|
+
qparams << Protocols::Utils::escape(p.name) + (p.value.nil? ? '' : '=' + Protocols::Utils::escape(p.value))
|
272
273
|
true
|
273
274
|
else
|
274
275
|
starting = false
|
@@ -7,7 +7,7 @@ module Riddl
|
|
7
7
|
provided = []
|
8
8
|
qs = what.read
|
9
9
|
(qs || '').split(/[&] */n).each do |p|
|
10
|
-
k, v = Protocols::
|
10
|
+
k, v = Protocols::Utils::unescape(p).split('=', 2)
|
11
11
|
provided << k.to_sym
|
12
12
|
end
|
13
13
|
WANTED.all?{ |e| provided.include?(e) }
|
@@ -21,42 +21,42 @@ module Riddl
|
|
21
21
|
def initialize(qs)
|
22
22
|
@provided = {}
|
23
23
|
(qs || '').split(/[&] */n).each do |p|
|
24
|
-
k, v = Protocols::
|
24
|
+
k, v = Protocols::Utils::unescape(p).split('=', 2)
|
25
25
|
@provided[k.to_sym] = v
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def self::sign(fullpath,method,parameters,headers,options)
|
31
|
-
signature_string = method.upcase + "&" + Protocols::
|
31
|
+
signature_string = method.upcase + "&" + Protocols::Utils::escape(fullpath) + "&"
|
32
32
|
|
33
33
|
sparams = []
|
34
34
|
if parameters.class == Array
|
35
35
|
parameters.each do |p|
|
36
36
|
if p.class == Riddl::Parameter::Simple
|
37
|
-
sparams << [Protocols::
|
37
|
+
sparams << [Protocols::Utils::escape(p.name),Protocols::Utils::escape(p.value)]
|
38
38
|
end
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
42
|
oparams = []
|
43
|
-
oparams << ["oauth_consumer_key",Protocols::
|
43
|
+
oparams << ["oauth_consumer_key",Protocols::Utils::escape(options[:consumer_key])]
|
44
44
|
oparams << ["oauth_signature_method","HMAC-SHA1"]
|
45
45
|
oparams << ["oauth_timestamp",Time.new.to_i.to_s]
|
46
46
|
oparams << ["oauth_version","1.0"]
|
47
|
-
oparams << ["oauth_nonce",Protocols::
|
48
|
-
oparams << ["oauth_token",Protocols::
|
49
|
-
oparams << ["oauth_verifier",Protocols::
|
47
|
+
oparams << ["oauth_nonce",Protocols::Utils::escape(OpenSSL::Digest::SHA1.hexdigest(rand(10000).to_s)[0...32])]
|
48
|
+
oparams << ["oauth_token",Protocols::Utils::escape(options[:token])] if options[:token]
|
49
|
+
oparams << ["oauth_verifier",Protocols::Utils::escape(options[:verifier])] if options[:verifier]
|
50
50
|
|
51
51
|
params = (sparams + oparams).sort{|a,b|a[0]<=>b[0]}.map{ |e| e[0] + '=' + e[1] }.join('&')
|
52
|
-
signature_string += Protocols::
|
52
|
+
signature_string += Protocols::Utils::escape(params)
|
53
53
|
|
54
|
-
signature = OpenSSL::HMAC.digest(DIGEST,"#{Protocols::
|
54
|
+
signature = OpenSSL::HMAC.digest(DIGEST,"#{Protocols::Utils::escape(options[:consumer_secret])}&#{Protocols::Utils::escape(options[:token_secret])}",signature_string)
|
55
55
|
signature = [signature].pack("m").gsub(/\n/, '')
|
56
56
|
|
57
|
-
oparams << ["oauth_signature", Protocols::
|
57
|
+
oparams << ["oauth_signature", Protocols::Utils::escape(signature)]
|
58
58
|
|
59
|
-
oparams.unshift(["realm", Protocols::
|
59
|
+
oparams.unshift(["realm", Protocols::Utils::escape(options[:realm])]) if options[:realm]
|
60
60
|
|
61
61
|
headers['Authorization'] = 'OAuth ' + oparams.map{|e|e[0]+'='+"\"#{e[1]}\""}.join(', ')
|
62
62
|
end
|
data/lib/ruby/riddl/server.rb
CHANGED
@@ -5,6 +5,7 @@ require File.expand_path(File.dirname(__FILE__) + '/protocols/http/parser')
|
|
5
5
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/http/generator')
|
6
6
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/xmpp/parser')
|
7
7
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/xmpp/generator')
|
8
|
+
require File.expand_path(File.dirname(__FILE__) + '/protocols/utils')
|
8
9
|
require File.expand_path(File.dirname(__FILE__) + '/protocols/websocket')
|
9
10
|
require File.expand_path(File.dirname(__FILE__) + '/header')
|
10
11
|
require File.expand_path(File.dirname(__FILE__) + '/parameter')
|
@@ -341,7 +342,7 @@ module Riddl
|
|
341
342
|
@riddl_info = {
|
342
343
|
:h => @riddl_headers,
|
343
344
|
:p => @riddl_parameters,
|
344
|
-
:r => @riddl_pinfo.sub(/\//,'').split('/').map{|e|Protocols::
|
345
|
+
:r => @riddl_pinfo.sub(/\//,'').split('/').map{|e|Protocols::Utils::unescape(e)},
|
345
346
|
:s => @riddl_matching_path[0].sub(/\//,'').split('/'),
|
346
347
|
:m => @riddl_method,
|
347
348
|
:env => Hash[@riddl_env.root.attributes.map{|a| [a.qname.name, a.value] }].merge({ 'riddl.transport' => 'xmpp', 'xmpp' => @riddl_res }),
|
@@ -402,7 +403,7 @@ module Riddl
|
|
402
403
|
@riddl_info = {
|
403
404
|
:h => @riddl_headers,
|
404
405
|
:p => @riddl_parameters,
|
405
|
-
:r => @riddl_pinfo.sub(/\//,'').split('/').map{|e|Protocols::
|
406
|
+
:r => @riddl_pinfo.sub(/\//,'').split('/').map{|e|Protocols::Utils::unescape(e)},
|
406
407
|
:s => @riddl_matching_path[0].sub(/\//,'').split('/'),
|
407
408
|
:m => @riddl_method,
|
408
409
|
:env => @riddl_env.reject{|k,v| k =~ /^rack\./}.merge({'riddl.transport' => 'http', 'xmpp' => @riddl_opts[:xmpp]}),
|
@@ -209,7 +209,7 @@ module Riddl
|
|
209
209
|
|
210
210
|
EM.defer{handler.property(@r[1]).read} unless handler.nil?
|
211
211
|
|
212
|
-
|
212
|
+
if ret = extract_values(backend,@r[1],Riddl::Protocols::Utils::unescape(@r[2..-1].join('/')))
|
213
213
|
ret
|
214
214
|
else
|
215
215
|
@status = 404
|
@@ -393,7 +393,7 @@ module Riddl
|
|
393
393
|
handler = @a[1]
|
394
394
|
|
395
395
|
property = @r[1]
|
396
|
-
minor = Riddl::Protocols::
|
396
|
+
minor = Riddl::Protocols::Utils::unescape(@r[2])
|
397
397
|
|
398
398
|
unless backend.modifiable?(property)
|
399
399
|
@status = 500
|
data/lib/ruby/riddl/wrapper.rb
CHANGED
@@ -250,7 +250,7 @@ module Riddl
|
|
250
250
|
def load_necessary_roles!
|
251
251
|
#{{{
|
252
252
|
@doc.find("//des:resource/@role").map{|h|h.to_s}.uniq.each do |h|
|
253
|
-
h = Protocols::
|
253
|
+
h = Protocols::Utils::escape(h)
|
254
254
|
if File.exists?(File.dirname(__FILE__) + '/roles/' + h + '.rb')
|
255
255
|
require File.expand_path(File.dirname(__FILE__) + '/roles/' + h)
|
256
256
|
end
|
data/riddl.gemspec
CHANGED