RFR: 8022445: fix RMISocketFactory example to avoid using localhost
Chris Hegarty
chris.hegarty at oracle.com
Thu Aug 22 08:41:40 UTC 2013
Stuart,
I think I would have picked the more common IPv4 loopback address,
127.0.0.1, but what you have is fine.
-Chris.
On 08/22/2013 01:58 AM, Stuart Marks wrote:
> Hi all,
>
> Please review this small documentation change to the example I added to
> RMISocketFactory a couple weeks ago [1]. This change fixes a problem
> that Bernd Eckenfels pointed out [2] where the interface returned by
> getLoopbackAddress() might not match the interface that "localhost"
> resolves to.
>
> Patch appended below.
>
> Thanks,
>
> s'marks
>
> [1] http://hg.openjdk.java.net/jdk8/tl/jdk/rev/31759750ff63
>
> [2]
> http://mail.openjdk.java.net/pipermail/security-dev/2013-August/008346.html
>
>
>
> # HG changeset patch
> # User smarks
> # Date 1377131500 25200
> # Node ID fac7907d8c0b4358b9994b04562b722f533db3ac
> # Parent 1ccc7bbee0bb4d4d0f472374f2cc544cb07d1336
> 8022445: fix RMISocketFactory example to avoid using localhost
> Reviewed-by: XXX
>
> diff -r 1ccc7bbee0bb -r fac7907d8c0b
> src/share/classes/java/rmi/server/RMISocketFactory.java
> --- a/src/share/classes/java/rmi/server/RMISocketFactory.java Tue Aug
> 20 11:15:08 2013 +0200
> +++ b/src/share/classes/java/rmi/server/RMISocketFactory.java Wed Aug
> 21 17:31:40 2013 -0700
> @@ -50,13 +50,13 @@
> * @implNote
> * <p>You can use the {@code RMISocketFactory} class to create a
> server socket that
> * is bound to a specific address, restricting the origin of requests.
> For example,
> - * the following code implements a socket factory that binds server
> sockets to the
> + * the following code implements a socket factory that binds server
> sockets to the IPv6
> * loopback address. This restricts RMI to processing requests only
> from the local host.
> *
> * <pre>{@code
> * class LoopbackSocketFactory extends RMISocketFactory {
> * public ServerSocket createServerSocket(int port) throws
> IOException {
> - * return new ServerSocket(port, 5,
> InetAddress.getLoopbackAddress());
> + * return new ServerSocket(port, 5,
> InetAddress.getByName("::1"));
> * }
> *
> * public Socket createSocket(String host, int port) throws
> IOException {
> @@ -72,8 +72,8 @@
> * }</pre>
> *
> * Set the {@code java.rmi.server.hostname} system property
> - * to a host name (typically {@code localhost}) that resolves to the
> loopback
> - * interface to ensure that the generated stubs use the right network
> interface.
> + * to {@code ::1} to ensure that the generated stubs connect to the right
> + * network interface.
> *
> * @author Ann Wollrath
> * @author Peter Jones
More information about the core-libs-dev
mailing list