1 18 19 package com.martiansoftware.nailgun; 20 21 import java.security.Permission ; 22 23 import java.io.PrintStream ; 24 25 33 public class NGSecurityManager extends SecurityManager { 34 private static final ThreadLocal EXIT = new InheritableThreadLocal (); 35 final SecurityManager base; 36 37 41 public NGSecurityManager (SecurityManager base) { 42 this.base = base; 43 } 44 45 public void checkExit (int status) { 46 if (base != null) { 47 base.checkExit(status); 48 } 49 50 final PrintStream exit = (PrintStream )EXIT.get(); 51 52 if (exit != null) { 53 exit.println(status); 54 } 55 56 throw new NGExitException(status); 57 } 58 59 public void checkPermission(Permission perm) { 60 if (base != null) { 61 base.checkPermission(perm); 62 } 63 } 64 65 public void checkPermission(Permission perm, Object context) { 66 if (base != null) { 67 base.checkPermission(perm, context); 68 } 69 } 70 71 public static void setExit (PrintStream exit) { 72 EXIT.set(exit); 73 } 74 } | Popular Tags |