bunny 0.9.3 → 0.9.4

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 6bf2e653c0def6db325c55467b9aadc29cd1a95c
4
+ data.tar.gz: e842ff44b84872269ff66ab83d1cf9f46fab5708
5
+ SHA512:
6
+ metadata.gz: c526be96cb7740a54e13657302c3628abf86f8165f722ad44b55cf3d3a94b0bbeddaf603143ed7f572c3c595871104bcdecad916f318cc28951aec392db5de35
7
+ data.tar.gz: 7d60dbc8c64568343d913d4c03f8f142ef0ed8b4daea45197ecf73a4c8192af61bb19bf9afd9700ac3aea587b8740c73ea6f95b58add6bbcb1dfa7f5637e9d0b
@@ -1,3 +1,19 @@
1
+ ## Changes between Bunny 0.9.4 and 0.9.5
2
+
3
+ No changes.
4
+
5
+
6
+ ## Changes between Bunny 0.9.3 and 0.9.4
7
+
8
+ ### Client TLS Certificates are Optional
9
+
10
+ Bunny will no longer require client TLS certificates. Note that CA certificate
11
+ list is still necessary.
12
+
13
+ If RabbitMQ TLS configuration requires peer verification, client certificate
14
+ and private key are mandatory.
15
+
16
+
1
17
  ## Changes between Bunny 0.9.2 and 0.9.3
2
18
 
3
19
  ### Publishing Over Closed Connections
@@ -311,14 +311,24 @@ module Bunny
311
311
  end
312
312
 
313
313
  def initialize_tls_context(ctx)
314
- ctx.cert = OpenSSL::X509::Certificate.new(@tls_certificate)
315
- ctx.key = OpenSSL::PKey::RSA.new(@tls_key)
314
+ ctx.cert = OpenSSL::X509::Certificate.new(@tls_certificate) if @tls_certificate
315
+ ctx.key = OpenSSL::PKey::RSA.new(@tls_key) if @tls_key
316
316
  ctx.cert_store = if @tls_certificate_store
317
317
  @tls_certificate_store
318
318
  else
319
319
  initialize_tls_certificate_store(@tls_ca_certificates)
320
320
  end
321
321
 
322
+ if !@tls_certificate
323
+ @logger.warn <<-MSG
324
+ Using TLS but no client certificate is provided! If RabbitMQ is configured to verify peer
325
+ certificate, connection upgrade will fail!
326
+ MSG
327
+ end
328
+ if @tls_certificate && !@tls_key
329
+ @logger.warn "Using TLS but no client private key is provided!"
330
+ end
331
+
322
332
  # setting TLS/SSL version only works correctly when done
323
333
  # vis set_params. MK.
324
334
  ctx.set_params(:ssl_version => @opts.fetch(:tls_protocol, DEFAULT_TLS_PROTOCOL))
@@ -2,5 +2,5 @@
2
2
 
3
3
  module Bunny
4
4
  # @return [String] Version of the library
5
- VERSION = "0.9.3"
5
+ VERSION = "0.9.4"
6
6
  end
@@ -2,7 +2,7 @@
2
2
  require "spec_helper"
3
3
 
4
4
  unless ENV["CI"]
5
- describe "TLS connection to RabbitMQ" do
5
+ describe "TLS connection to RabbitMQ with client certificates" do
6
6
  let(:connection) do
7
7
  c = Bunny.new(:user => "bunny_gem",
8
8
  :password => "bunny_password",
@@ -44,4 +44,46 @@ unless ENV["CI"]
44
44
  ch.close
45
45
  end
46
46
  end
47
+
48
+
49
+ describe "TLS connection to RabbitMQ without client certificates" do
50
+ let(:connection) do
51
+ c = Bunny.new(:user => "bunny_gem",
52
+ :password => "bunny_password",
53
+ :vhost => "bunny_testbed",
54
+ :tls => true,
55
+ :tls_ca_certificates => ["./spec/tls/cacert.pem"])
56
+ c.start
57
+ c
58
+ end
59
+
60
+ after :all do
61
+ connection.close
62
+ end
63
+
64
+ it "provides the same API as a regular connection" do
65
+ ch = connection.create_channel
66
+
67
+ q = ch.queue("", :exclusive => true)
68
+ x = ch.default_exchange
69
+
70
+ x.publish("xyzzy", :routing_key => q.name).
71
+ publish("xyzzy", :routing_key => q.name).
72
+ publish("xyzzy", :routing_key => q.name).
73
+ publish("xyzzy", :routing_key => q.name)
74
+
75
+ sleep 0.5
76
+ q.message_count.should == 4
77
+
78
+ i = 0
79
+ q.subscribe do |delivery_info, _, payload|
80
+ i += 1
81
+ end
82
+ sleep 1.0
83
+ i.should == 4
84
+ q.message_count.should == 0
85
+
86
+ ch.close
87
+ end
88
+ end
47
89
  end
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bunny
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.3
5
- prerelease:
4
+ version: 0.9.4
6
5
  platform: ruby
7
6
  authors:
8
7
  - Chris Duncan
@@ -13,36 +12,29 @@ authors:
13
12
  autorequire:
14
13
  bindir: bin
15
14
  cert_chain: []
16
- date: 2013-07-24 00:00:00.000000000 Z
15
+ date: 2013-07-25 00:00:00.000000000 Z
17
16
  dependencies:
18
17
  - !ruby/object:Gem::Dependency
19
18
  name: amq-protocol
20
19
  requirement: !ruby/object:Gem::Requirement
21
- none: false
22
20
  requirements:
23
- - - ! '>='
21
+ - - '>='
24
22
  - !ruby/object:Gem::Version
25
23
  version: 1.6.0
26
24
  type: :runtime
27
25
  prerelease: false
28
26
  version_requirements: !ruby/object:Gem::Requirement
29
- none: false
30
27
  requirements:
31
- - - ! '>='
28
+ - - '>='
32
29
  - !ruby/object:Gem::Version
33
30
  version: 1.6.0
34
31
  description: Easy to use, feature complete Ruby client for RabbitMQ 2.0.
35
32
  email:
36
- - !binary |-
37
- Y2VsbGRlZUBnbWFpbC5jb20=
38
- - !binary |-
39
- ZXJpY0A1c3RvcHMuY29t
40
- - !binary |-
41
- c3Rhc3RueUAxMDFpZGVhcy5jeg==
42
- - !binary |-
43
- bWljaGFlbEBub3ZlbWJlcmFpbi5jb20=
44
- - !binary |-
45
- c2thZXNAcmFpbHNleHByZXNzLmRl
33
+ - celldee@gmail.com
34
+ - eric@5stops.com
35
+ - stastny@101ideas.cz
36
+ - michael@novemberain.com
37
+ - skaes@railsexpress.de
46
38
  executables: []
47
39
  extensions: []
48
40
  extra_rdoc_files:
@@ -192,27 +184,26 @@ files:
192
184
  homepage: http://rubybunny.info
193
185
  licenses:
194
186
  - MIT
187
+ metadata: {}
195
188
  post_install_message:
196
189
  rdoc_options: []
197
190
  require_paths:
198
191
  - lib
199
192
  required_ruby_version: !ruby/object:Gem::Requirement
200
- none: false
201
193
  requirements:
202
- - - ! '>='
194
+ - - '>='
203
195
  - !ruby/object:Gem::Version
204
196
  version: '0'
205
197
  required_rubygems_version: !ruby/object:Gem::Requirement
206
- none: false
207
198
  requirements:
208
- - - ! '>='
199
+ - - '>='
209
200
  - !ruby/object:Gem::Version
210
201
  version: '0'
211
202
  requirements: []
212
203
  rubyforge_project:
213
- rubygems_version: 1.8.25
204
+ rubygems_version: 2.0.5
214
205
  signing_key:
215
- specification_version: 3
206
+ specification_version: 4
216
207
  summary: Popular easy to use Ruby client for RabbitMQ
217
208
  test_files:
218
209
  - spec/compatibility/queue_declare_spec.rb