| /******************************************************************************* |
| * Copyright (c) 2000, 2003 IBM Corporation and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * IBM Corporation - initial API and implementation |
| *******************************************************************************/ |
| package org.eclipse.ant.internal.ui.antsupport; |
| |
| |
| import java.io.FileDescriptor; |
| import java.net.InetAddress; |
| import java.net.SocketPermission; |
| import java.security.Permission; |
| |
| |
| /** |
| * A security manager that always throws an <code>AntSecurityException</code> |
| * if the calling thread attempts to cause the Java Virtual Machine to |
| * exit/halt. |
| * Otherwise this manager just delegates to the pre-existing manager |
| * passed in the constructor or mimics the default security manager behavior |
| */ |
| public class AntSecurityManager extends SecurityManager { |
| |
| protected SecurityManager securityManager= null; |
| |
| protected AntSecurityManager(SecurityManager securityManager) { |
| this.securityManager= securityManager; |
| } |
| /** |
| * @see java.lang.SecurityManager#checkExit(int) |
| */ |
| public void checkExit(int status) { |
| //no exit allowed...System.exit is being called |
| //by some ant task...do not want Eclipse to exit if |
| //in the same VM, |
| //The message is used in loggers to determine that this is |
| //not really an exception case. |
| throw new AntSecurityException(); |
| } |
| /** |
| * @see java.lang.SecurityManager#checkAccept(java.lang.String, int) |
| */ |
| public void checkAccept(String host, int port) { |
| if (securityManager != null) { |
| securityManager.checkAccept(host, port); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkAccess(java.lang.Thread) |
| */ |
| public void checkAccess(Thread t) { |
| if (securityManager != null) { |
| securityManager.checkAccess(t); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkAccess(java.lang.ThreadGroup) |
| */ |
| public void checkAccess(ThreadGroup g) { |
| if (securityManager != null) { |
| securityManager.checkAccess(g); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkAwtEventQueueAccess() |
| */ |
| public void checkAwtEventQueueAccess() { |
| if (securityManager != null) { |
| securityManager.checkAwtEventQueueAccess(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkConnect(java.lang.String, int, java.lang.Object) |
| */ |
| public void checkConnect(String host, int port, Object context) { |
| if (securityManager != null) { |
| securityManager.checkConnect(host, port, context); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkConnect(java.lang.String, int) |
| */ |
| public void checkConnect(String host, int port) { |
| if (securityManager != null) { |
| securityManager.checkConnect(host, port); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkCreateClassLoader() |
| */ |
| public void checkCreateClassLoader() { |
| if (securityManager != null) { |
| securityManager.checkCreateClassLoader(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkDelete(java.lang.String) |
| */ |
| public void checkDelete(String file) { |
| if (securityManager != null) { |
| securityManager.checkDelete(file); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkExec(java.lang.String) |
| */ |
| public void checkExec(String cmd) { |
| if (securityManager != null) { |
| securityManager.checkExec(cmd); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkLink(java.lang.String) |
| */ |
| public void checkLink(String lib) { |
| if (securityManager != null) { |
| securityManager.checkLink(lib); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkListen(int) |
| */ |
| public void checkListen(int port) { |
| if (securityManager != null) { |
| securityManager.checkListen(port); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkMemberAccess(java.lang.Class, int) |
| */ |
| public void checkMemberAccess(Class clazz, int which) { |
| if (securityManager != null) { |
| securityManager.checkMemberAccess(clazz, which); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress, byte) |
| * @deprecated |
| */ |
| public void checkMulticast(InetAddress maddr, byte ttl) { |
| if (securityManager != null) { |
| String host = maddr.getHostAddress(); |
| if (!host.startsWith("[") && host.indexOf(':') != -1) { //$NON-NLS-1$ |
| host = "[" + host + "]"; //$NON-NLS-1$ //$NON-NLS-2$ |
| } |
| checkPermission(new SocketPermission(host, "accept,connect")); //$NON-NLS-1$ |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkMulticast(java.net.InetAddress) |
| */ |
| public void checkMulticast(InetAddress maddr) { |
| if (securityManager != null) { |
| securityManager.checkMulticast(maddr); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPackageAccess(java.lang.String) |
| */ |
| public void checkPackageAccess(String pkg) { |
| if (securityManager != null) { |
| securityManager.checkPackageAccess(pkg); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPackageDefinition(java.lang.String) |
| */ |
| public void checkPackageDefinition(String pkg) { |
| if (securityManager != null) { |
| securityManager.checkPackageDefinition(pkg); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPermission(java.security.Permission, java.lang.Object) |
| */ |
| public void checkPermission(Permission perm, Object context) { |
| if (securityManager != null) { |
| securityManager.checkPermission(perm, context); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPermission(java.security.Permission) |
| */ |
| public void checkPermission(Permission perm) { |
| if (securityManager != null) { |
| securityManager.checkPermission(perm); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPrintJobAccess() |
| */ |
| public void checkPrintJobAccess() { |
| if (securityManager != null) { |
| securityManager.checkPrintJobAccess(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPropertiesAccess() |
| */ |
| public void checkPropertiesAccess() { |
| if (securityManager != null) { |
| securityManager.checkPropertiesAccess(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkPropertyAccess(java.lang.String) |
| */ |
| public void checkPropertyAccess(String key) { |
| if (securityManager != null) { |
| securityManager.checkPropertyAccess(key); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkRead(java.io.FileDescriptor) |
| */ |
| public void checkRead(FileDescriptor fd) { |
| if (securityManager != null) { |
| securityManager.checkRead(fd); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkRead(java.lang.String, java.lang.Object) |
| */ |
| public void checkRead(String file, Object context) { |
| if (securityManager != null) { |
| securityManager.checkRead(file, context); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkRead(java.lang.String) |
| */ |
| public void checkRead(String file) { |
| if (securityManager != null) { |
| securityManager.checkRead(file); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkSecurityAccess(java.lang.String) |
| */ |
| public void checkSecurityAccess(String target) { |
| if (securityManager != null) { |
| securityManager.checkSecurityAccess(target); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkSetFactory() |
| */ |
| public void checkSetFactory() { |
| if (securityManager != null) { |
| securityManager.checkSetFactory(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkSystemClipboardAccess() |
| */ |
| public void checkSystemClipboardAccess() { |
| if (securityManager != null) { |
| securityManager.checkSystemClipboardAccess(); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkTopLevelWindow(java.lang.Object) |
| */ |
| public boolean checkTopLevelWindow(Object window) { |
| if (securityManager != null) { |
| return securityManager.checkTopLevelWindow(window); |
| } |
| return super.checkTopLevelWindow(window); |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkWrite(java.io.FileDescriptor) |
| */ |
| public void checkWrite(FileDescriptor fd) { |
| if (securityManager != null) { |
| securityManager.checkWrite(fd); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#checkWrite(java.lang.String) |
| */ |
| public void checkWrite(String file) { |
| if (securityManager != null) { |
| securityManager.checkWrite(file); |
| } |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#getInCheck() |
| * @deprecated |
| */ |
| public boolean getInCheck() { |
| if (securityManager != null) { |
| return securityManager.getInCheck(); |
| } |
| return super.getInCheck(); |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#getSecurityContext() |
| */ |
| public Object getSecurityContext() { |
| if (securityManager != null) { |
| return securityManager.getSecurityContext(); |
| } |
| return super.getSecurityContext(); |
| } |
| |
| /** |
| * @see java.lang.SecurityManager#getThreadGroup() |
| */ |
| public ThreadGroup getThreadGroup() { |
| if (securityManager != null) { |
| securityManager.getThreadGroup(); |
| } |
| return super.getThreadGroup(); |
| } |
| } |