1303 Commits

Author SHA1 Message Date
HoneyryderChuck
e1d305b4d9 adding expect and compression plugins by default to the aws_sigv4 plugin
It's expected that this endpoint will be used i most cases for file
uploads, so both plugins will be important to improve throughput and
auth-fail-fast scenarios
2021-02-03 12:52:55 +00:00
HoneyryderChuck
d93de82639 do not assume that kwargs work as hash merges in older rubies 2021-02-03 12:52:22 +00:00
HoneyryderChuck
2875e81d16 testing against patched openssl version (and sending all artifacts to coverage job in CI) 2021-02-02 19:42:43 +00:00
HoneyryderChuck
5e31836ac2 changing the API so that a credentials object can be passed to sigv4
this allows the aws-sdk plugin to pass a wrapped Aws::Credentials
downstream, which provides the username/password vars. this is
important, as some of the strategies, such as the web identity token,
also revalidate these parameters.
2021-02-02 18:33:24 +00:00
HoneyryderChuck
ae1060157a changing the name of the plugin to aws_sdk_authentication, removing depenndency on s3 gem (only aws-sdk-core) 2021-02-02 18:33:24 +00:00
HoneyryderChuck
463dad46cb added the aws signature on top of the aws-sigv4 plugin, with support for using aws-sdk-core ready-made config 2021-02-02 18:33:24 +00:00
HoneyryderChuck
755b895b08 added initial aws sigv4 functional test 2021-02-02 18:33:24 +00:00
HoneyryderChuck
c588614c2c adding localstack to mimmick local aws cloud 2021-02-02 18:33:24 +00:00
HoneyryderChuck
48051d37c0 adding initial implementation of sigv4 request signing, which passed the aws-sdk-sigv4 tests 2021-02-02 18:33:24 +00:00
HoneyryderChuck
db036aaefa protocol: passing protocol specific headers as a request callback 2021-02-02 18:33:24 +00:00
HoneyryderChuck
f415d1b66b added tests for aws sigv4 2021-02-02 18:33:24 +00:00
HoneyryderChuck
a1942d5a6a Merge branch 'issue-100' into 'master'
FFI-base TLS stack for JRuby to enable HTTP/2

Closes #100

See merge request honeyryderchuck/httpx!117
2021-02-02 17:55:49 +00:00
HoneyryderChuck
550fc82b1a adding coverage innfo of ruby 3 2021-02-02 17:33:41 +00:00
HoneyryderChuck
6d3312bffe group ci tasks by name 2021-02-02 15:49:25 +00:00
HoneyryderChuck
e334bf891b as per https://github.com/msgpack/msgpack-ruby/issues/205 , restrict 1.4 to ruby >= 2.4 2021-02-02 15:40:22 +00:00
HoneyryderChuck
17dc61402b removing rubocop's pin to master (a bugfix has been released) 2021-02-02 15:28:07 +00:00
HoneyryderChuck
fa81dcbb73 ci: change dependencies to needs 2021-02-02 15:05:49 +00:00
HoneyryderChuck
065bfc48dc do not rely on deflater being initialized at this point 2021-01-31 16:19:49 +00:00
HoneyryderChuck
838f9a3e11 added ruby-tls license to the ffi-based files 2021-01-31 16:07:42 +00:00
HoneyryderChuck
58a1991f10 ignore the ffi-tls stack from coverage
Given that it was based on ruby-tls, there's a lot of server-specific
code paths which will never be covered. So it's not going to be dealt
with, until it has to.
2021-01-31 15:57:54 +00:00
HoneyryderChuck
2866b78572 error message for sni is actually different, and I'm not sure how wasn't this being skipped 2021-01-31 15:51:34 +00:00
HoneyryderChuck
63f2026c1a disabling integrations for jruby 2021-01-31 15:51:34 +00:00
HoneyryderChuck
e253a70270 test bad certs errors with badssl.com instead 2021-01-31 15:51:34 +00:00
HoneyryderChuck
574a478cc8 changing indentation, registering TLS class 2021-01-31 15:51:34 +00:00
HoneyryderChuck
2749763d8c relaxed constraints on verify callback 2021-01-31 15:51:34 +00:00
HoneyryderChuck
f7600d39d9 installing a 2020 version of openssl 2021-01-31 15:51:34 +00:00
HoneyryderChuck
5cda82cf95 updating jruby docker image 2021-01-31 15:51:34 +00:00
HoneyryderChuck
2ecfde95d8 fixing cerfificate hostname validation callback 2021-01-31 15:51:34 +00:00
HoneyryderChuck
0b7dbb8cfa alpn refactoring 2021-01-31 15:51:34 +00:00
HoneyryderChuck
87b9a6c49e moving away from the single-file ruby-tls, breaking down into components 2021-01-31 15:51:34 +00:00
HoneyryderChuck
507e6f6674 exposing certificate verification errors upstream, openssl style 2021-01-31 15:51:34 +00:00
HoneyryderChuck
da21b4a342 updated verify certs callback, inorder only to verify the hostname when dealing with the leaf certificate 2021-01-31 15:51:34 +00:00
HoneyryderChuck
384d273715 new ssl option: :hostname -> the SNI hostname used in the TLS handshake 2021-01-31 15:51:34 +00:00
HoneyryderChuck
c5e3bda2d3 passing io doesn't work for ruby-tls 2021-01-31 15:51:33 +00:00
HoneyryderChuck
f1f85ecfc7 maintaining own fork of ruby-tls
The ruby-tls gem hasn't received an update in 3 years, and haven't
actioned on issues that old, which leads me to believe it was abandoned.
Therefore, I now maintain this fork, and this allows me to quickly
identify issues.

The flow within the IO wrapper has been dealt with as well
2021-01-31 15:51:33 +00:00
HoneyryderChuck
61afd85654 install libssl-dev in CI 2021-01-30 23:19:02 +00:00
HoneyryderChuck
f423ea69cb IO wrapper using the ruby-tls handler 2021-01-30 23:19:02 +00:00
HoneyryderChuck
fd9fc7ccf3 added ruby-tls for jruby 2021-01-30 23:19:02 +00:00
HoneyryderChuck
4aafa782e9 doc was somehow missing 2021-01-30 17:25:46 +00:00
HoneyryderChuck
037a435163 bumped to 0.11.1 v0.11.1 2021-01-30 17:17:16 +00:00
HoneyryderChuck
b63e91b165 forgot that integrations tests do not run in parallel 2021-01-30 16:26:19 +00:00
HoneyryderChuck
7221a61383 fixing jruby CI pipelinne 2021-01-30 16:13:55 +00:00
HoneyryderChuck
0ce0a0f092 Merge branch 'issue-112' into 'master'
fixing decompression issue when last DATA frame is empty

Closes #112

See merge request honeyryderchuck/httpx!116
2021-01-30 15:40:56 +00:00
HoneyryderChuck
d645ac8596 added quick fixes to make http tests run with truffleruby, until the patches are released 2021-01-30 15:31:03 +00:00
HoneyryderChuck
5158cce23f do not install msgpack version which fails to run under ruby 2.1 2021-01-30 15:31:03 +00:00
HoneyryderChuck
738875b5aa pinning runocop to master branch (there was a bug in the evalwithlocation cop) 2021-01-30 15:31:03 +00:00
HoneyryderChuck
e2b4cc0938 updating test TLS certs 2021-01-30 15:31:03 +00:00
HoneyryderChuck
129bcf1871 fixing decompression issue when last DATA frame is empty
An error arose in decompressing a GZIP body from an HTTP/2 response,
where the second-to-last DATA frame actually sent the last meaningful
data chunk, and the server emitted an additional empty frame with
`end_stream` flag.

This error was introduced in the transition to ruby 3 and RBS
refactorings, when the gzip inflater closes automatically once all the
advertised (in "content-length" header) bytes are successfully
decompressed. In the case described above, the empty chunk still dives
into the decompressor and passed to the now closed ZLib::Stream, which
triggeres an exception.

The fix is to halt decompression early in the chain. Response#write
already knows how to deal with empty frames, so the control should be
passed there.

Fixes #112
2021-01-29 18:09:11 +00:00
HoneyryderChuck
1368ed2df7 Merge branch 'fix-formdata' into 'master'
Fix formdata

See merge request honeyryderchuck/httpx!115
v0.11.0
2021-01-14 16:15:43 +00:00
HoneyryderChuck
af8539a7a7 multipart form: skip parts where value is nil 2021-01-14 16:07:11 +00:00