private AclEntryImpl (AclEntryImpl i) throws UnknownHostException { setPrincipal(i.getPrincipal()); permList = new Vector<Permission>(); commList = new Vector<String>(); for (Enumeration<String> en = i.communities(); en.hasMoreElements();){ addCommunity(en.nextElement()); } for (Enumeration<Permission> en = i.permissions(); en.hasMoreElements();){ addPermission(en.nextElement()); } if (i.isNegative()) setNegativePermissions(); }
/** * Contructs an empty ACL entry. */ public AclEntryImpl (){ princ = null; permList = new Vector<Permission>(); commList = new Vector<String>(); }
/** * Constructs an ACL entry with a specified principal. * * @param p the principal to be set for this entry. */ public AclEntryImpl (Principal p) throws UnknownHostException { princ = p; permList = new Vector<Permission>(); commList = new Vector<String>(); }
/** * Returns an enumeration for the set of allowed permissions for * the specified principal * (representing an entity such as an individual or a group). * This set of allowed permissions is calculated as follows: * <UL> * <LI>If there is no entry in this Access Control List for the specified * principal, an empty permission set is returned.</LI> * <LI>Otherwise, the principal's group permission sets are determined. * (A principal can belong to one or more groups, where a group is a group * of principals, represented by the Group interface.)</LI> * </UL> * @param user the principal whose permission set is to be returned. * @return the permission set specifying the permissions the principal * is allowed. * @see java.security.Principal */ @Override public Enumeration<Permission> getPermissions(Principal user){ Vector<Permission> empty = new Vector<>(); for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){ AclEntry ent = e.nextElement(); if (ent.getPrincipal().equals(user)) return ent.permissions(); } return empty.elements(); }
/** * Checks whether or not the specified principal has the specified * permission. * If it does, true is returned, otherwise false is returned. * More specifically, this method checks whether the passed permission * is a member of the allowed permission set of the specified principal. * The allowed permission set is determined by the same algorithm as is * used by the getPermissions method. * * @param user the principal, assumed to be a valid authenticated Principal. * @param perm the permission to be checked for. * @return true if the principal has the specified permission, * false otherwise. * @see java.security.Principal * @see java.security.Permission */ @Override public boolean checkPermission(Principal user, java.security.acl.Permission perm) { for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){ AclEntry ent = e.nextElement(); if (ent.getPrincipal().equals(user)) if (ent.checkPermission(perm)) return true; } return false; }
/** * Checks whether or not the specified principal has the specified * permission. * If it does, true is returned, otherwise false is returned. * More specifically, this method checks whether the passed permission * is a member of the allowed permission set of the specified principal. * The allowed permission set is determined by the same algorithm as is * used by the getPermissions method. * * @param user the principal, assumed to be a valid authenticated Principal. * @param community the community name associated with the principal. * @param perm the permission to be checked for. * @return true if the principal has the specified permission, false * otherwise. * @see java.security.Principal * @see java.security.Permission */ public boolean checkPermission(Principal user, String community, java.security.acl.Permission perm) { for (Enumeration<AclEntry> e = entryList.elements();e.hasMoreElements();){ AclEntryImpl ent = (AclEntryImpl) e.nextElement(); if (ent.getPrincipal().equals(user)) if (ent.checkPermission(perm) && ent.checkCommunity(community)) return true; } return false; }