home *** CD-ROM | disk | FTP | other *** search
- package sun.rmi.server;
-
- import com.sun.rmi.rmid.ExecOptionPermission;
- import com.sun.rmi.rmid.ExecPermission;
- import java.rmi.activation.ActivationGroupDesc;
- import java.security.AccessControlException;
- import java.security.AccessController;
- import java.security.Permission;
- import java.security.PermissionCollection;
- import java.util.Enumeration;
- import java.util.Properties;
-
- public class Activation$DefaultExecPolicy {
- // $FF: synthetic field
- static Class class$sun$rmi$server$ActivationGroupImpl;
-
- public void checkExecCommand(ActivationGroupDesc var1, String[] var2) throws SecurityException {
- PermissionCollection var3 = getExecPermissions();
- Properties var4 = var1.getPropertyOverrides();
- if (var4 != null) {
- Enumeration var5 = var4.propertyNames();
-
- while(var5.hasMoreElements()) {
- String var6 = (String)var5.nextElement();
- String var7 = "-D" + var6 + "=" + var4.getProperty(var6);
- checkPermission(var3, new ExecOptionPermission(var7));
- }
- }
-
- String var10 = var1.getClassName();
- if ((var10 == null || var10.equals((class$sun$rmi$server$ActivationGroupImpl == null ? (class$sun$rmi$server$ActivationGroupImpl = class$("sun.rmi.server.ActivationGroupImpl")) : class$sun$rmi$server$ActivationGroupImpl).getName())) && var1.getLocation() == null && var1.getData() == null) {
- ActivationGroupDesc.CommandEnvironment var11 = var1.getCommandEnvironment();
- if (var11 != null) {
- String var12 = var11.getCommandPath();
- if (var12 != null) {
- checkPermission(var3, new ExecPermission(var12));
- }
-
- String[] var8 = var11.getCommandOptions();
- if (var8 != null) {
- for(int var9 = 0; var9 < var8.length; ++var9) {
- checkPermission(var3, new ExecOptionPermission(var8[var9]));
- }
- }
- }
-
- } else {
- throw new AccessControlException("access denied (custom group implementation not allowed)");
- }
- }
-
- private static PermissionCollection getExecPermissions() {
- PermissionCollection var0 = (PermissionCollection)AccessController.doPrivileged(new Activation.2());
- return var0;
- }
-
- private static void checkPermission(PermissionCollection var0, Permission var1) throws AccessControlException {
- if (!var0.implies(var1)) {
- throw new AccessControlException("access denied " + var1.toString());
- }
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
- }
-