src/share/classes/sun/security/util/SecurityConstants.java

Print this page

        

*** 23,38 **** * have any questions. */ package sun.security.util; - import java.io.FilePermission; - import java.awt.AWTPermission; - import java.util.PropertyPermission; - import java.lang.RuntimePermission; import java.net.SocketPermission; import java.net.NetPermission; import java.security.SecurityPermission; import java.security.AllPermission; import javax.security.auth.AuthPermission; /** --- 23,38 ---- * have any questions. */ package sun.security.util; import java.net.SocketPermission; import java.net.NetPermission; + import java.security.AccessController; + import java.security.PrivilegedAction; + import java.security.Permission; + import java.security.BasicPermission; import java.security.SecurityPermission; import java.security.AllPermission; import javax.security.auth.AuthPermission; /**
*** 69,117 **** // java.lang.Class, java.lang.SecurityManager, java.lang.System, // java.net.URLConnection, java.security.AllPermission, java.security.Policy, // sun.security.provider.PolicyFile public static final AllPermission ALL_PERMISSION = new AllPermission(); ! // java.lang.SecurityManager ! public static final AWTPermission TOPLEVEL_WINDOW_PERMISSION = ! new AWTPermission("showWindowWithoutWarningBanner"); // java.lang.SecurityManager ! public static final AWTPermission ACCESS_CLIPBOARD_PERMISSION = ! new AWTPermission("accessClipboard"); // java.lang.SecurityManager ! public static final AWTPermission CHECK_AWT_EVENTQUEUE_PERMISSION = ! new AWTPermission("accessEventQueue"); // java.awt.Dialog ! public static final AWTPermission TOOLKIT_MODALITY_PERMISSION = ! new AWTPermission("toolkitModality"); // java.awt.Robot ! public static final AWTPermission READ_DISPLAY_PIXELS_PERMISSION = ! new AWTPermission("readDisplayPixels"); // java.awt.Robot ! public static final AWTPermission CREATE_ROBOT_PERMISSION = ! new AWTPermission("createRobot"); // java.awt.MouseInfo ! public static final AWTPermission WATCH_MOUSE_PERMISSION = ! new AWTPermission("watchMousePointer"); // java.awt.Window ! public static final AWTPermission SET_WINDOW_ALWAYS_ON_TOP_PERMISSION = ! new AWTPermission("setWindowAlwaysOnTop"); // java.awt.Toolkit ! public static final AWTPermission ALL_AWT_EVENTS_PERMISSION = ! new AWTPermission("listenToAllAWTEvents"); // java.awt.SystemTray ! public static final AWTPermission ACCESS_SYSTEM_TRAY_PERMISSION = ! new AWTPermission("accessSystemTray"); // java.net.URL public static final NetPermission SPECIFY_HANDLER_PERMISSION = new NetPermission("specifyStreamHandler"); --- 69,189 ---- // java.lang.Class, java.lang.SecurityManager, java.lang.System, // java.net.URLConnection, java.security.AllPermission, java.security.Policy, // sun.security.provider.PolicyFile public static final AllPermission ALL_PERMISSION = new AllPermission(); ! /** ! * Permission type used when AWT is not present. ! */ ! private static class FakeAWTPermission extends BasicPermission { ! private static final long serialVersionUID = -1L; ! public FakeAWTPermission(String name) { ! super(name); ! } ! public String toString() { ! return "(\"java.awt.AWTPermission\" \"" + getName() + "\")"; ! } ! } + /** + * Permission factory used when AWT is not present. + */ + private static class FakeAWTPermissionFactory + implements PermissionFactory<FakeAWTPermission> + { + @Override + public FakeAWTPermission newPermission(String name) { + return new FakeAWTPermission(name); + } + } + + /** + * AWT Permissions used in the JDK. + */ + public static class AWT { + private AWT() { } + + /** + * The class name of the factory to create java.awt.AWTPermission objects. + */ + private static final String AWTFactory = "sun.awt.AWTPermissionFactory"; + + /** + * The PermissionFactory to create AWT permissions (or fake permissions + * if AWT is not present). + */ + private static final PermissionFactory<?> factory = permissionFactory(); + + private static PermissionFactory<?> permissionFactory() { + Class<?> c = AccessController + .doPrivileged(new PrivilegedAction<Class<?>>() { + public Class<?> run() { + try { + return Class.forName(AWTFactory, true, null); + } catch (ClassNotFoundException e) { + // not available + return null; + } + }}); + if (c != null) { + // AWT present + try { + return (PermissionFactory<?>)c.newInstance(); + } catch (InstantiationException x) { + throw new InternalError(x.getMessage()); + } catch (IllegalAccessException x) { + throw new InternalError(x.getMessage()); + } + } else { + // AWT not present + return new FakeAWTPermissionFactory(); + } + } + + private static Permission newAWTPermission(String name) { + return factory.newPermission(name); + } + // java.lang.SecurityManager ! public static final Permission TOPLEVEL_WINDOW_PERMISSION = ! newAWTPermission("showWindowWithoutWarningBanner"); ! // java.lang.SecurityManager ! public static final Permission ACCESS_CLIPBOARD_PERMISSION = ! newAWTPermission("accessClipboard"); // java.lang.SecurityManager ! public static final Permission CHECK_AWT_EVENTQUEUE_PERMISSION = ! newAWTPermission("accessEventQueue"); // java.awt.Dialog ! public static final Permission TOOLKIT_MODALITY_PERMISSION = ! newAWTPermission("toolkitModality"); // java.awt.Robot ! public static final Permission READ_DISPLAY_PIXELS_PERMISSION = ! newAWTPermission("readDisplayPixels"); // java.awt.Robot ! public static final Permission CREATE_ROBOT_PERMISSION = ! newAWTPermission("createRobot"); // java.awt.MouseInfo ! public static final Permission WATCH_MOUSE_PERMISSION = ! newAWTPermission("watchMousePointer"); // java.awt.Window ! public static final Permission SET_WINDOW_ALWAYS_ON_TOP_PERMISSION = ! newAWTPermission("setWindowAlwaysOnTop"); // java.awt.Toolkit ! public static final Permission ALL_AWT_EVENTS_PERMISSION = ! newAWTPermission("listenToAllAWTEvents"); // java.awt.SystemTray ! public static final Permission ACCESS_SYSTEM_TRAY_PERMISSION = ! newAWTPermission("accessSystemTray"); ! } // java.net.URL public static final NetPermission SPECIFY_HANDLER_PERMISSION = new NetPermission("specifyStreamHandler");