| 1 28 package net.sf.jguard.core.authorization.policy; 29 30 import java.security.AccessControlException ; 31 import java.security.AccessController ; 32 import java.security.Permission ; 33 import java.security.Policy ; 34 import java.security.PrivilegedActionException ; 35 import java.security.PrivilegedExceptionAction ; 36 import java.util.logging.Level ; 37 import java.util.logging.Logger ; 38 39 import javax.security.auth.Subject ; 40 41 42 43 50 public class AccessControllerUtils { 51 private static final Logger logger = Logger.getLogger(AccessControllerUtils.class.getName()); 52 private LocalAccessController accessController = null; 53 54 public AccessControllerUtils(){ 55 56 } 57 58 public AccessControllerUtils(Policy policy){ 59 if(policy == null){ 60 throw new IllegalArgumentException (" policy is null "); 61 } 62 if(accessController == null){ 63 accessController = new LocalAccessController(policy) ; 64 } 65 } 66 67 76 public void checkPermission(Subject subj, final Permission p) throws AccessControlException ,PrivilegedActionException { 77 78 try { 79 Subject.doAsPrivileged(subj, new PrivilegedExceptionAction () { 80 public Object run() { 81 if(accessController == null){ 82 AccessController.checkPermission(p); 83 }else{ 84 accessController.checkPermission(p); 85 } 86 return null; 90 } 91 },null); 92 93 } catch (AccessControlException ace) { 94 if(logger.isLoggable(Level.FINEST)){ 95 logger.log(Level.FINEST,"AccessControlException ",ace); 96 } 97 throw ace; 98 } 99 } 100 101 105 public LocalAccessController getAccessController() { 106 return accessController; 107 } 108 109 } 110 | Popular Tags |