8344654: Some client tests still expect a SecurityManager after JEP486
Reviewed-by: prr, azvegint
This commit is contained in:
parent
3689f3909e
commit
5e15415cb9
@ -32,23 +32,16 @@
|
||||
* @build jdk.test.lib.Platform
|
||||
* @run main bug8064934
|
||||
*/
|
||||
import jdk.test.lib.Platform;
|
||||
|
||||
import java.awt.*;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
public class bug8064934 {
|
||||
private static final String NO_ASSOCIATION_ERROR_MESSAGE = "Error message: No application is associated with" +
|
||||
" the specified file for this operation.";
|
||||
|
||||
public static void main(String[] args) {
|
||||
// This test is intended only for Windows
|
||||
if (!AccessController.doPrivileged((PrivilegedAction<Boolean>) Platform::isWindows)) {
|
||||
System.out.println("The test is for Windows platform only");
|
||||
return;
|
||||
}
|
||||
|
||||
// Test whether Desktop is supported of not
|
||||
if (!Desktop.isDesktopSupported()) {
|
||||
|
@ -27,9 +27,6 @@ import java.awt.geom.Point2D;
|
||||
import java.awt.image.BufferedImage;
|
||||
import java.lang.reflect.Field;
|
||||
import java.lang.reflect.Method;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedActionException;
|
||||
import java.security.PrivilegedExceptionAction;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@ -154,17 +151,9 @@ public class SystemTrayIconHelper {
|
||||
return null;
|
||||
}
|
||||
|
||||
static Field getField(final Class clz, final String fieldName) {
|
||||
Field res = null;
|
||||
try {
|
||||
res = (Field)AccessController.doPrivileged((PrivilegedExceptionAction) () -> {
|
||||
Field f = clz.getDeclaredField(fieldName);
|
||||
f.setAccessible(true);
|
||||
return f;
|
||||
});
|
||||
} catch (PrivilegedActionException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
static Field getField(final Class clz, final String fieldName) throws NoSuchFieldException {
|
||||
Field res = clz.getDeclaredField(fieldName);
|
||||
res.setAccessible(true);
|
||||
return res;
|
||||
}
|
||||
|
||||
|
@ -23,7 +23,6 @@
|
||||
*/
|
||||
|
||||
import java.awt.*;
|
||||
import java.security.PublicKey;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.CountDownLatch;
|
||||
|
||||
|
@ -78,17 +78,6 @@ public class IndependenceAWTTest {
|
||||
tf1.requestFocus();
|
||||
}
|
||||
|
||||
public void checkSecurity() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm == null) {
|
||||
System.out.println("security manager is not there");
|
||||
getPrimaryClipboard();
|
||||
} else {
|
||||
sm.checkPermission(new AWTPermission("accessClipboard"));
|
||||
getPrimaryClipboard();
|
||||
}
|
||||
}
|
||||
|
||||
// Get System Selection i.e. Primary Clipboard
|
||||
private void getPrimaryClipboard() {
|
||||
Properties ps = System.getProperties();
|
||||
@ -148,7 +137,7 @@ public class IndependenceAWTTest {
|
||||
}
|
||||
|
||||
public void doTest() throws Exception {
|
||||
checkSecurity();
|
||||
getPrimaryClipboard();
|
||||
ExtendedRobot robot = new ExtendedRobot();
|
||||
robot.waitForIdle(1000);
|
||||
frame.setLocation(100, 100);
|
||||
|
@ -85,17 +85,6 @@ public class IndependenceSwingTest {
|
||||
tf1.requestFocus();
|
||||
}
|
||||
|
||||
public void checkSecurity() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
if (sm == null) {
|
||||
System.out.println("security manager is not there");
|
||||
getPrimaryClipboard();
|
||||
} else {
|
||||
sm.checkPermission(new AWTPermission("accessClipboard"));
|
||||
getPrimaryClipboard();
|
||||
}
|
||||
}
|
||||
|
||||
// Get System Selection i.e. Primary Clipboard
|
||||
private void getPrimaryClipboard() {
|
||||
Properties ps = System.getProperties();
|
||||
@ -155,7 +144,7 @@ public class IndependenceSwingTest {
|
||||
}
|
||||
|
||||
public void doTest() throws Exception {
|
||||
checkSecurity();
|
||||
getPrimaryClipboard();
|
||||
ExtendedRobot robot = new ExtendedRobot();
|
||||
robot.waitForIdle(1000);
|
||||
frame.setLocation(100, 100);
|
||||
|
@ -74,24 +74,6 @@ public class SystemSelectionAWTTest {
|
||||
tf1.setText("Selection Testing");
|
||||
}
|
||||
|
||||
// Check whether Security manager is there
|
||||
public void checkSecurity() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
|
||||
if (sm == null) {
|
||||
System.out.println("security manager is not there");
|
||||
getPrimaryClipboard();
|
||||
} else {
|
||||
try {
|
||||
sm.checkPermission(new AWTPermission("accessClipboard"));
|
||||
getPrimaryClipboard();
|
||||
} catch(SecurityException e) {
|
||||
clip = null;
|
||||
System.out.println("Access to System selection is not allowed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get the contents from the clipboard
|
||||
void getClipboardContent() throws Exception {
|
||||
t = clip.getContents(this);
|
||||
@ -134,7 +116,7 @@ public class SystemSelectionAWTTest {
|
||||
|
||||
Point tf1Location = tf1.getLocationOnScreen();
|
||||
Dimension tf1Size = tf1.getSize();
|
||||
checkSecurity();
|
||||
getPrimaryClipboard();
|
||||
|
||||
if (clip != null) {
|
||||
robot.mouseMove(tf1Location.x + 5, tf1Location.y + tf1Size.height / 2);
|
||||
|
@ -75,24 +75,6 @@ public class SystemSelectionSwingTest {
|
||||
jtf1.setText("Selection Testing");
|
||||
}
|
||||
|
||||
// Check whether Security manager is there
|
||||
public void checkSecurity() {
|
||||
SecurityManager sm = System.getSecurityManager();
|
||||
|
||||
if (sm == null) {
|
||||
System.out.println("security manager is not there");
|
||||
getPrimaryClipboard();
|
||||
} else {
|
||||
try {
|
||||
sm.checkPermission(new AWTPermission("accessClipboard"));
|
||||
getPrimaryClipboard();
|
||||
} catch(SecurityException e) {
|
||||
clip = null;
|
||||
System.out.println("Access to System selection is not allowed");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Get the contents from the clipboard
|
||||
void getClipboardContent() throws Exception {
|
||||
t = clip.getContents(this);
|
||||
@ -136,7 +118,7 @@ public class SystemSelectionSwingTest {
|
||||
|
||||
Point tf1Location = jtf1.getLocationOnScreen();
|
||||
Dimension tf1Size = jtf1.getSize();
|
||||
checkSecurity();
|
||||
getPrimaryClipboard();
|
||||
|
||||
if (clip != null) {
|
||||
robot.mouseMove(tf1Location.x + 5, tf1Location.y + tf1Size.height / 2);
|
||||
|
@ -34,8 +34,6 @@
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.lang.reflect.*;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
// get array InputEvent.BUTTON_MASK via reflection
|
||||
// get array InputEvent.BUTTON_DOWN_MASK via reflection
|
||||
@ -52,22 +50,18 @@ public class ButtonArraysEquality {
|
||||
}
|
||||
|
||||
// getButtonDownMasks()
|
||||
Object obj = AccessController.doPrivileged(
|
||||
new PrivilegedAction() {
|
||||
public Object run() {
|
||||
Object obj = null;
|
||||
|
||||
try {
|
||||
Class clazz = Class.forName("java.awt.event.InputEvent");
|
||||
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
|
||||
if (method != null) {
|
||||
method.setAccessible(true);
|
||||
return method.invoke(null, (Object[])null);
|
||||
obj = method.invoke(null, (Object[])null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Test failed. Exception occured:", e);
|
||||
throw new RuntimeException("Test failed. Exception occurred:", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
int [] buttonDownMasks = new int [Array.getLength(obj)];
|
||||
checkNullAndPutValuesToArray(buttonDownMasks, obj);
|
||||
|
@ -34,8 +34,6 @@
|
||||
import java.awt.*;
|
||||
import java.awt.event.InputEvent;
|
||||
import java.lang.reflect.*;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
|
||||
public class CheckGetMaskForButton{
|
||||
static Robot robot;
|
||||
@ -50,22 +48,17 @@ public class CheckGetMaskForButton{
|
||||
}
|
||||
|
||||
//get same array via reflection
|
||||
Object obj = AccessController.doPrivileged(
|
||||
new PrivilegedAction() {
|
||||
public Object run() {
|
||||
Object obj = null;
|
||||
try {
|
||||
Class clazz = Class.forName("java.awt.event.InputEvent");
|
||||
Method method = clazz.getDeclaredMethod("getButtonDownMasks",new Class [] {});
|
||||
if (method != null) {
|
||||
method.setAccessible(true);
|
||||
return method.invoke(null, (Object[])null);
|
||||
obj = method.invoke(null, (Object[])null);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Test failed. Exception occured:", e);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
if (obj == null){
|
||||
throw new RuntimeException("Test failed. The value obtained via reflection is "+obj);
|
||||
|
@ -37,7 +37,6 @@ import java.awt.print.*;
|
||||
import javax.print.PrintService;
|
||||
import javax.print.attribute.*;
|
||||
import javax.print.attribute.standard.*;
|
||||
import java.util.PropertyPermission;
|
||||
|
||||
public class PrintToDir extends Frame implements Printable {
|
||||
|
||||
@ -122,17 +121,6 @@ public class PrintToDir extends Frame implements Printable {
|
||||
|
||||
|
||||
public static void main(String arg[]) {
|
||||
SecurityManager security = System.getSecurityManager();
|
||||
if (security != null) {
|
||||
System.out.println("Security manager detected");
|
||||
try {
|
||||
security.checkPermission(new FilePermission("<<ALL FILES>>", "read,write"));
|
||||
security.checkPermission(new PropertyPermission("user.dir", "read"));
|
||||
} catch (SecurityException se) {
|
||||
System.out.println("Security requirement not obtained. TEST PASSED");
|
||||
return;
|
||||
}
|
||||
}
|
||||
String[] testStr = {".", ""};
|
||||
for (int i=0; i<testStr.length; i++) {
|
||||
System.out.println("Testing file name = \""+testStr[i]+"\"");
|
||||
|
@ -68,9 +68,6 @@ import java.lang.reflect.Field;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.lang.reflect.Method;
|
||||
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.AccessController;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
public final class Util {
|
||||
@ -452,32 +449,19 @@ public final class Util {
|
||||
Method m_addExports = Class.forName("java.awt.Helper").getDeclaredMethod("addExports", String.class, java.lang.Module.class);
|
||||
// We may be called from non-X11 system, and this permission cannot be delegated to a test.
|
||||
m_addExports.invoke(null, "sun.awt.X11", Util.class.getModule());
|
||||
@SuppressWarnings("removal")
|
||||
Method m_getWMID = (Method)AccessController.doPrivileged(new PrivilegedAction() {
|
||||
public Object run() {
|
||||
Method m_getWMID = null;
|
||||
try {
|
||||
Method method = _clazz.getDeclaredMethod("getWMID", new Class[] {});
|
||||
if (method != null) {
|
||||
method.setAccessible(true);
|
||||
m_getWMID = _clazz.getDeclaredMethod("getWMID", new Class[] {});
|
||||
if (m_getWMID != null) {
|
||||
m_getWMID.setAccessible(true);
|
||||
}
|
||||
return method;
|
||||
} catch (NoSuchMethodException e) {
|
||||
assert false;
|
||||
} catch (SecurityException e) {
|
||||
assert false;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
});
|
||||
return ((Integer)m_getWMID.invoke(null, new Object[] {})).intValue();
|
||||
} catch (ClassNotFoundException cnfe) {
|
||||
cnfe.printStackTrace();
|
||||
} catch (NoSuchMethodException nsme) {
|
||||
nsme.printStackTrace();
|
||||
} catch (IllegalAccessException iae) {
|
||||
iae.printStackTrace();
|
||||
} catch (InvocationTargetException ite) {
|
||||
ite.printStackTrace();
|
||||
return (Integer) m_getWMID.invoke(null, new Object[]{});
|
||||
} catch (ClassNotFoundException | NoSuchMethodException
|
||||
| IllegalAccessException | InvocationTargetException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
@ -57,13 +57,7 @@ public class MetadataFormatThreadTest implements Runnable {
|
||||
|
||||
public void run() {
|
||||
try {
|
||||
ClassLoader loader = (ClassLoader)
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
public Object run() {
|
||||
return Thread.currentThread().getContextClassLoader();
|
||||
}
|
||||
});
|
||||
ClassLoader loader = (ClassLoader) Thread.currentThread().getContextClassLoader();
|
||||
|
||||
Class ct = loader.loadClass(test_class);
|
||||
|
||||
@ -84,13 +78,7 @@ public class MetadataFormatThreadTest implements Runnable {
|
||||
final ClassLoader loader = new URLClassLoader(urls);
|
||||
|
||||
final Thread t = new Thread(new MetadataFormatThreadTest(code));
|
||||
java.security.AccessController.doPrivileged(
|
||||
new java.security.PrivilegedAction() {
|
||||
public Object run() {
|
||||
t.setContextClassLoader(loader);
|
||||
return null;
|
||||
}
|
||||
});
|
||||
|
||||
return t;
|
||||
}
|
||||
|
@ -258,12 +258,7 @@ esac
|
||||
echo -------------------------------
|
||||
echo --- Applet Classpath Test ---
|
||||
echo -------------------------------
|
||||
#
|
||||
# please note that we need to use "==" in setup of the java.security.policy
|
||||
# property in order to overwrite policies defined in the user policy file
|
||||
# For more details see:
|
||||
# http://java.sun.com/j2se/1.5.0/docs/guide/security/PolicyFiles.html)
|
||||
#
|
||||
|
||||
|
||||
${TESTJAVA}/bin/java ${TESTVMOPTS} -cp ".${PATHSEP}${TEST_PLUGIN_JAR}" IIOPluginTest
|
||||
|
||||
|
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2009, 2024, 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
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 6795356
|
||||
* @summary Leak caused by javax.swing.UIDefaults.ProxyLazyValue.acc
|
||||
* @author Alexander Potochkin
|
||||
* @library ../../regtesthelpers
|
||||
* @build Util
|
||||
* @run main/othervm -Xmx128m bug6795356
|
||||
*/
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.security.ProtectionDomain;
|
||||
import java.security.AccessController;
|
||||
import java.security.PrivilegedAction;
|
||||
import java.security.AccessControlContext;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import javax.swing.*;
|
||||
|
||||
public class bug6795356 {
|
||||
volatile static WeakReference<ProtectionDomain> weakRef;
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
ProtectionDomain domain = new ProtectionDomain(null, null);
|
||||
|
||||
AccessController.doPrivileged(new PrivilegedAction<Object>() {
|
||||
public Object run() {
|
||||
|
||||
// this initialize ProxyLazyValues
|
||||
UIManager.getLookAndFeel();
|
||||
|
||||
return null;
|
||||
}
|
||||
}, new AccessControlContext(new ProtectionDomain[]{domain}));
|
||||
|
||||
weakRef = new WeakReference<ProtectionDomain>(domain);
|
||||
domain = null;
|
||||
|
||||
Util.generateOOME();
|
||||
|
||||
if (weakRef.get() != null) {
|
||||
throw new RuntimeException("Memory leak found!");
|
||||
}
|
||||
System.out.println("Test passed");
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user