I have added the following to /home/user/.java.policy
// https://docs.oracle.com/javase/8/docs/technotes/guides/security/PolicyFiles.html
grant {
permission java.net.SocketPermission "169.254.170.2:80", "connect";
};
As far as I can tell this should allow me to get from that URL.
This is my code:
URL url = new URL("http://169.254.170.2/v2/credentials/uuid");
try (BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream(), "UTF-8"))) {
for (String line; (line = reader.readLine()) != null;) {
logger.error(line);
}
}
I still end up getting a java.net.BindException: Permission denied
from the call to url.openStream:
2021-06-02T17:12:52.010+10:00 java.net.BindException: Permission denied
2021-06-02T17:12:52.011+10:00 at java.base/sun.nio.ch.Net.connect0(Native Method)
2021-06-02T17:12:52.011+10:00 at java.base/sun.nio.ch.Net.connect(Net.java:574)
2021-06-02T17:12:52.011+10:00 at java.base/sun.nio.ch.Net.connect(Net.java:563)
2021-06-02T17:12:52.011+10:00 at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:588)
2021-06-02T17:12:52.011+10:00 at java.base/java.net.Socket.connect(Socket.java:648)
2021-06-02T17:12:52.012+10:00 at java.base/java.net.Socket.connect(Socket.java:597)
2021-06-02T17:12:52.012+10:00 at java.base/sun.net.NetworkClient.doConnect(NetworkClient.java:182)
2021-06-02T17:12:52.012+10:00 at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:474)
2021-06-02T17:12:52.012+10:00 at java.base/sun.net.www.http.HttpClient.openServer(HttpClient.java:569)
2021-06-02T17:12:52.012+10:00 at java.base/sun.net.www.http.HttpClient.<init>(HttpClient.java:242)
2021-06-02T17:12:52.012+10:00 at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:341)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.http.HttpClient.New(HttpClient.java:362)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1261)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1194)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1082)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:1016)
2021-06-02T17:12:52.013+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1600)
2021-06-02T17:12:52.014+10:00 at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1528)
2021-06-02T17:12:52.014+10:00 at java.base/java.net.URL.openStream(URL.java:1167)
Is there something else that needs to be done to allow me to send a request to port 80? I'm using Java 15.0.2 from https://hub.docker.com/_/openjdk
It was due to a security tool wrapped around the java executable, not due to any issue with Java itself.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.