manticore 0.3.3-java → 0.3.4-java

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d1a619a796954b17b56a23381741f57e603d174
4
- data.tar.gz: bf682e7d96bcb816abf0dacdaa6bb0e6760777d6
3
+ metadata.gz: 353676ba5c5c9ff2a01a4df74c63e059abc55b37
4
+ data.tar.gz: f8ffecdb2d6f8bce9c03a2f8ebeb518329a579a8
5
5
  SHA512:
6
- metadata.gz: 2fb94165a8770dddf5dc1c4c7972433ea12934402a83284fa3890fbf058924dc67205c6d3bed3844cd7a2437c2c2825c90a6bb339935249c9531c272bf7e79f2
7
- data.tar.gz: 300152b1d96c32d4edbb7df6dcff295c780ebc2d568dbc7562e863cf8da6840fd6ab33e8080a01f0711fb3798d9955b75e25fa8159da846b51edf5cf05233c7b
6
+ metadata.gz: 2a0ae79dee6fc7f0420b1ad3a614c91aea0e0abd12d9a0a32c4833432e2ee0fe7ac4f2bc9e3386a9f7ca9f54f110c75fa61cddc2ca6926e7ca710cd5e341bc21
7
+ data.tar.gz: 2eef5cf9942d6fb7d0070bef2db25de3d24a9184d6a6e36fd5b073f5a6decff662ab37b9e83a5144f0dca4601d397d698d24cf44b5674bd0c8f4841903c9ddd2
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -1,5 +1,13 @@
1
1
  ## v0.3
2
- ### v0.3.4 (pending)
2
+ ### v0.3.5 (pending)
3
+
4
+ ### v0.3.4
5
+
6
+ * Fixed an issue that caused the presence of request-specific options (ie, max_redirects) to cause the request to use a
7
+ default settings config, rather than respecting the client options. (thanks @zanker)
8
+ * Turn off connection state tracking by default; this enables connections to be shared across threads, and shouldn't be an
9
+ issue for most installs. If you need it on, pass :ssl => {:track_state => true} when instantiating a client. (thanks @zanker)
10
+
3
11
  ### v0.3.3
4
12
 
5
13
  * Update to HttpCommons 4.3.6
@@ -138,9 +138,12 @@ module Manticore
138
138
  # @option options [String] ssl[:keystore] (nil) Path to a custom key store to use for client certificate authentication
139
139
  # @option options [String] ssl[:keystore_password] (nil) Password used for decrypting the client auth key store
140
140
  # @option options [String] ssl[:keystore_type] (nil) Format of the key store, ie "JKS" or "PKCS12". If left nil, the type will be inferred from the keystore filename.
141
+ # @option options [boolean] ssl[:track_state] (false) Turn on or off connection state tracking. This helps prevent SSL information from leaking across threads, but means that connections
142
+ # can't be shared across those threads. This should generally be left off unless you know what you're doing.
141
143
  def initialize(options = {})
142
144
  builder = client_builder
143
145
  builder.set_user_agent options.fetch(:user_agent, "Manticore #{VERSION}")
146
+ @options = options
144
147
  @use_cookies = options.fetch(:cookies, false)
145
148
  builder.disable_cookie_management unless @use_cookies
146
149
  builder.disable_content_compression if options.fetch(:compression, true) == false
@@ -160,9 +163,11 @@ module Manticore
160
163
  end
161
164
  end
162
165
 
163
- # This should make it easier to reuse connections
164
- # TODO: Determine what this actually does!
165
- # builder.disable_connection_state
166
+ # http://hc.apache.org/httpcomponents-client-ga/tutorial/html/advanced.html#stateful_conn
167
+ # By default this is used to prevent different contexts from accessing SSL data
168
+ # Since we're running this for JRuby which does not have context separation within the JVM
169
+ # We can disable this for connection reuse.
170
+ builder.disable_connection_state unless options.fetch(:ssl, {}).fetch(:track_state, false)
166
171
 
167
172
  keepalive = options.fetch(:keepalive, true)
168
173
  if keepalive == false
@@ -420,12 +425,14 @@ module Manticore
420
425
 
421
426
  if options.key?(:proxy) || options.key?(:connect_timeout) || options.key?(:socket_timeout) || options.key?(:max_redirects) || options.key?(:follow_redirects)
422
427
  config = RequestConfig.custom()
423
- config.set_proxy get_proxy_host(options[:proxy]) if options[:proxy]
424
- config.set_connect_timeout options[:connect_timeout] if options[:connect_timeout]
425
- config.set_socket_timeout options[:socket_timeout] if options[:socket_timeout]
426
- config.set_max_redirects options[:max_redirects] if options[:max_redirects]
427
- config.set_redirects_enabled !!options[:follow_redirects] if options.fetch(:follow_redirects, nil) != nil
428
- config.set_connection_request_timeout options[:request_timeout] if options[:request_timeout]
428
+ req_options = @options.merge(options)
429
+
430
+ config.set_proxy get_proxy_host(req_options[:proxy]) if req_options[:proxy]
431
+ config.set_max_redirects req_options[:max_redirects] if req_options[:max_redirects]
432
+ config.set_redirects_enabled !!req_options[:follow_redirects] if req_options.fetch(:follow_redirects, nil) != nil
433
+ config.set_connect_timeout req_options[:connect_timeout] * 1000 if req_options[:connect_timeout]
434
+ config.set_socket_timeout req_options[:socket_timeout] * 1000 if req_options[:socket_timeout]
435
+ config.set_connection_request_timeout req_options[:request_timeout] * 1000 if req_options[:request_timeout]
429
436
  req.set_config config.build
430
437
  end
431
438
 
File without changes
@@ -1,3 +1,3 @@
1
1
  module Manticore
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -42,6 +42,16 @@ describe Manticore::Client do
42
42
  j["uri"]["port"].should == 55441
43
43
  end
44
44
 
45
+ describe "with a custom user agent" do
46
+ let(:client) { Manticore::Client.new user_agent: "test-agent/1.0" }
47
+
48
+ it "should use the specified UA" do
49
+ response = client.get(local_server("/"))
50
+ json = JSON.load(response.body)
51
+ expect(json["headers"]["User-Agent"]).to eq "test-agent/1.0"
52
+ end
53
+ end
54
+
45
55
  describe "ignore_ssl_validation (deprecated option)" do
46
56
  context "when on" do
47
57
  let(:client) { Manticore::Client.new ssl: {verify: false} }
@@ -559,6 +569,18 @@ describe Manticore::Client do
559
569
  end
560
570
  end
561
571
 
572
+ describe "with connection timeouts" do
573
+ let(:client) { Manticore::Client.new request_timeout: 1, connect_timeout: 1, socket_timeout: 1 }
574
+
575
+ it "should time out" do
576
+ expect { client.get(local_server "/?sleep=2").body }.to raise_exception(Manticore::Timeout)
577
+ end
578
+
579
+ it "should time out when custom request options are passed" do
580
+ expect { client.get(local_server("/?sleep=2"), max_redirects: 5).body }.to raise_exception(Manticore::Timeout)
581
+ end
582
+ end
583
+
562
584
  def get_connection(client, uri, &block)
563
585
  java_import "java.util.concurrent.TimeUnit"
564
586
  host = URI.parse(uri).host
@@ -1,33 +1,31 @@
1
1
  -----BEGIN CERTIFICATE-----
2
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 7iU1gbPMW+j5pqJY3yXsWuWehRJEoTFL2QYdxTXqN5E3PCOwBzvYWnu//VBHKaJ+
26
- Bvik0mGIpmFpXpRYnRZ92SxH1bCl7d+wH8CgnY/elIy3w7f05ZsZl0zGklHcWjPH
27
- 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
- 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
- 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
- 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
- 8s25QyDvJfUy5n+/0sxPBSR7Uk9yn9se3Q6zKF4pMcxUyC2yqgZZv5Et41dkJbac
32
- wuhTyH5RfnYu
2
+ MIIFPjCCAyYCCQCQsu6LeOWnuzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJV
3
+ UzELMAkGA1UECAwCTUQxEjAQBgNVBAcMCUJhbHRpbW9yZTEQMA4GA1UEAwwHVGVz
4
+ dCBDQTEfMB0GCSqGSIb3DQEJARYQdGVzdEBleGFtcGxlLmNvbTAeFw0xNTAxMDcx
5
+ NzM3MDdaFw0yODA5MTUxNzM3MDdaMGExCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJN
6
+ RDESMBAGA1UEBwwJQmFsdGltb3JlMRAwDgYDVQQDDAdUZXN0IENBMR8wHQYJKoZI
7
+ hvcNAQkBFhB0ZXN0QGV4YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
8
+ MIICCgKCAgEAuTlMyzLeLF6ts6lqVsSFbNC2R0KXvRzXEztbzsV/yVYTkaX2Pnul
9
+ EevfU/qEhza94032tCVqvVXu1X11PJEQRWmZ7s5ovEW119h5N9cMlHBaAOJbls3S
10
+ igDC2SsJGCnfrYZpuBdbMsTtqE50OEXHCK1jHkmM8821XvEwhsPSRgSplcsgVS2Q
11
+ rxzIePznpdJnSFI6T7S/Woekt0Mn1udwOOhKo6Y3NaxX7zM3LYF3RBFwvY2wpzV/
12
+ Mu8/Be19a8QLN3ZStyAwAyS1nbH1/a70Ie8yFiEZs76QVJYqkfedQkt24wz5fGBo
13
+ VCY/wlkGy36U0Bijuatoh4dr3ivxNERz6yq7O97vlrsq4zFBG8VRQbATh/APTFBQ
14
+ 7tWJDlQImqEfVnWCv8bEy4kkTBz260iT0/WmEC5zYT7NW3nKfGGdo8pERqWn1x9g
15
+ TLpsPuIo8b3vUUJjlqpSfSoiiabC6WP0bQ8h8swvAWEK2Q2e5KqbmSmlfVrCQUyn
16
+ CxsS9WwX9Zm/AUS/hxbs6gCnmKcIVVcesWrnpXzkC2tevAYrIIm94Enwy/YyKBId
17
+ N/pK3DcWIb3NG/6AfBywSnW9mpbyXvnScDMS5FXZhb6eVp/3zTKYox4OQenb6qX0
18
+ JFRHuX2cVK84WJtJEKAFvO2nsY2kg2C3h3I3LCZTthdnZ06Nq1AV9wsCAwEAATAN
19
+ BgkqhkiG9w0BAQUFAAOCAgEAVQw+V+dP73ZMUeSd2WqL7flPfUM7T0T52Amtw2zD
20
+ 2nynQ3xwHwyHrKNm2S0CIdu3Eq4R0EFznk6DhjeLM0kAJX4RuWraT16TCcLq/YxC
21
+ K4qXAX6eyq3oauv47PTUMbSeIwyqspY/LY/cGxzgeFMNWHc2llUPTyN3qszubMUn
22
+ T/3Mbec1WCIgGh4TqFloCPqLy/EqkANXXW4V10olhjzGkwjZ5KoJVmXTQlTzz2PJ
23
+ mVeIQXlceawj25inhjdvjFWMaO1csm5ZNqIBvLgN45gKxcnDjUbUyglRRa0Dxvut
24
+ T94HbFONYHWMTDWO5ElGgjjjdwCAiyKuAk/Lv5ZJ8dw8ByPLzsjM76lbzlXGDGsx
25
+ /ay4PuBCOMKOul4yyb8WMFcsIzk/f/mUhU68gTesMYX0mNYqjDvifA8Ws7So+yD+
26
+ oMAwMabkn11p5UwPLpszr7cqfmYTsxcHQUKFYPM3jySxaqOU1mwL4d/FshrcR1s2
27
+ doen2Dq2VzJFxJqsQVK7uvEz847Av3JRUDCbjx7rYc9DfuY6anZ1/tv7YqPGxiXd
28
+ LznEPNy9/9p5gGtlj6bqo8l4Kf+puvpkX3qICelO3P9Unzky+tNrkY7i2rgK9Vyh
29
+ X6EOcJ8K53Y9AHOvKElq/UszMOjkZbpGo/qhZkYPGqaD8yM35MNrQXBonk/zH6cA
30
+ xA4=
33
31
  -----END CERTIFICATE-----
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: manticore
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: java
6
6
  authors:
7
7
  - Chris Heald
@@ -30,50 +30,50 @@ cert_chain:
30
30
  E7PWS50D9moUJ6xWcemf0qKYC87qBFh0ng73awjG9uf+13lMslqJRMtek8C92cvh
31
31
  +R9zgQlbeNjy9O1i
32
32
  -----END CERTIFICATE-----
33
- date: 2014-12-14 00:00:00.000000000 Z
33
+ date: 2015-01-08 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
- name: addressable
37
- version_requirements: !ruby/object:Gem::Requirement
38
- requirements:
39
- - - ~>
40
- - !ruby/object:Gem::Version
41
- version: '2.3'
42
36
  requirement: !ruby/object:Gem::Requirement
43
37
  requirements:
44
38
  - - ~>
45
39
  - !ruby/object:Gem::Version
46
40
  version: '2.3'
41
+ name: addressable
47
42
  prerelease: false
48
43
  type: :runtime
49
- - !ruby/object:Gem::Dependency
50
- name: bundler
51
44
  version_requirements: !ruby/object:Gem::Requirement
52
45
  requirements:
53
46
  - - ~>
54
47
  - !ruby/object:Gem::Version
55
- version: '1.3'
48
+ version: '2.3'
49
+ - !ruby/object:Gem::Dependency
56
50
  requirement: !ruby/object:Gem::Requirement
57
51
  requirements:
58
52
  - - ~>
59
53
  - !ruby/object:Gem::Version
60
54
  version: '1.3'
55
+ name: bundler
61
56
  prerelease: false
62
57
  type: :development
63
- - !ruby/object:Gem::Dependency
64
- name: rake
65
58
  version_requirements: !ruby/object:Gem::Requirement
66
59
  requirements:
67
- - - '>='
60
+ - - ~>
68
61
  - !ruby/object:Gem::Version
69
- version: '0'
62
+ version: '1.3'
63
+ - !ruby/object:Gem::Dependency
70
64
  requirement: !ruby/object:Gem::Requirement
71
65
  requirements:
72
66
  - - '>='
73
67
  - !ruby/object:Gem::Version
74
68
  version: '0'
69
+ name: rake
75
70
  prerelease: false
76
71
  type: :development
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
77
  description: Manticore is an HTTP client built on the Apache HttpCore components
78
78
  email:
79
79
  - cheald@mashable.com
metadata.gz.sig CHANGED
Binary file