Java/Security/Permission

Материал из Java эксперт
Перейти к: навигация, поиск

boolean Permission.implies(Permission permission)

   <source lang="java">
 

import java.io.Serializable; import java.security.BasicPermission; import java.security.Permission; class IDPermission extends BasicPermission implements Serializable {

 String id = null;
 public IDPermission(String id) {
   super(id);
   this.id = id;
 }
 public boolean implies(Permission permission) {
   IDPermission bp = (IDPermission) permission;
   return id.equals(bp.id); 
 }
 public String getActions() {
   return "";
 }
 public int hashCode() {
   return id.hashCode();
 }
 public boolean equals(Object obj) {
   if (!(obj instanceof IDPermission)) {
     return false;
   }
   IDPermission bp = (IDPermission) obj;
   return id.equals(bp.id);
 }

} public class Main {

 public static void main(String[] argv) throws Exception {
   Permission p1 = new IDPermission("1");
   Permission p2 = new IDPermission("2");
   boolean b = p1.implies(p2); 
   p2 = new IDPermission("3");
   b = p1.implies(p2); 
   p2 = new IDPermission("4");
   b = p1.implies(p2); 
   p2 = new IDPermission("5");
   b = p1.implies(p2);
   p2 = new IDPermission("6");
   b = p1.implies(p2); 
 }

}


 </source>
   
  
 
  



Checking Read/Write Permission for a Directory

   <source lang="java">
 

import java.io.FilePermission; import java.security.AccessController; public class Main {

 public static void main(String[] argv) throws Exception {
   AccessController.checkPermission(new FilePermission("/tmp/*", "read,write"));
 }

}


 </source>
   
  
 
  



Controlling Access to an Object using a permission

   <source lang="java">
 

import java.security.AccessControlException; import java.security.Guard; import java.security.GuardedObject; import java.util.PropertyPermission; public class Main {

 public static void main(String[] argv) throws Exception {
   String secretObj = "secret";
   Guard guard = new PropertyPermission("java.home", "read");
   GuardedObject gobj = new GuardedObject(secretObj, guard);
   try {
     Object o = gobj.getObject();
   } catch (AccessControlException e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



Creating a Custom Permission

   <source lang="java">
 

import java.io.Serializable; import java.security.BasicPermission; import java.security.Permission; class IDPermission extends BasicPermission implements Serializable {

 String id = null;
 public IDPermission(String id) {
   super(id);
   this.id = id;
 }
 public boolean implies(Permission permission) {
   IDPermission bp = (IDPermission) permission;
   return id.equals(bp.id); 
 }
 public String getActions() {
   return "";
 }
 public int hashCode() {
   return id.hashCode();
 }
 public boolean equals(Object obj) {
   if (!(obj instanceof IDPermission)) {
     return false;
   }
   IDPermission bp = (IDPermission) obj;
   return id.equals(bp.id);
 }

} public class Main {

 public static void main(String[] argv) throws Exception {
   Permission p1 = new IDPermission("1");
   Permission p2 = new IDPermission("2");
   boolean b = p1.implies(p2); 
   p2 = new IDPermission("3");
   b = p1.implies(p2); 
   p2 = new IDPermission("4");
   b = p1.implies(p2); 
   p2 = new IDPermission("5");
   b = p1.implies(p2);
   p2 = new IDPermission("6");
   b = p1.implies(p2); 
 }

}


 </source>
   
  
 
  



Determining If One Permission Implies Another

   <source lang="java">
 

import java.io.FilePermission; import java.security.Permission; public class Main {

 public static void main(String[] argv) throws Exception {
   Permission perm1 = new FilePermission("/tmp/*", "read,write");
   Permission perm2 = new FilePermission("/tmp/abc", "read");
   if (perm1.implies(perm2)) {
     System.out.println("perm1 implies perm2"); 
   }
 }

}


 </source>
   
  
 
  



extends BasicPermission

   <source lang="java">
 

import java.io.Serializable; import java.security.BasicPermission; import java.security.Permission; class IDPermission extends BasicPermission implements Serializable {

 String id = null;
 public IDPermission(String id) {
   super(id);
   this.id = id;
 }
 public boolean implies(Permission permission) {
   IDPermission bp = (IDPermission) permission;
   return id.equals(bp.id); 
 }
 public String getActions() {
   return "";
 }
 public int hashCode() {
   return id.hashCode();
 }
 public boolean equals(Object obj) {
   if (!(obj instanceof IDPermission)) {
     return false;
   }
   IDPermission bp = (IDPermission) obj;
   return id.equals(bp.id);
 }

} public class Main {

 public static void main(String[] argv) throws Exception {
   Permission p1 = new IDPermission("1");
   Permission p2 = new IDPermission("2");
   boolean b = p1.implies(p2); 
   p2 = new IDPermission("3");
   b = p1.implies(p2); 
   p2 = new IDPermission("4");
   b = p1.implies(p2); 
   p2 = new IDPermission("5");
   b = p1.implies(p2);
   p2 = new IDPermission("6");
   b = p1.implies(p2); 
 }

}


 </source>
   
  
 
  



Guard guard = new PropertyPermission("java.home", "read");

   <source lang="java">
 

import java.security.AccessControlException; import java.security.Guard; import java.security.GuardedObject; import java.util.PropertyPermission; public class Main {

 public static void main(String[] argv) throws Exception {
   String secretObj = "secret";
   Guard guard = new PropertyPermission("java.home", "read");
   GuardedObject gobj = new GuardedObject(secretObj, guard);
   try {
     Object o = gobj.getObject();
   } catch (AccessControlException e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



Listing All Permissions Granted to a Loaded Class

   <source lang="java">
 

import java.security.Permission; import java.security.PermissionCollection; import java.security.Policy; import java.security.ProtectionDomain; import java.util.Enumeration; public class Main {

 public static void main(String[] argv) throws Exception {
   ProtectionDomain domain = String.class.getProtectionDomain();
   PermissionCollection pcoll = Policy.getPolicy().getPermissions(domain);
   Enumeration e = pcoll.elements();
   for (; e.hasMoreElements();) {
     Permission p = (Permission) e.nextElement();
   }
 }

}


 </source>
   
  
 
  



new GuardedObject(Object obj, Guard)

   <source lang="java">
 

import java.security.AccessControlException; import java.security.Guard; import java.security.GuardedObject; import java.util.PropertyPermission; public class Main {

 public static void main(String[] argv) throws Exception {
   String secretObj = "secret";
   Guard guard = new PropertyPermission("java.home", "read");
   GuardedObject gobj = new GuardedObject(secretObj, guard);
   try {
     Object o = gobj.getObject();
   } catch (AccessControlException e) {
     e.printStackTrace();
   }
 }

}


 </source>
   
  
 
  



Object GuardedObject.getObject()

   <source lang="java">
 

import java.security.AccessControlException; import java.security.Guard; import java.security.GuardedObject; import java.util.PropertyPermission; public class Main {

 public static void main(String[] argv) throws Exception {
   String secretObj = "secret";
   Guard guard = new PropertyPermission("java.home", "read");
   GuardedObject gobj = new GuardedObject(secretObj, guard);
   try {
     Object o = gobj.getObject();
   } catch (AccessControlException e) {
     e.printStackTrace();
   }
 }

}


 </source>