eventq_base 1.9.3 → 1.10.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/eventq_base/configuration.rb +17 -4
- data/lib/eventq_base/queue.rb +3 -0
- data/lib/eventq_base/queue_message.rb +1 -0
- data/lib/eventq_base/signature_providers/sha256_signature_provider.rb +27 -0
- data/lib/eventq_base/signature_providers.rb +23 -0
- data/lib/eventq_base/version.rb +1 -1
- data/lib/eventq_base.rb +1 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5c1b3f6785269f9bfa925441e6b0df5ccc7a397e
|
4
|
+
data.tar.gz: f596b8f09b17d58ef4aa4174de42372af151f91f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 836b0ac42d91d6f49e2bd6fe4876a331e994ee54b44382a0380d7ba93b9e687d6dc59e89928a70f2aab839c0eb6da40a073ecc9684cbac044fc8088ca697b7ef
|
7
|
+
data.tar.gz: 2db1a11ba4367132bd5b5fc1bc7d3fa613a97098129e7a29b895be5823b90a0d212a6eab56422494c170c4ef7f344a720c4bbca436238753722196fc2fe9dbbb
|
@@ -6,10 +6,23 @@ module EventQ
|
|
6
6
|
end
|
7
7
|
|
8
8
|
def self.serialization_provider
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
9
|
+
@serialization_provider ||= EventQ::SerializationProviders::OJ_PROVIDER
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.signature_provider=(value)
|
13
|
+
@signature_provider = value
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.signature_provider
|
17
|
+
@signature_provider ||= EventQ::SignatureProviders::SHA256
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.signature_secret=(value)
|
21
|
+
@signature_secret = value
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.signature_secret
|
25
|
+
@signature_secret
|
13
26
|
end
|
14
27
|
|
15
28
|
end
|
data/lib/eventq_base/queue.rb
CHANGED
@@ -6,6 +6,7 @@ module EventQ
|
|
6
6
|
attr_accessor :max_retry_attempts
|
7
7
|
attr_accessor :allow_retry_back_off
|
8
8
|
attr_accessor :max_retry_delay
|
9
|
+
attr_accessor :require_signature
|
9
10
|
|
10
11
|
def initialize
|
11
12
|
@allow_retry = false
|
@@ -15,6 +16,8 @@ module EventQ
|
|
15
16
|
@max_retry_attempts = 5
|
16
17
|
#default retry back off settings
|
17
18
|
@allow_retry_back_off = false
|
19
|
+
#default require signature to false
|
20
|
+
@require_signature = false
|
18
21
|
end
|
19
22
|
end
|
20
23
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require 'openssl'
|
2
|
+
require 'base64'
|
3
|
+
|
4
|
+
module EventQ
|
5
|
+
module SignatureProviders
|
6
|
+
class Sha256SignatureProvider
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
@serializer = EventQ::SerializationProviders::JsonSerializationProvider.new
|
10
|
+
end
|
11
|
+
|
12
|
+
#This method is called to create a signature for a message
|
13
|
+
def write(message:, secret:)
|
14
|
+
json = @serializer.serialize(message.content)
|
15
|
+
hash = OpenSSL::HMAC.digest('sha256', secret, json)
|
16
|
+
Base64.encode64(hash)
|
17
|
+
end
|
18
|
+
|
19
|
+
#This method is called to validate a message signature
|
20
|
+
def valid?(message:, secret:)
|
21
|
+
signature = write(message: message, secret: secret)
|
22
|
+
message.signature == signature
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require_relative 'signature_providers/sha256_signature_provider'
|
2
|
+
|
3
|
+
module EventQ
|
4
|
+
module SignatureProviders
|
5
|
+
|
6
|
+
SHA256 = 'sha256'.freeze
|
7
|
+
|
8
|
+
class Manager
|
9
|
+
def initialize
|
10
|
+
@providers = {}
|
11
|
+
@providers[SHA256] = EventQ::SignatureProviders::Sha256SignatureProvider
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_provider(provider_type)
|
15
|
+
provider = @providers[provider_type]
|
16
|
+
if provider == nil
|
17
|
+
raise "Invalid provider type specified: #{provider_type}"
|
18
|
+
end
|
19
|
+
return provider.new
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/eventq_base/version.rb
CHANGED
data/lib/eventq_base.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eventq_base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- vaughanbrittonsage
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,6 +136,20 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: openssl
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
139
153
|
description: This gem contains the base classes and contracts required by any eventq
|
140
154
|
implementations.
|
141
155
|
email:
|
@@ -161,6 +175,8 @@ files:
|
|
161
175
|
- lib/eventq_base/serialization_providers.rb
|
162
176
|
- lib/eventq_base/serialization_providers/json_serialization_provider.rb
|
163
177
|
- lib/eventq_base/serialization_providers/oj_serialization_provider.rb
|
178
|
+
- lib/eventq_base/signature_providers.rb
|
179
|
+
- lib/eventq_base/signature_providers/sha256_signature_provider.rb
|
164
180
|
- lib/eventq_base/subscription_manager_contract.rb
|
165
181
|
- lib/eventq_base/version.rb
|
166
182
|
- lib/eventq_base/worker_id.rb
|