Summary
Permission classes used by the now removed Security Manager are deprecated for removal including NetPermission, NetworkPermission, URLPermission. The URL::getPermission method serves little purpose and is also deprecated for removal.
Note that SocketPermission is not deprecated at this time, due to a dependency from java.security.CodeSource.
Deprecation of SocketPermission will be the object of a future RFE/CSR (JDK-8356557).
Problem
Now that JEP 486 has been integrated and the Security Manager is permanently disabled, the following permission classes in the core libraries are no longer useful: NetPermission, NetworkPermission, URLPermission. Some public subclasses of URLConnection are overriding the URLConnection::getPermission method and are specified to return instances of the deprecated permission classes. As such, the URLConnection::getPermission method should also be deprecated for removal in URLConnection and its subclasses.
Solution
The following classes in the public API are deprecated for removal:
java.net.NetPermission,jdk.net.NetworkPermission,java.net.URLPermission
The following methods in the public API are deprecated for removal:
java.net.URLConnection::getPermissionjava.net.HttpURLConnection::getPermission
Specification
For the classes NetPermission, NetworkPermission, URLPermission, each class adds the annotation indicating the deprecation for removal.
@Deprecated(since = "25", forRemoval = true)
The '@apiNote' in each class is changed to '@deprecated' so that the javadoc for each class includes the text:
Deprecated, for removal: This API element is subject to removal in a future version.
The existing text describing the deprecation is retained:
This permission cannot be used for controlling access to resources as the Security Manager is no longer supported.
For URLConnection::getPermission and HttpURLConnection::getPermission, each method adds the annotation indicating the deprecation for removal:
@Deprecated(since = "25", forRemoval = true)
In addition an @deprecated tag is added to the API documentation of the methods:
For URLConnection::getPermission:
/**
* [...]
* @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 {
For HttpURLConnection::getPermission:
/**
* [...]
* @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 {
- csr of
-
JDK-8353642 Deprecate URL::getPermission method and networking permission classes for removal
-
- Resolved
-