ruby-kafka-aws-iam 1.4.1 → 1.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 12a6cd684ff2abb033b8b9c1c915e0d68eba5d55ca1bc42f1f219f2ded135ee3
4
- data.tar.gz: f6a0344386a80000a7b48bd6b199917b0abc32558377cf79cfca2a28d717d4c4
3
+ metadata.gz: 4210fcd2155979ae945a9b1c64638b3e2d0b4c63cbd4a6332406e8bfa2f8e26a
4
+ data.tar.gz: 48d2ecf50daff8e8b23f77e8fb90c8086686cfdc7a5d65a50645b97ded4676bc
5
5
  SHA512:
6
- metadata.gz: 4e24776f995ae5b32a92bfc73cf2164963a803aa6704a6796ebae4e677284f27b8c7eaa61001b25fa90ebcb6e45c8565ed89c059f912e05053a3958b4ffd5106
7
- data.tar.gz: 83fe226fa24bafcfedabb24d91d959139132f40e6db8853253f418e7bfc069995b0db9eda0e0950105d67462dde24544353fcb87e3a66c230dcf0a8c62d81ff1
6
+ metadata.gz: 650343b839e07b14608e1bcd7b7e893cd6307918f9c9d2894d2f813739e616b56ad2d0ba2a0dbf0986ebaf38ee2dc4848bfc8c2581e1402916148caf3943c83e
7
+ data.tar.gz: 3e5d7edfb7fc7867d10df945766c84d38fbf64fd03b84e0fa496cbf523faa8824d8ebc10f258c170667e9482eae3682ee76ebb0aed494de235fd74ce4bea10f0
data/lib/kafka/client.rb CHANGED
@@ -86,7 +86,9 @@ module Kafka
86
86
  sasl_gssapi_keytab: nil, sasl_plain_authzid: '', sasl_plain_username: nil, sasl_plain_password: nil,
87
87
  sasl_scram_username: nil, sasl_scram_password: nil, sasl_scram_mechanism: nil,
88
88
  sasl_aws_msk_iam_access_key_id: nil,
89
- sasl_aws_msk_iam_secret_key_id: nil, sasl_aws_msk_iam_aws_region: nil,
89
+ sasl_aws_msk_iam_secret_key_id: nil,
90
+ sasl_aws_msk_iam_aws_region: nil,
91
+ sasl_aws_msk_iam_session_token: nil,
90
92
  sasl_over_ssl: true, ssl_ca_certs_from_system: false, partitioner: nil, sasl_oauth_token_provider: nil, ssl_verify_hostname: true,
91
93
  resolve_seed_brokers: false)
92
94
  @logger = TaggedLogger.new(logger)
@@ -117,6 +119,7 @@ module Kafka
117
119
  sasl_aws_msk_iam_access_key_id: sasl_aws_msk_iam_access_key_id,
118
120
  sasl_aws_msk_iam_secret_key_id: sasl_aws_msk_iam_secret_key_id,
119
121
  sasl_aws_msk_iam_aws_region: sasl_aws_msk_iam_aws_region,
122
+ sasl_aws_msk_iam_session_token: sasl_aws_msk_iam_session_token,
120
123
  sasl_oauth_token_provider: sasl_oauth_token_provider,
121
124
  logger: @logger
122
125
  )
@@ -127,12 +127,7 @@ module Kafka
127
127
  @logger.debug "Opening connection to #{@host}:#{@port} with client id #{@client_id}..."
128
128
 
129
129
  if @ssl_context
130
- @socket = SSLSocketWithTimeout.new(@host,
131
- @port,
132
- connect_timeout: @connect_timeout,
133
- timeout: @socket_timeout,
134
- ssl_context: @ssl_context,
135
- logger: @logger)
130
+ @socket = SSLSocketWithTimeout.new(@host, @port, connect_timeout: @connect_timeout, timeout: @socket_timeout, ssl_context: @ssl_context)
136
131
  else
137
132
  @socket = SocketWithTimeout.new(@host, @port, connect_timeout: @connect_timeout, timeout: @socket_timeout)
138
133
  end
@@ -9,12 +9,13 @@ module Kafka
9
9
  class AwsMskIam
10
10
  AWS_MSK_IAM = "AWS_MSK_IAM"
11
11
 
12
- def initialize(aws_region:, access_key_id:, secret_key_id:, logger:)
12
+ def initialize(aws_region:, access_key_id:, secret_key_id:, session_token: nil,logger:)
13
13
  @semaphore = Mutex.new
14
14
 
15
15
  @aws_region = aws_region
16
16
  @access_key_id = access_key_id
17
17
  @secret_key_id = secret_key_id
18
+ @session_token = session_token
18
19
  @logger = TaggedLogger.new(logger)
19
20
  end
20
21
 
@@ -71,6 +72,7 @@ module Kafka
71
72
  'x-amz-date': time_now.strftime("%Y%m%dT%H%M%SZ"),
72
73
  'x-amz-signedheaders': "host",
73
74
  'x-amz-expires': "900",
75
+ 'x-amz-security-token': @session_token,
74
76
  'x-amz-signature': signature(host: host, time_now: time_now)
75
77
  }.to_json
76
78
  end
@@ -91,6 +93,7 @@ module Kafka
91
93
  "X-Amz-Credential" => @access_key_id + "/" + time_now.strftime("%Y%m%d") + "/" + @aws_region + "/kafka-cluster/aws4_request",
92
94
  "X-Amz-Date" => time_now.strftime("%Y%m%dT%H%M%SZ"),
93
95
  "X-Amz-Expires" => "900",
96
+ "X-Amz-Security-Token" => @session_token,
94
97
  "X-Amz-SignedHeaders" => "host"
95
98
  )
96
99
  end
@@ -14,8 +14,8 @@ module Kafka
14
14
  sasl_oauth_token_provider:,
15
15
  sasl_aws_msk_iam_access_key_id:,
16
16
  sasl_aws_msk_iam_secret_key_id:,
17
- sasl_aws_msk_iam_aws_region:
18
- )
17
+ sasl_aws_msk_iam_aws_region:,
18
+ sasl_aws_msk_iam_session_token: nil)
19
19
  @logger = TaggedLogger.new(logger)
20
20
 
21
21
  @plain = Sasl::Plain.new(
@@ -42,6 +42,7 @@ module Kafka
42
42
  access_key_id: sasl_aws_msk_iam_access_key_id,
43
43
  secret_key_id: sasl_aws_msk_iam_secret_key_id,
44
44
  aws_region: sasl_aws_msk_iam_aws_region,
45
+ session_token: sasl_aws_msk_iam_session_token,
45
46
  logger: @logger,
46
47
  )
47
48
 
@@ -21,13 +21,12 @@ module Kafka
21
21
  # @param timeout [Integer] the read and write timeout, in seconds.
22
22
  # @param ssl_context [OpenSSL::SSL::SSLContext] which SSLContext the ssl connection should use
23
23
  # @raise [Errno::ETIMEDOUT] if the timeout is exceeded.
24
- def initialize(host, port, connect_timeout: nil, timeout: nil, ssl_context:, logger: nil)
24
+ def initialize(host, port, connect_timeout: nil, timeout: nil, ssl_context:)
25
25
  addr = Socket.getaddrinfo(host, nil)
26
26
  sockaddr = Socket.pack_sockaddr_in(port, addr[0][3])
27
27
 
28
28
  @connect_timeout = connect_timeout
29
29
  @timeout = timeout
30
- @logger = logger
31
30
 
32
31
  @tcp_socket = Socket.new(Socket.const_get(addr[0][0]), Socket::SOCK_STREAM, 0)
33
32
  @tcp_socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
@@ -94,7 +93,6 @@ module Kafka
94
93
  def read(num_bytes)
95
94
  buffer = String.new
96
95
 
97
- @logger.debug "Reading #{num_bytes} bytes from #{@ssl_socket}"
98
96
  until buffer.length >= num_bytes
99
97
  begin
100
98
  # Unlike plain TCP sockets, SSL sockets don't support IO.select
@@ -103,8 +101,6 @@ module Kafka
103
101
  # catch exceptions from read_nonblock and gradually build up
104
102
  # our read buffer.
105
103
  buffer << @ssl_socket.read_nonblock(num_bytes - buffer.length)
106
-
107
- @logger.debug "Bytes read: #{buffer.length}"
108
104
  rescue IO::WaitReadable
109
105
  if select_with_timeout(@ssl_socket, :read)
110
106
  retry
data/lib/kafka/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Kafka
4
- VERSION = "1.4.1"
4
+ VERSION = "1.4.4"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-kafka-aws-iam
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Schierbeck