1 28 package net.sf.jguard.core.authorization.permissions; 29 30 31 import java.io.Serializable ; 32 import java.security.Permission ; 33 import java.security.PermissionCollection ; 34 import java.util.HashSet ; 35 import java.util.Iterator ; 36 import java.util.Set ; 37 38 39 47 public class Domain extends JGPermissionCollection implements Comparable ,Cloneable ,Serializable { 48 49 private static final long serialVersionUID = 178066544850786962L; 50 51 private String name; 52 53 54 public Domain(String domainName){ 55 super(); 56 name = domainName; 57 } 58 public Domain(String domainName,PermissionCollection pcoll){ 59 name = domainName; 60 permissions = new HashSet (); 61 super.addAll(pcoll); 62 } 63 66 public String getName() { 67 return name; 68 } 69 72 public void setName(String domainName) { 73 74 this.name = domainName; 75 } 76 77 82 public boolean equals(Object obj){ 83 Domain domain = (Domain)obj; 84 if(this.name.equals(domain.getName())){ 85 return true; 86 } 87 return false; 88 } 89 90 96 public int hashCode() { 97 return name.toString().hashCode(); 98 } 99 100 101 105 public Object clone()throws CloneNotSupportedException { 106 JGPermissionCollection dom = new Domain(new String (this.name)); 107 Set perms = new HashSet (); 108 Iterator itPermissions = permissions.iterator(); 109 while(itPermissions.hasNext()){ 110 Permission perm = (Permission )itPermissions.next(); 111 String permName = perm.getName(); 112 String permActions = perm.getActions(); 113 Class permClass = perm.getClass(); 114 Permission newPerm; 115 try { 116 newPerm = PermissionUtils.getPermission(permClass.getName(),permName,permActions); 117 } catch (ClassNotFoundException e) { 118 throw new CloneNotSupportedException (e.getMessage()); 119 } 120 perms.add(newPerm); 121 } 122 dom.setPermissions(perms); 123 return dom; 124 } 125 126 131 public int compareTo(Object o) { 132 Domain domain = (Domain)o; 133 return this.name.compareTo(domain.getName()); 134 } 135 136 137 141 public String toString(){ 142 StringBuffer sb = new StringBuffer (); 143 sb.append("\n"); 144 sb.append(" name="+name); 145 sb.append("\n"); 146 sb.append(" permissions=\n"+super.toString()); 147 sb.append("\n"); 148 return sb.toString(); 149 } 150 151 public boolean implies(Permission permission){ 152 Iterator it = permissions.iterator(); 153 Permission p; 154 155 while(it.hasNext()){ 156 p = (Permission ) it.next(); 157 if (p.implies(permission)) { 158 return true; 159 } 160 } 161 return false; 162 } 163 164 } 165 | Popular Tags |