summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-01-14 21:29:29 +0100
committerSven Gothel <[email protected]>2023-01-14 21:29:29 +0100
commit1396c3ca6fc675dcf4bdea708c8a8c89d481e3b8 (patch)
treeaab2100371d332f86ffe2b86a906565fdb2576e2
parent8edb09f4851a713b0e9817b4d2f081e0de86eaf3 (diff)
Replace AccessController.doPrivileged() w/ SecurityUtil.doPrivileged()
-rw-r--r--src/java/com/jogamp/common/jvm/JNILibLoaderBase.java4
-rw-r--r--src/java/com/jogamp/common/net/GenericURLStreamHandlerFactory.java5
-rw-r--r--src/java/com/jogamp/common/nio/Buffers.java4
-rw-r--r--src/java/com/jogamp/common/os/NativeLibrary.java10
-rw-r--r--src/java/com/jogamp/common/os/Platform.java4
-rw-r--r--src/java/com/jogamp/common/util/IOUtil.java3
-rw-r--r--src/java/com/jogamp/common/util/IntIntHashMap.java5
-rw-r--r--src/java/com/jogamp/common/util/PropertyAccess.java2
-rw-r--r--src/java/com/jogamp/common/util/SecurityUtil.java27
-rw-r--r--src/java/com/jogamp/common/util/UnsafeUtil.java5
-rw-r--r--src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java5
-rw-r--r--src/java/jogamp/common/Debug.java4
-rw-r--r--src/java/jogamp/common/os/PlatformPropsImpl.java6
-rw-r--r--src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java12
14 files changed, 58 insertions, 38 deletions
diff --git a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
index eee65d8..7859d2e 100644
--- a/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
+++ b/src/java/com/jogamp/common/jvm/JNILibLoaderBase.java
@@ -44,7 +44,6 @@ import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.net.URISyntaxException;
import java.net.URL;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Arrays;
import java.util.HashSet;
@@ -56,6 +55,7 @@ import com.jogamp.common.net.Uri;
import com.jogamp.common.os.NativeLibrary;
import com.jogamp.common.util.JarUtil;
import com.jogamp.common.util.PropertyAccess;
+import com.jogamp.common.util.SecurityUtil;
import com.jogamp.common.util.cache.TempJarCache;
import jogamp.common.Debug;
@@ -512,7 +512,7 @@ public class JNILibLoaderBase {
final String sunAppletLauncherProperty = "sun.jnlp.applet.launcher";
final String sunAppletLauncherClassName = "org.jdesktop.applet.util.JNLPAppletLauncher";
- final Method loadLibraryMethod = AccessController.doPrivileged(new PrivilegedAction<Method>() {
+ final Method loadLibraryMethod = SecurityUtil.doPrivileged(new PrivilegedAction<Method>() {
@Override
public Method run() {
// FIXME: remove
diff --git a/src/java/com/jogamp/common/net/GenericURLStreamHandlerFactory.java b/src/java/com/jogamp/common/net/GenericURLStreamHandlerFactory.java
index 185142f..9b39657 100644
--- a/src/java/com/jogamp/common/net/GenericURLStreamHandlerFactory.java
+++ b/src/java/com/jogamp/common/net/GenericURLStreamHandlerFactory.java
@@ -3,11 +3,12 @@ package com.jogamp.common.net;
import java.net.URL;
import java.net.URLStreamHandler;
import java.net.URLStreamHandlerFactory;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.HashMap;
import java.util.Map;
+import com.jogamp.common.util.SecurityUtil;
+
public class GenericURLStreamHandlerFactory implements URLStreamHandlerFactory {
private static GenericURLStreamHandlerFactory factory = null;
@@ -48,7 +49,7 @@ public class GenericURLStreamHandlerFactory implements URLStreamHandlerFactory {
*/
public synchronized static GenericURLStreamHandlerFactory register() {
if(null == factory) {
- factory = AccessController.doPrivileged(new PrivilegedAction<GenericURLStreamHandlerFactory>() {
+ factory = SecurityUtil.doPrivileged(new PrivilegedAction<GenericURLStreamHandlerFactory>() {
@Override
public GenericURLStreamHandlerFactory run() {
boolean ok = false;
diff --git a/src/java/com/jogamp/common/nio/Buffers.java b/src/java/com/jogamp/common/nio/Buffers.java
index 875163e..6510f34 100644
--- a/src/java/com/jogamp/common/nio/Buffers.java
+++ b/src/java/com/jogamp/common/nio/Buffers.java
@@ -50,11 +50,11 @@ import java.nio.FloatBuffer;
import java.nio.IntBuffer;
import java.nio.LongBuffer;
import java.nio.ShortBuffer;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.ReflectionUtil;
+import com.jogamp.common.util.SecurityUtil;
import com.jogamp.common.util.UnsafeUtil;
import com.jogamp.common.util.ValueConv;
@@ -1177,7 +1177,7 @@ public class Buffers {
final Method[] _mbbCleaner = { null };
final Method[] _cClean = { null };
final boolean hasCleaner;
- if( AccessController.doPrivileged(new PrivilegedAction<Boolean>() {
+ if( SecurityUtil.doPrivileged(new PrivilegedAction<Boolean>() {
@Override
public Boolean run() {
try {
diff --git a/src/java/com/jogamp/common/os/NativeLibrary.java b/src/java/com/jogamp/common/os/NativeLibrary.java
index 2a42bed..aa53502 100644
--- a/src/java/com/jogamp/common/os/NativeLibrary.java
+++ b/src/java/com/jogamp/common/os/NativeLibrary.java
@@ -43,7 +43,6 @@ package com.jogamp.common.os;
import java.io.File;
import java.lang.reflect.Method;
import java.net.URISyntaxException;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Iterator;
@@ -59,6 +58,7 @@ import jogamp.common.os.WindowsDynamicLinkerImpl;
import com.jogamp.common.ExceptionUtils;
import com.jogamp.common.util.IOUtil;
+import com.jogamp.common.util.SecurityUtil;
import com.jogamp.common.util.cache.TempJarCache;
/** Provides low-level, relatively platform-independent access to
@@ -453,7 +453,7 @@ public final class NativeLibrary implements DynamicLookupHelper {
// Add entries from java.library.path
final String[] javaLibraryPaths =
- AccessController.doPrivileged(new PrivilegedAction<String[]>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<String[]>() {
@Override
public String[] run() {
int count = 0;
@@ -495,7 +495,7 @@ public final class NativeLibrary implements DynamicLookupHelper {
// Add current working directory
final String userDir =
- AccessController.doPrivileged(new PrivilegedAction<String>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
return System.getProperty("user.dir");
@@ -616,7 +616,7 @@ public final class NativeLibrary implements DynamicLookupHelper {
return null;
}
if (!initializedFindLibraryMethod) {
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
try {
@@ -633,7 +633,7 @@ public final class NativeLibrary implements DynamicLookupHelper {
}
if (findLibraryMethod != null) {
try {
- return AccessController.doPrivileged(new PrivilegedAction<String>() {
+ return SecurityUtil.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
try {
diff --git a/src/java/com/jogamp/common/os/Platform.java b/src/java/com/jogamp/common/os/Platform.java
index ca3d60b..e6821ba 100644
--- a/src/java/com/jogamp/common/os/Platform.java
+++ b/src/java/com/jogamp/common/os/Platform.java
@@ -28,7 +28,6 @@
package com.jogamp.common.os;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.concurrent.TimeUnit;
@@ -37,6 +36,7 @@ import com.jogamp.common.net.Uri;
import com.jogamp.common.util.JarUtil;
import com.jogamp.common.util.PropertyAccess;
import com.jogamp.common.util.ReflectionUtil;
+import com.jogamp.common.util.SecurityUtil;
import com.jogamp.common.util.VersionNumber;
import com.jogamp.common.util.cache.TempJarCache;
@@ -287,7 +287,7 @@ public class Platform extends PlatformPropsImpl {
final boolean[] _USE_TEMP_JAR_CACHE = new boolean[] { false };
final boolean[] _AWT_AVAILABLE = new boolean[] { false };
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
diff --git a/src/java/com/jogamp/common/util/IOUtil.java b/src/java/com/jogamp/common/util/IOUtil.java
index 380cb00..045525c 100644
--- a/src/java/com/jogamp/common/util/IOUtil.java
+++ b/src/java/com/jogamp/common/util/IOUtil.java
@@ -48,7 +48,6 @@ import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.ByteBuffer;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.List;
@@ -79,7 +78,7 @@ public class IOUtil {
static {
final boolean _props[] = { false, false, false, false, false, false };
- final Method[] res = AccessController.doPrivileged(new PrivilegedAction<Method[]>() {
+ final Method[] res = SecurityUtil.doPrivileged(new PrivilegedAction<Method[]>() {
@Override
public Method[] run() {
final Method[] res = new Method[] { null, null };
diff --git a/src/java/com/jogamp/common/util/IntIntHashMap.java b/src/java/com/jogamp/common/util/IntIntHashMap.java
index f78b1e0..d74b79c 100644
--- a/src/java/com/jogamp/common/util/IntIntHashMap.java
+++ b/src/java/com/jogamp/common/util/IntIntHashMap.java
@@ -34,7 +34,6 @@ package com.jogamp.common.util;
import com.jogamp.common.JogampRuntimeException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.ArrayList;
import java.util.Arrays;
@@ -84,7 +83,7 @@ public class /*name*/IntIntHashMap/*name*/ implements Cloneable,
isPrimitive = valueClazz.isPrimitive();
if(!isPrimitive) {
- final EntryCM cm = AccessController.doPrivileged(new PrivilegedAction<EntryCM>() {
+ final EntryCM cm = SecurityUtil.doPrivileged(new PrivilegedAction<EntryCM>() {
@Override
@SuppressWarnings("unchecked")
public EntryCM run() {
@@ -502,7 +501,7 @@ public class /*name*/IntIntHashMap/*name*/ implements Cloneable,
private static Method getCloneMethod(final Object obj) {
final Class<?> clazz = obj.getClass();
- return AccessController.doPrivileged(new PrivilegedAction<Method>() {
+ return SecurityUtil.doPrivileged(new PrivilegedAction<Method>() {
@Override
public Method run() {
try {
diff --git a/src/java/com/jogamp/common/util/PropertyAccess.java b/src/java/com/jogamp/common/util/PropertyAccess.java
index b6e9bdd..6dd550b 100644
--- a/src/java/com/jogamp/common/util/PropertyAccess.java
+++ b/src/java/com/jogamp/common/util/PropertyAccess.java
@@ -175,7 +175,7 @@ public class PropertyAccess {
}
private static final String getTrustedPropKey(final String propertyKey) {
- return AccessController.doPrivileged(new PrivilegedAction<String>() {
+ return SecurityUtil.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
try {
diff --git a/src/java/com/jogamp/common/util/SecurityUtil.java b/src/java/com/jogamp/common/util/SecurityUtil.java
index 1b8b7c2..9591f70 100644
--- a/src/java/com/jogamp/common/util/SecurityUtil.java
+++ b/src/java/com/jogamp/common/util/SecurityUtil.java
@@ -27,7 +27,6 @@
*/
package com.jogamp.common.util;
-import java.security.AccessController;
import java.security.AllPermission;
import java.security.CodeSource;
import java.security.Permission;
@@ -36,18 +35,38 @@ import java.security.ProtectionDomain;
import java.security.cert.Certificate;
public class SecurityUtil {
+ @SuppressWarnings("removal")
private static final SecurityManager securityManager;
private static final Permission allPermissions;
private static final boolean DEBUG = false;
+ /**
+ * Deprecated call to {@link System#getSecurityManager()} w/o warnings.
+ */
+ @SuppressWarnings({ "deprecation", "removal" })
+ public static final SecurityManager getSecurityManager() {
+ return System.getSecurityManager();
+ }
+
+ /**
+ * Deprecated call to {@link java.security.AccessController#doPrivileged(PrivilegedAction)} w/o warnings.
+ * @param <T>
+ * @param o
+ * @return
+ */
+ @SuppressWarnings({ "deprecation", "removal" })
+ public static <T> T doPrivileged(final PrivilegedAction<T> o) {
+ return java.security.AccessController.doPrivileged( o );
+ }
+
static {
allPermissions = new AllPermission();
- securityManager = System.getSecurityManager();
+ securityManager = getSecurityManager();
if( DEBUG ) {
final boolean hasAllPermissions;
{
- final ProtectionDomain insecPD = AccessController.doPrivileged(new PrivilegedAction<ProtectionDomain>() {
+ final ProtectionDomain insecPD = doPrivileged(new PrivilegedAction<ProtectionDomain>() {
@Override
public ProtectionDomain run() {
return SecurityUtil.class.getProtectionDomain();
@@ -64,7 +83,7 @@ public class SecurityUtil {
System.err.println("SecurityUtil: Has SecurityManager: "+ ( null != securityManager ) ) ;
System.err.println("SecurityUtil: Has AllPermissions: "+hasAllPermissions);
- final Certificate[] certs = AccessController.doPrivileged(new PrivilegedAction<Certificate[]>() {
+ final Certificate[] certs = doPrivileged(new PrivilegedAction<Certificate[]>() {
@Override
public Certificate[] run() {
return getCerts(SecurityUtil.class);
diff --git a/src/java/com/jogamp/common/util/UnsafeUtil.java b/src/java/com/jogamp/common/util/UnsafeUtil.java
index 6fde3fa..d1b2dd8 100644
--- a/src/java/com/jogamp/common/util/UnsafeUtil.java
+++ b/src/java/com/jogamp/common/util/UnsafeUtil.java
@@ -31,7 +31,6 @@ import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.nio.ByteBuffer;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import com.jogamp.common.ExceptionUtils;
@@ -73,7 +72,7 @@ public class UnsafeUtil {
final Class<?>[] _illegalAccessLoggerClass = { null };
final Long[] _loggerOffset = { null };
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
Class<?> unsafeClass = null;
@@ -172,7 +171,7 @@ public class UnsafeUtil {
/**
* Issue the given user {@code action} while {@code jdk.internal.module.IllegalAcessLogger}'s {@code logger} has been temporarily disabled.
* <p>
- * The caller shall place this call into their own {@link AccessController#doPrivileged(PrivilegedAction)} block.
+ * The caller shall place this call into their own {@link SecurityUtil#doPrivileged(PrivilegedAction)} block.
* </p>
* <p>
* In case the runtime is not {@link PlatformPropsImpl#JAVA_9} or the logger is not accessible or disabling caused an exception,
diff --git a/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java b/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java
index 03ed5c1..2ced962 100644
--- a/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java
+++ b/src/java/com/jogamp/gluegen/runtime/ProcAddressTable.java
@@ -46,7 +46,6 @@ import java.io.IOException;
import java.io.PrintStream;
import java.lang.reflect.AccessibleObject;
import java.lang.reflect.Field;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -89,7 +88,7 @@ public abstract class ProcAddressTable {
private final FunctionAddressResolver resolver;
static {
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
DEBUG = (System.getProperty("jogamp.debug.ProcAddressHelper") != null);
@@ -207,7 +206,7 @@ public abstract class ProcAddressTable {
* </p>
*/
private final Field fieldForFunctionInSec(final String name) throws IllegalArgumentException {
- return AccessController.doPrivileged(new PrivilegedAction<Field>() {
+ return SecurityUtil.doPrivileged(new PrivilegedAction<Field>() {
@Override
public Field run() {
try {
diff --git a/src/java/jogamp/common/Debug.java b/src/java/jogamp/common/Debug.java
index 838b607..131018c 100644
--- a/src/java/jogamp/common/Debug.java
+++ b/src/java/jogamp/common/Debug.java
@@ -28,10 +28,10 @@
package jogamp.common;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import com.jogamp.common.util.PropertyAccess;
+import com.jogamp.common.util.SecurityUtil;
/** Helper routines for logging and debugging. */
@@ -41,7 +41,7 @@ public class Debug extends PropertyAccess {
private static final boolean debugAll;
static {
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
PropertyAccess.addTrustedPrefix("jogamp.");
diff --git a/src/java/jogamp/common/os/PlatformPropsImpl.java b/src/java/jogamp/common/os/PlatformPropsImpl.java
index aff3d68..b6cea66 100644
--- a/src/java/jogamp/common/os/PlatformPropsImpl.java
+++ b/src/java/jogamp/common/os/PlatformPropsImpl.java
@@ -6,7 +6,6 @@ import java.io.RandomAccessFile;
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.nio.ShortBuffer;
-import java.security.AccessController;
import java.security.PrivilegedAction;
import java.util.List;
@@ -23,6 +22,7 @@ import com.jogamp.common.os.Platform.ABIType;
import com.jogamp.common.os.Platform.CPUFamily;
import com.jogamp.common.os.Platform.CPUType;
import com.jogamp.common.os.Platform.OSType;
+import com.jogamp.common.util.SecurityUtil;
import com.jogamp.common.util.VersionNumber;
/**
@@ -181,7 +181,7 @@ public abstract class PlatformPropsImpl {
final ABIType[] _elfAbiType = { null };
final int[] _elfLittleEndian = { 0 }; // 1 - little, 2 - big
final boolean[] _elfValid = { false };
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
@Override
public Object run() {
RandomAccessFile in = null;
@@ -357,7 +357,7 @@ public abstract class PlatformPropsImpl {
private static final String getJavaRuntimeNameImpl() {
// the fast path, check property Java SE instead of traversing through the ClassLoader
- return AccessController.doPrivileged(new PrivilegedAction<String>() {
+ return SecurityUtil.doPrivileged(new PrivilegedAction<String>() {
@Override
public String run() {
return System.getProperty("java.runtime.name");
diff --git a/src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java b/src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java
index 47e392a..aeca7e7 100644
--- a/src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java
+++ b/src/junit/com/jogamp/gluegen/test/junit/generation/BindingJNILibLoader.java
@@ -29,13 +29,16 @@
package com.jogamp.gluegen.test.junit.generation;
import com.jogamp.common.jvm.JNILibLoaderBase;
+import com.jogamp.common.util.SecurityUtil;
+
import java.security.*;
public class BindingJNILibLoader extends JNILibLoaderBase {
public static void loadBindingtest1p1() {
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
- public Object run() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
loadLibrary("Bindingtest1p1", null, true, BindingJNILibLoader.class.getClassLoader());
return null;
}
@@ -43,8 +46,9 @@ public class BindingJNILibLoader extends JNILibLoaderBase {
}
public static void loadBindingtest1p2() {
- AccessController.doPrivileged(new PrivilegedAction<Object>() {
- public Object run() {
+ SecurityUtil.doPrivileged(new PrivilegedAction<Object>() {
+ @Override
+ public Object run() {
loadLibrary("Bindingtest1p2", null, true, BindingJNILibLoader.class.getClassLoader());
return null;
}