/* * @(#)IESecurity.java 1.12 02/08/21 * * Copyright (c) 1996-2002 Sun Microsystems, Inc. All rights reserved. */ package com.sun.media; import java.util.Hashtable; import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; import com.ms.security.PermissionID; import com.ms.security.PolicyEngine; /** * * public final synchronized class com/ms/security/PermissionID extends java.lang.Object * public static final com/ms/security/PermissionID SYSTEM; * public static final com/ms/security/PermissionID FILEIO; * public static final com/ms/security/PermissionID NETIO; * public static final com/ms/security/PermissionID THREAD; * public static final com/ms/security/PermissionID PROPERTY; * public static final com/ms/security/PermissionID EXEC; * public static final com/ms/security/PermissionID REFLECTION; * public static final com/ms/security/PermissionID PRINTING; * public static final com/ms/security/PermissionID SECURITY; * public static final com/ms/security/PermissionID REGISTRY; * public static final com/ms/security/PermissionID CLIENTSTORE; * public static final com/ms/security/PermissionID UI; * public static final com/ms/security/PermissionID SYSSTREAMS; * public static final com/ms/security/PermissionID USERFILEIO; * public static final com/ms/security/PermissionID MULTIMEDIA; */ public class IESecurity implements JMFSecurity { public static JMFSecurity security; public static boolean jview=false; private static Class cls=null; private static Method dummyMethodRef=null; public static final boolean DEBUG = false; static { security = new IESecurity(); cls = security.getClass(); try { dummyMethodRef = cls.getMethod("dummyMethod",new Class[0]); } catch (Exception e) { } } private IESecurity() { } public String getName() { return "internetexplorer"; } public static void dummyMethod() { } public void requestPermission(Method[] m, Class[] c, Object[][] args, int request) throws SecurityException { // if (!jview) // throw new SecurityException("IESecurity : Cannot request permission"); m[0] = dummyMethodRef; c[0] = cls; args[0] = null; } // Netscape will not use this parameter. public void requestPermission(Method[] m, Class[] c, Object[][] args, int request, String parameter) throws SecurityException { requestPermission(m, c, args, request); } public boolean isLinkPermissionEnabled() { return jview; //return true; } public void permissionFailureNotification(int permission) { } public void loadLibrary(String name) throws UnsatisfiedLinkError { // if (jview) // System.loadLibrary(name); // else // throw new UnsatisfiedLinkError("Unable to get link privilege to " + name); try { try { if (!jview) { PolicyEngine.assertPermission(PermissionID.SYSTEM); } } catch (Throwable t) { } // System.out.println("Call System.loadLibrary " + name); System.loadLibrary(name); } catch (Exception e) { if (DEBUG) System.err.println("IESecurity: Unable to load library " + name); throw new UnsatisfiedLinkError("Unable to get link privilege to " + name); } catch (Error e) { if (DEBUG) System.err.println("IESecurity: Unable to load library " + name); throw new UnsatisfiedLinkError("Unable to get link privilege to " + name); } } }