RFR: 8209137: Add ability to bind to specific local address to HTTP client [v9]
Daniel Fuchs
dfuchs at openjdk.java.net
Wed Feb 2 10:53:11 UTC 2022
On Wed, 2 Feb 2022 06:18:39 GMT, Jaikiran Pai <jpai at openjdk.org> wrote:
>> This change proposes to implement the enhancement noted in https://bugs.openjdk.java.net/browse/JDK-8209137.
>>
>> The change introduces a new API to allow applications to build a `java.net.http.HTTPClient` configured with a specific local address that will be used while creating `Socket`(s) for connections.
>
> Jaikiran Pai has updated the pull request incrementally with one additional commit since the last revision:
>
> minor - rename variable in test
src/java.base/share/lib/security/default.policy line 25:
> 23: permission java.net.SocketPermission "*","connect,resolve";
> 24: // required if the HTTPClient is configured to use a local bind address
> 25: permission java.net.SocketPermission "localhost:*","listen,resolve";
Acked: I see that binding a `SocketChannel` will call `SecurityManager::checkListen`.
I'd have to double check with `SocketPermission` to verify `"localhost:*"` covers all the cases (that is - that it is sufficient to bind on any local interface)
src/java.net.http/share/classes/java/net/http/HttpClient.java line 376:
> 374: * correct {@code localAddr} is passed. Failure to do so can result in
> 375: * requests sent through the {@code HTTPClient} to fail.
> 376: *
`{@code HTTPClient}` should probably `{@code HttpClient}` since that's how the class is named.
test/jdk/java/net/httpclient/HttpClientLocalAddrTest.java line 73:
> 71: * -Djdk.internal.httpclient.debug=true
> 72: * HttpClientLocalAddrTest
> 73: *
Thanks for running with SecurityManager too.
-------------
PR: https://git.openjdk.java.net/jdk/pull/6690
More information about the net-dev
mailing list