From 45dfc2c6d6d6b2b0749347b0150bb22d49f12767 Mon Sep 17 00:00:00 2001 From: Daniel Fuchs Date: Mon, 12 May 2025 16:49:42 +0000 Subject: [PATCH] 8353642: Deprecate URL::getPermission method and networking permission classes for removal Reviewed-by: djelinski, iris, mullan, michaelm --- .../share/classes/java/net/HttpURLConnection.java | 8 +++++++- src/java.base/share/classes/java/net/NetPermission.java | 5 +++-- src/java.base/share/classes/java/net/URLConnection.java | 7 ++++++- src/java.base/share/classes/java/net/URLPermission.java | 3 ++- .../sun/net/www/protocol/file/FileURLConnection.java | 2 ++ .../sun/net/www/protocol/ftp/FtpURLConnection.java | 4 +++- .../net/www/protocol/https/HttpsURLConnectionImpl.java | 5 ++++- .../sun/net/www/protocol/jar/JarURLConnection.java | 5 ++++- .../share/classes/sun/nio/ch/UnixDomainSockets.java | 6 +----- .../sun/net/www/protocol/file/UNCFileURLConnection.java | 3 ++- src/jdk.net/share/classes/jdk/net/NetworkPermission.java | 5 +++-- 11 files changed, 37 insertions(+), 16 deletions(-) diff --git a/src/java.base/share/classes/java/net/HttpURLConnection.java b/src/java.base/share/classes/java/net/HttpURLConnection.java index 20b9068e7f3..8ecbb98e7c6 100644 --- a/src/java.base/share/classes/java/net/HttpURLConnection.java +++ b/src/java.base/share/classes/java/net/HttpURLConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1996, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1996, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -606,7 +606,13 @@ public abstract class HttpURLConnection extends URLConnection { * @return a {@code SocketPermission} object representing the * permission necessary to connect to the destination * host and port. + * + * @deprecated + * Permissions can no longer be used for controlling access to resources + * as the Security Manager is no longer supported. */ + @Deprecated(since = "25", forRemoval = true) + @SuppressWarnings("removal") public Permission getPermission() throws IOException { int port = url.getPort(); port = port < 0 ? 80 : port; diff --git a/src/java.base/share/classes/java/net/NetPermission.java b/src/java.base/share/classes/java/net/NetPermission.java index 7c52ba5ae7c..d2a086e9c3a 100644 --- a/src/java.base/share/classes/java/net/NetPermission.java +++ b/src/java.base/share/classes/java/net/NetPermission.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ import java.security.*; * to signify a wildcard match. For example: "foo.*" and "*" signify a wildcard * match, while "*foo" and "a*b" do not. * - * @apiNote + * @deprecated * This permission cannot be used for controlling access to resources * as the Security Manager is no longer supported. * @@ -56,6 +56,7 @@ import java.security.*; * @since 1.2 */ +@Deprecated(since = "25", forRemoval = true) public final class NetPermission extends BasicPermission { @java.io.Serial private static final long serialVersionUID = -8343910153355041693L; diff --git a/src/java.base/share/classes/java/net/URLConnection.java b/src/java.base/share/classes/java/net/URLConnection.java index 585ab4fa15a..9bb9dec0458 100644 --- a/src/java.base/share/classes/java/net/URLConnection.java +++ b/src/java.base/share/classes/java/net/URLConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1995, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1995, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -822,7 +822,12 @@ public abstract class URLConnection { * @throws IOException if the computation of the permission * requires network or file I/O and an exception occurs while * computing it. + * + * @deprecated + * Permissions can no longer be used for controlling access to resources + * as the Security Manager is no longer supported. */ + @Deprecated(since = "25", forRemoval = true) public Permission getPermission() throws IOException { return SecurityConstants.ALL_PERMISSION; } diff --git a/src/java.base/share/classes/java/net/URLPermission.java b/src/java.base/share/classes/java/net/URLPermission.java index daf3e99a6a0..bf87cad8077 100644 --- a/src/java.base/share/classes/java/net/URLPermission.java +++ b/src/java.base/share/classes/java/net/URLPermission.java @@ -143,7 +143,7 @@ import java.util.Objects; * with initial letter of each word capitalized). Either list can contain a wild-card '*' * character which signifies all request methods or headers respectively. * - * @apiNote + * @deprecated * This permission cannot be used for controlling access to resources * as the Security Manager is no longer supported. * @@ -154,6 +154,7 @@ import java.util.Objects; * RFC 2732: Format for Literal IPv6 Addresses in URL's * @since 1.8 */ +@Deprecated(since = "25", forRemoval = true) public final class URLPermission extends Permission { @java.io.Serial diff --git a/src/java.base/share/classes/sun/net/www/protocol/file/FileURLConnection.java b/src/java.base/share/classes/sun/net/www/protocol/file/FileURLConnection.java index 98ff8709aa4..fc947f8977f 100644 --- a/src/java.base/share/classes/sun/net/www/protocol/file/FileURLConnection.java +++ b/src/java.base/share/classes/sun/net/www/protocol/file/FileURLConnection.java @@ -210,6 +210,8 @@ public class FileURLConnection extends URLConnection { /* since getOutputStream isn't supported, only read permission is * relevant */ + @Override + @Deprecated(since = "25", forRemoval = true) @SuppressWarnings("removal") public Permission getPermission() throws IOException { if (permission == null) { diff --git a/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java b/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java index 493fda1c1b3..be24f1133f2 100644 --- a/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java +++ b/src/java.base/share/classes/sun/net/www/protocol/ftp/FtpURLConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -569,6 +569,8 @@ public class FtpURLConnection extends URLConnection { * @return The {@code Permission} object. */ @Override + @Deprecated(since = "25", forRemoval = true) + @SuppressWarnings("removal") public Permission getPermission() { if (permission == null) { int urlport = url.getPort(); diff --git a/src/java.base/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java b/src/java.base/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java index 2096957d289..26c9e0188d1 100644 --- a/src/java.base/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java +++ b/src/java.base/share/classes/sun/net/www/protocol/https/HttpsURLConnectionImpl.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2001, 2023, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2001, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -355,6 +355,9 @@ public class HttpsURLConnectionImpl return delegate.getHeaderFieldDate(name, defaultValue); } + @Override + @Deprecated(since = "25", forRemoval = true) + @SuppressWarnings("removal") public Permission getPermission() throws IOException { return delegate.getPermission(); } diff --git a/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java b/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java index 85d36fe2320..3a346308f71 100644 --- a/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java +++ b/src/java.base/share/classes/sun/net/www/protocol/jar/JarURLConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1997, 2022, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1997, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -77,6 +77,9 @@ public class JarURLConnection extends java.net.JarURLConnection { return jarEntry; } + @Override + @Deprecated(since = "25", forRemoval = true) + @SuppressWarnings("removal") public Permission getPermission() throws IOException { return jarFileURLConnection.getPermission(); } diff --git a/src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java b/src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java index 128694cb52d..66c9fa40f2e 100644 --- a/src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java +++ b/src/java.base/share/classes/sun/nio/ch/UnixDomainSockets.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2020, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -28,7 +28,6 @@ package sun.nio.ch; import java.io.FileDescriptor; import java.io.IOException; import java.net.BindException; -import java.net.NetPermission; import java.net.SocketAddress; import java.net.UnixDomainSocketAddress; import java.nio.channels.UnsupportedAddressTypeException; @@ -52,9 +51,6 @@ class UnixDomainSockets { private static final String tempDir = UnixDomainSocketsUtil.getTempDir(); - private static final NetPermission accessUnixDomainSocket = - new NetPermission("accessUnixDomainSocket"); - static boolean isSupported() { return supported; } diff --git a/src/java.base/windows/classes/sun/net/www/protocol/file/UNCFileURLConnection.java b/src/java.base/windows/classes/sun/net/www/protocol/file/UNCFileURLConnection.java index d5a510d8f31..0a86d3942f3 100644 --- a/src/java.base/windows/classes/sun/net/www/protocol/file/UNCFileURLConnection.java +++ b/src/java.base/windows/classes/sun/net/www/protocol/file/UNCFileURLConnection.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2019, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -42,6 +42,7 @@ final class UNCFileURLConnection extends FileURLConnection { @Override @SuppressWarnings("removal") + @Deprecated(since = "25", forRemoval = true) public Permission getPermission() { Permission perm = permission; if (perm == null) { diff --git a/src/jdk.net/share/classes/jdk/net/NetworkPermission.java b/src/jdk.net/share/classes/jdk/net/NetworkPermission.java index 7aac1fb1120..c654f821e9d 100644 --- a/src/jdk.net/share/classes/jdk/net/NetworkPermission.java +++ b/src/jdk.net/share/classes/jdk/net/NetworkPermission.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2014, 2025, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -32,7 +32,7 @@ import java.security.BasicPermission; * defined in the jdk.net package. These permissions contain a target * name, but no actions list. Callers either possess the permission or not. * - * @apiNote + * @deprecated * This permission cannot be used for controlling access to resources * as the Security Manager is no longer supported. * @@ -41,6 +41,7 @@ import java.security.BasicPermission; * @since 1.8 */ +@Deprecated(since = "25", forRemoval = true) public final class NetworkPermission extends BasicPermission { private static final long serialVersionUID = -2012939586906722291L;