Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP Proxy TODOs #7285

Closed
wants to merge 593 commits into from
Closed

Conversation

jbescos
Copy link
Member

@jbescos jbescos commented Aug 1, 2023

#7143

  • Support it in HTTP 2
  • Support Proxy authentication
  • Support SOCKS ??
  • Some proxies respond with HTTP 1.0 protocol and Http1StatusParser will fail
  • HTTP CONNECT should specify the host:port of the remote (not the proxy)
    In my opinion, it makes no sense because the header HOST is mandatory and it contains the remote host:port, but you can try it by yourself configuring a proxy in your browser. For example when you visit youtube you will see the next:
CONNECT www.youtube.com:443 HTTP/1.1
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:108.0) Gecko/20100101 Firefox/108.0
Proxy-Connection: keep-alive
Connection: keep-alive
Host: www.youtube.com:443

Some proxies could not work properly if the CONNECT is not set correctly.

Captain1653 and others added 30 commits February 20, 2023 17:24
* Nima Quickstart Archetype
Signed-off-by: tvallin <thibault.vallin@oracle.com>
* Initial SSE prototype.

* Added one more test.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

* Moved SSE prototype to new package. Updated and moved tests to corresponding location.

* Restored changes to webserver package.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

* Fixed copyright and checkstyle problems.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

* Integration with media types and MediaTypeSupport. Each SSE event can be given a different media type for serialization. Additional testing.

* Updated prototype to use a Sink SPI. Tests changed.

* Copyright and checkstyle.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

* Basic handling for sink events in ServerResponseBase class. Use single class to implement SseSink.

* Use the event consumer to serialize event data.

* Make Http1ServerResponse private again.

* Improved handling of content negotiation. Small tweak to SPI to access request information.

* Basic support for SSE event comment/id. New tests.

* New SPI for handling sources in WebClient. Basic implementation for SSE. Lots of refactoring and a new test.

* Improved client SSE stream parser with support for comments, events, IDs, etc. Fixed pom problem.

* Use try-with-resources to close reader.

* Renamed SSE common module. Incorporated additional feedback from the draft review.

* Use wildcards in SPI types. Renamed SourceHandler to SourceHandlerProvider.

* Fixed javadoc.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

* Use equals to compare GenericType and make SseSource a functional interface. New test.

* Support for media context and media types in SSE sources and events. A few more tests.

* Some cleanup of SseEvent class and an additional test class that verify unexpected conditions.

* POM cleanup.

* Removed comment.

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>

---------

Signed-off-by: Santiago Pericasgeertsen <santiago.pericasgeertsen@oracle.com>
* new files for nima

* update sitegen

* add files

* changed UC

* updated i in Nima

* remove accent i

* added openapi

* updated sitegen.yaml with openapi dirs

* added openapi images

* copyright fixes

* updated copyright

* added new lines to end

* updated files for Tim

* updates for openapi cors copyright
…very thread it creates. This is required by our Arquillian integration code and generally by MP config. (helidon-io#6322)
* Improve ClientRequestImpl

Change includes the following:
1. Configurable value for mediaContext, maxHeaderSize, maxStatusLength, sendExpect100Continue, and validateHeaders
2. Optimize chunk request in ClientConnectionOutputStream, i.e. don't chunk if data is small
3. Send expect-100 (configurable via sendExpect100Continue) to verify host responsiveness before sending chunk request (currently defaults to false or will not send)
4. Replace ConcurrentLinkedDeque in ClientConnectionOutputStream.getConnection() with LinkedBlockingDeque, so it can be optionally bounded
* Update bookstore test for 4.0 and add Nima app.
Signed-off-by: Laird Nelson <laird.nelson@oracle.com>
Signed-off-by: Laird Nelson <laird.nelson@oracle.com>
Signed-off-by: Laird Nelson <laird.nelson@oracle.com>
…idon-io#6358)

* Complete shortcut methods for all HTTP methods for the WebClient

* Convert ClientRequestImplTests to use shortcut methods for HTTP methods they are using.
…cript (helidon-io#6369)

* Make sure copyrights are updated in all poms. Also fix org in a script
trentjeff and others added 28 commits July 13, 2023 10:06
Signed-off-by: David Kral <david.k.kral@oracle.com>
Signed-off-by: tvallin <thibault.vallin@oracle.com>
* Issue helidon-io#6991 - Blocking DB Client: API, JDBC and Health

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>

* Issue helidon-io#6991 - Blocking DB Client: Interceptors API and initial implementation in JDBC

Signed-off-by: Tomas Kraus <tomas.kraus@oracle.com>

* Issue helidon-io#6991 - Blocking DB Client: Tracing support

Signed-off-by: Tomas Kraus <tomas.kraus@oracle.com>

* Issue helidon-io#6991 - Blocking DB Client: Common metrics module

Signed-off-by: Tomas Kraus <tomas.kraus@oracle.com>

* - Fold dbclient-common into dbclient
- Implement dbclient-mongodb
- Re-work indexed/named parameters
- Convergence between DbClientContext and DbClientExecuteContext
- Generalized intercepted executions
- Removed package-private factory methods in favor of constructors
- Added javadocs
- Copyright and checkstyle fixes

* add missing newline

* - Fix LRA
- Fix examples/employee-app
- Fix examples/dbclient

* - Fix spotbugs errors
- Add static factory to MongoDbClientBuilder

* - Add metrics-jdbc
- Add jsonp
- Remove change in reactive/dbclient/jdbc

* Add dbclient tests

* - Rename io.helidon.dbclient.DbMapperProvider to io.helidon.dbclient.DbMapperProviderImpl to avoid confusion
- Fix module-info to have uses io.helidon.dbclient.spi.DbMapperProvider
- Fix connection close for transaction statements

* integration tests (app)

* - Fix copyright years
- Consistent naming (DB Client -> Database Client)
- Minize occurrences of the term "Pokemon" and use {@code Pokemon} when required.

* Testing work.

* Update maven-javadoc-plugin to 3.5.0 to get passed https://issues.apache.org/jira/browse/MJAVADOC-677

* Rebased on main, fixes to dbclient metrics

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

---------

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>
Signed-off-by: Tomas Kraus <tomas.kraus@oracle.com>
Signed-off-by: Tomas Langer <tomas.langer@oracle.com>
Co-authored-by: Romain Grecourt <romain.grecourt@oracle.com>
Co-authored-by: Tomas Langer <tomas.langer@oracle.com>
* Update CHANGELOG to prep for 4.0.0-M1 release
* Remove reactive modules from the project
Fix production code to compile (not tests)

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* - Build everything, copyright and checkstyle passing.
- Fix "some" occurrences of 'io.helidon.reactive'

* Fix a few examples:
- examples/openapi (excluded one test)
- examples/security/basic-auth-with-static-content
- examples/security/webserver-digest-auth

* - Fixed examples/security/webserver-digest-auth
- Fixed a bug in SecurityFeature where the path for the security env was a toString of RoutedPath

* Fix mutual TLS tests (and bugs in implementation)

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Fixed security integration with Jersey and tests.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Fixed Microstream health

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Fixed checkstyle

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* - Fix examples/security/google-login
- Fix examples/security/outbound-override

* Fix examples/todo-app

* - Fix examples/webserver/basics
- Fix a bug with error handlers not return a response
- Fix a bug in Handler wrapper with biconsumer of response (response should be send by the biconsumer)

* Fix ErrorHandlersTest.testHandler

* First set of integration tests fixed.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* - Fix examples/webserver/comment-aas
- Fix examples/webserver/tutorial
- Update ErrorHandlers to invoke response.commit before checking response.isSent()

* - Add helidon-nima-testing-junit5-websocket to BOM
- Fix examples/webserver/websocket
- Fix examples/webserver/tls
- Fix TlsTest in tests/integration/webclient
- Temp fix for tls in Http1ClientBuilder

* Fix examples/webserver/mutual-tls

* - Fix examples/webserver/fault-tolerance
- Fix examples/webclient/standalone
- Removed examples/webserver/threadpool

* Fix examples/cors

* - Fixes and disabled tests in examples/metrics/exemplar
- Fixes and disabled tests in examples/metrics/filtering/se
- Fixes and disabled tests in examples/metrics/kpi
- Fixes and disabled tests in examples/metrics/http-status-count-se

* - Fix FormParamsSupport (writer was mutating param value list_
- Fix FormParamsSupport (regex was wrong and param had leading &)
- Fixed FormTest (tests/integration/webclient)

* - Fix TracingPropagationTest (tests/integration/webclient)
- Fix TracingTest (tests/integration/webclient)
- Fix SecurityTest (tests/integration/webclient)

* Second set of integration tests fixed.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* update examples/webserver/mutual-tls to not hard-code ports in tests

* Last set of integration tests fixed.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Tracing TCK fix

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* LRA TCK skipping tests

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Add opens for MP security

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Disabled test failing on pipeline.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

---------

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>
Co-authored-by: Romain Grecourt <romain.grecourt@oracle.com>
* 7020 GRPC outbound flow-control
* Chunking fix
* Client fix
Notes:
1. Update mocking test to include new method for the Monitoring interface
2. Update mocking test of oci mp archetype to include the new method for the Monitoring interface
3. Tested successfully against OCI Logging and Monitoring services using oci-mp archetype generated from the cli tool and this change
* Java version and Java API changes

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Remove --enable-preview from everywhere

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Byte buddy support for Java 21 EA

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Use random port even when setup sets explicit one in tests

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Update spotbugs plugin to work with Java 21

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Fix JPA issues, rollback to original JPA version.

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Skip Jlink tests - need new version of build tools

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Script fix

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>

* Use a deterministic version  for setup-java: v1.3.1 instead of v1

---------

Signed-off-by: Tomas Langer <tomas.langer@oracle.com>
Co-authored-by: Romain Grecourt <romain.grecourt@oracle.com>
…tch blocks, so the transaction is always either committed or rolled-back

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>
Signed-off-by: tvallin <thibault.vallin@oracle.com>
* Issue helidon-io#6928 - 1st set of updates.

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>

* Fixed copyright headers after plugin update.

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>

---------

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>
…nk (helidon-io#7246)

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>
* generate module-info

Signed-off-by: tvallin <thibault.vallin@oracle.com>

* Review changes

Signed-off-by: tvallin <thibault.vallin@oracle.com>

---------

Signed-off-by: tvallin <thibault.vallin@oracle.com>
Signed-off-by: tvallin <thibault.vallin@oracle.com>
* Issue helidon-io#6649 - Add configuration support for EXECUTOR_SHUTDOWN_MILLIS.
Based on helidon-io#6822 from martinKindall.

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>

* Review notes applied.

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>

---------

Signed-off-by: Tomáš Kraus <tomas.kraus@oracle.com>
* Add suppressions for Jackson and graal-sdk
* Update owasp dep check plugin version
* WebClient, HTTP/1.1 webclient aligned
* HTTP/2 webclient alignment (in progress)
* Fix for helidon-io#7223
* Use UriInfo in WebClient, combined query and fragment with it
* Cookie support for webclient.
* WebSocket now upgrades through API
* HTTP/2 with services.
* Typed client response fixes (so it does not need to be autocloseable)
* Fix client entity reading, when chunked received over the network is bigger than buffer used to read it.
* Fixed error of not draining request when continue was already sent.
* Fix possible mutation of internal state of HeaderValue that is shared.

Co-authored-by: Santiago Pericas-Geertsen <santiago.pericasgeertsen@oracle.com>
Co-authored-by: Tomas Langer <tomas.langer@oracle.com>
Signed-off-by: Jorge Bescos Gascon <jorge.bescos.gascon@oracle.com>
@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Required At least one contributor does not have an approved Oracle Contributor Agreement. label Aug 1, 2023
@jbescos jbescos closed this Aug 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
OCA Required At least one contributor does not have an approved Oracle Contributor Agreement.
Projects
None yet
Development

Successfully merging this pull request may close these issues.