faye-authentication 1.10.0 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/VERSION +1 -1
- data/lib/faye/authentication/http_client.rb +4 -4
- data/spec/lib/faye/authentication/http_client_spec.rb +12 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23d0511cded90a176f335c918ddd7ac42559d80306818da3505dbc24341b24f8
|
4
|
+
data.tar.gz: 3aaaa3a5e286ee2952b0098b86c6d8d10aeb84c448f606044d406baeec6d074f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e5e77a5ee7df63d0a0c62e813431baa690d16b5532a2f10494e72ca998b4393fa50f5f21adfff356c608892974a1c8b7e0fa0133d502577ef8919922df65511
|
7
|
+
data.tar.gz: d2bcf4df68befe130af88a1e3a94a566374257385e8b737f16c76f22a70f8a042b15d2a205302bbad658e271ad97ce16a3021b25453263ae5f672612038a0375
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
|
+
## 1.11.0
|
2
|
+
- Optional authentication for `Faye::Authentication::HTTPClient` (#12)
|
3
|
+
|
4
|
+
## 1.10.0
|
5
|
+
- Remove signature from the server response (#11)
|
6
|
+
|
1
7
|
## 1.8.1
|
2
8
|
- Fix bad parameter passed to Net::HTTP::Post in HTTP Client (thanks @evserykh)
|
9
|
+
|
3
10
|
## 1.8.0
|
4
11
|
- Wait a delay before trying to fetch a signature after an error
|
5
12
|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.11.0
|
@@ -4,16 +4,16 @@ module Faye
|
|
4
4
|
module Authentication
|
5
5
|
class HTTPClient
|
6
6
|
|
7
|
-
def self.publish(url, channel, data, key)
|
7
|
+
def self.publish(url, channel, data, key, options = {})
|
8
8
|
uri = URI(url)
|
9
|
-
req = prepare_request(uri.request_uri, channel, data, key)
|
9
|
+
req = prepare_request(uri.request_uri, channel, data, key, options)
|
10
10
|
Net::HTTP.start(uri.hostname, uri.port, :use_ssl => uri.scheme == 'https') { |http| http.request(req) }
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.prepare_request(uri, channel, data, key)
|
13
|
+
def self.prepare_request(uri, channel, data, key, options = {})
|
14
14
|
req = Net::HTTP::Post.new(uri)
|
15
15
|
message = {'channel' => channel, 'clientId' => 'http'}
|
16
|
-
message['signature'] = Faye::Authentication.sign(message, key)
|
16
|
+
message['signature'] = Faye::Authentication.sign(message, key) if Faye::Authentication.authentication_required?(message, options)
|
17
17
|
message['data'] = data
|
18
18
|
req.set_form_data(message: JSON.dump(message))
|
19
19
|
req
|
@@ -9,11 +9,22 @@ describe Faye::Authentication::HTTPClient do
|
|
9
9
|
message = {'channel' => '/foo/bar', 'clientId' => 'http'}
|
10
10
|
message['signature'] = Faye::Authentication.sign(message, 'my private key')
|
11
11
|
message['data'] = 'hello'
|
12
|
-
request = stub_request(:post, "http://www.example.com").with(:
|
12
|
+
request = stub_request(:post, "http://www.example.com").with(body: {message: JSON.dump(message)}).to_return(status: 200, body: "", headers: {})
|
13
13
|
Faye::Authentication::HTTPClient.publish('http://www.example.com', '/foo/bar', "hello", 'my private key')
|
14
14
|
expect(request).to have_been_made
|
15
15
|
end
|
16
16
|
|
17
|
+
it 'should not add a signature if the channel is whitelisted' do
|
18
|
+
message = {'channel' => '/foo/bar', 'clientId' => 'http'}
|
19
|
+
message['data'] = 'hello'
|
20
|
+
request = stub_request(:post, "http://www.example.com").with(body: {message: JSON.dump(message)}).to_return(status: 200, body: "", headers: {})
|
21
|
+
whitelist = lambda do |channel|
|
22
|
+
channel.start_with?('/foo/')
|
23
|
+
end
|
24
|
+
Faye::Authentication::HTTPClient.publish('http://www.example.com', '/foo/bar', "hello", 'my private key', { whitelist: whitelist })
|
25
|
+
expect(request).to have_been_made
|
26
|
+
end
|
27
|
+
|
17
28
|
end
|
18
29
|
|
19
30
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faye-authentication
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.11.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Adrien Siami
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-09-
|
11
|
+
date: 2019-09-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jwt
|