首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许连接到端口80的java.policy

允许连接到端口80的java.policy
EN

Stack Overflow用户
提问于 2021-06-02 07:26:48
回答 1查看 71关注 0票数 0

我在/home/user/.java.policy中添加了以下内容

代码语言:javascript
复制
// https://docs.oracle.com/javase/8/docs/technotes/guides/security/PolicyFiles.html
grant {
    permission java.net.SocketPermission "169.254.170.2:80", "connect"; 
};

据我所知,这应该允许我从那个URL中得到。

这是我的密码:

代码语言:javascript
复制
    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);
        }
    }

最后,我还是从对java.net.BindException: Permission denied的调用中得到一个url.openStream:

代码语言:javascript
复制
    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)

为了允许我向端口80发送请求,还有什么需要做的吗?我使用的是https://hub.docker.com/_/openjdk的Java15.0.2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-09 23:33:27

这是因为一个围绕java可执行文件的安全工具,而不是Java本身的任何问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67800682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档