8266459: Implement JEP 411: Deprecate the Security Manager for Removal

Co-authored-by: Sean Mullan <mullan@openjdk.org>
Co-authored-by: Lance Andersen <lancea@openjdk.org>
Co-authored-by: Weijun Wang <weijun@openjdk.org>
Reviewed-by: erikj, darcy, chegar, naoto, joehw, alanb, mchung, kcr, prr, lancea
This commit is contained in:
Weijun Wang 2021-06-02 11:57:31 +00:00
parent 19450b9951
commit 6765f90250
826 changed files with 2734 additions and 757 deletions

View file

@ -84,6 +84,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
private final URLClassPath ucp;
/* The context to be used when loading classes and resources */
@SuppressWarnings("removal")
private final AccessControlContext acc;
/**
@ -108,6 +109,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
@SuppressWarnings("removal")
public URLClassLoader(URL[] urls, ClassLoader parent) {
super(parent);
this.acc = AccessController.getContext();
@ -115,7 +117,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
}
URLClassLoader(String name, URL[] urls, ClassLoader parent,
AccessControlContext acc) {
@SuppressWarnings("removal") AccessControlContext acc) {
super(name, parent);
this.acc = acc;
this.ucp = new URLClassPath(urls, acc);
@ -143,13 +145,14 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
@SuppressWarnings("removal")
public URLClassLoader(URL[] urls) {
super();
this.acc = AccessController.getContext();
this.ucp = new URLClassPath(urls, acc);
}
URLClassLoader(URL[] urls, AccessControlContext acc) {
URLClassLoader(URL[] urls, @SuppressWarnings("removal") AccessControlContext acc) {
super();
this.acc = acc;
this.ucp = new URLClassPath(urls, acc);
@ -177,6 +180,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* elements is {@code null}.
* @see SecurityManager#checkCreateClassLoader
*/
@SuppressWarnings("removal")
public URLClassLoader(URL[] urls, ClassLoader parent,
URLStreamHandlerFactory factory) {
super(parent);
@ -207,6 +211,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
*
* @since 9
*/
@SuppressWarnings("removal")
public URLClassLoader(String name,
URL[] urls,
ClassLoader parent) {
@ -237,6 +242,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
*
* @since 9
*/
@SuppressWarnings("removal")
public URLClassLoader(String name, URL[] urls, ClassLoader parent,
URLStreamHandlerFactory factory) {
super(name, parent);
@ -335,6 +341,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* @since 1.7
*/
public void close() throws IOException {
@SuppressWarnings("removal")
SecurityManager security = System.getSecurityManager();
if (security != null) {
security.checkPermission(new RuntimePermission("closeClassLoader"));
@ -404,6 +411,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* or if the loader is closed.
* @throws NullPointerException if {@code name} is {@code null}.
*/
@SuppressWarnings("removal")
protected Class<?> findClass(final String name)
throws ClassNotFoundException
{
@ -609,6 +617,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
/*
* The same restriction to finding classes applies to resources
*/
@SuppressWarnings("removal")
URL url = AccessController.doPrivileged(
new PrivilegedAction<>() {
public URL run() {
@ -641,6 +650,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
return true;
}
do {
@SuppressWarnings("removal")
URL u = AccessController.doPrivileged(
new PrivilegedAction<>() {
public URL run() {
@ -695,6 +705,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
* @throws NullPointerException if {@code codesource} is {@code null}.
* @return the permissions granted to the codesource
*/
@SuppressWarnings("removal")
protected PermissionCollection getPermissions(CodeSource codesource)
{
PermissionCollection perms = super.getPermissions(codesource);
@ -779,8 +790,10 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
public static URLClassLoader newInstance(final URL[] urls,
final ClassLoader parent) {
// Save the caller's context
@SuppressWarnings("removal")
final AccessControlContext acc = AccessController.getContext();
// Need a privileged block to create the class loader
@SuppressWarnings("removal")
URLClassLoader ucl = AccessController.doPrivileged(
new PrivilegedAction<>() {
public URLClassLoader run() {
@ -805,8 +818,10 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
*/
public static URLClassLoader newInstance(final URL[] urls) {
// Save the caller's context
@SuppressWarnings("removal")
final AccessControlContext acc = AccessController.getContext();
// Need a privileged block to create the class loader
@SuppressWarnings("removal")
URLClassLoader ucl = AccessController.doPrivileged(
new PrivilegedAction<>() {
public URLClassLoader run() {
@ -828,11 +843,11 @@ final class FactoryURLClassLoader extends URLClassLoader {
}
FactoryURLClassLoader(String name, URL[] urls, ClassLoader parent,
AccessControlContext acc) {
@SuppressWarnings("removal") AccessControlContext acc) {
super(name, urls, parent, acc);
}
FactoryURLClassLoader(URL[] urls, AccessControlContext acc) {
FactoryURLClassLoader(URL[] urls, @SuppressWarnings("removal") AccessControlContext acc) {
super(urls, acc);
}
@ -841,6 +856,7 @@ final class FactoryURLClassLoader extends URLClassLoader {
{
// First check if we have permission to access the package. This
// should go away once we've added support for exported packages.
@SuppressWarnings("removal")
SecurityManager sm = System.getSecurityManager();
if (sm != null) {
int i = name.lastIndexOf('.');