Use port 443 by default when TLS is enabled and no port is specified - #1339
Merged
Conversation
Motivation: `AbstractCentralDogmaBuilder.host(String)` always assumed the default port 36462 even when `useTls()` was enabled, so a client configured with TLS and no explicit port silently sent HTTPS requests to the cleartext port instead of 443. Modifications: - Defer default port resolution from `host(String)` to `hosts()` so that the result no longer depends on the order of `host()` and `useTls()` calls. A host added without a port is stored with a sentinel port and resolved to 443 if TLS is enabled, or 36462 otherwise. - Document the new default port in the Javadoc of `host(String)`, `useTls()` and `hosts()`, and in the Java client tutorial. Result: - A `CentralDogma` client built with `useTls()` and `host(host)` without a port number now connects to port 443 instead of 36462. Users who relied on serving TLS on port 36462 should specify the port explicitly.
📝 WalkthroughWalkthroughThe builder now defers default port selection for hosts without explicit ports until host resolution, selecting TLS port 443 when enabled. Tests cover host and URI cases, and documentation describes the TLS default. ChangesTLS port resolution
Estimated code review effort: 3 (Moderate) | ~20 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation:
AbstractCentralDogmaBuilder.host(String)always assumed the default port 36462 even whenuseTls()was enabled, so a client configured with TLS and no explicit port silently sent HTTPS requests to the cleartext port instead of 443.Modifications:
host(String)tohosts()so that the result no longer depends on the order ofhost()anduseTls()calls. A host added without a port is stored with a sentinel port and resolved to 443 if TLS is enabled, or 36462 otherwise.Result:
CentralDogmaclient built withuseTls()andhost(host)without a port number now connects to port 443 instead of 36462..host("example.com", 36462).