eventq_base 1.9.3 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|