/** * Return the MBean Names of all authorized roles for this group. */ public String[] getRoles() { Group group = (Group) this.resource; ArrayList<String> results = new ArrayList<String>(); Iterator<Role> roles = group.getRoles(); while (roles.hasNext()) { Role role = null; try { role = roles.next(); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), role); results.add(oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException ("Cannot create object name for role " + role); iae.initCause(e); throw iae; } } return results.toArray(new String[results.size()]); }
/** * Return the MBean Names of all roles assigned to this user. */ public String[] getRoles() { User user = (User) this.resource; ArrayList<String> results = new ArrayList<String>(); Iterator<Role> roles = user.getRoles(); while (roles.hasNext()) { Role role = null; try { role = roles.next(); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), role); results.add(oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException ("Cannot create object name for role " + role); iae.initCause(e); throw iae; } } return results.toArray(new String[results.size()]); }
/** * Create a new Role and return the corresponding MBean Name. * * @param rolename Group name of the new group * @param description Description of the new group */ public String createRole(String rolename, String description) { UserDatabase database = (UserDatabase) this.resource; Role role = database.createRole(rolename, description); try { MBeanUtils.createMBean(role); } catch (Exception e) { IllegalArgumentException iae = new IllegalArgumentException ("Exception creating role [" + rolename + "] MBean"); iae.initCause(e); throw iae; } return (findRole(rolename)); }
/** * Return the MBean Name for the specified role name (if any); * otherwise return <code>null</code>. * * @param rolename Role name to look up */ public String findRole(String rolename) { UserDatabase database = (UserDatabase) this.resource; Role role = database.findRole(rolename); if (role == null) { return (null); } try { ObjectName oname = MBeanUtils.createObjectName(managedRole.getDomain(), role); return (oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException ("Cannot create object name for role [" + rolename + "]"); iae.initCause(e); throw iae; } }
/** * Remove an existing role and destroy the corresponding MBean. * * @param rolename Role name to remove */ public void removeRole(String rolename) { UserDatabase database = (UserDatabase) this.resource; Role role = database.findRole(rolename); if (role == null) { return; } try { MBeanUtils.destroyMBean(role); database.removeRole(role); } catch (Exception e) { IllegalArgumentException iae = new IllegalArgumentException ("Exception destroying role [" + rolename + "] MBean"); iae.initCause(e); throw iae; } }
/** * Create, register, and return an MBean for this * <code>Role</code> object. * * @param role The Role to be managed * * @exception Exception if an MBean cannot be created or registered */ static DynamicMBean createMBean(Role role) throws Exception { String mname = createManagedName(role); ManagedBean managed = registry.findManagedBean(mname); if (managed == null) { Exception e = new Exception("ManagedBean is not found with "+mname); throw new MBeanException(e); } String domain = managed.getDomain(); if (domain == null) domain = mserver.getDefaultDomain(); DynamicMBean mbean = managed.createMBean(role); ObjectName oname = createObjectName(domain, role); if( mserver.isRegistered( oname )) { mserver.unregisterMBean(oname); } mserver.registerMBean(mbean, oname); return (mbean); }
/** * Return the MBean Name for the specified role name (if any); otherwise * return <code>null</code>. * * @param rolename * Role name to look up */ public String findRole(String rolename) { UserDatabase database = (UserDatabase) this.resource; Role role = database.findRole(rolename); if (role == null) { return (null); } try { ObjectName oname = MBeanUtils.createObjectName(managedRole.getDomain(), role); return (oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException( "Cannot create object name for role [" + rolename + "]"); iae.initCause(e); throw iae; } }
/** * Create a new Role and return the corresponding MBean Name. * * @param rolename * Group name of the new group * @param description * Description of the new group */ public String createRole(String rolename, String description) { UserDatabase database = (UserDatabase) this.resource; Role role = database.createRole(rolename, description); try { MBeanUtils.createMBean(role); } catch (Exception e) { IllegalArgumentException iae = new IllegalArgumentException( "Exception creating role [" + rolename + "] MBean"); iae.initCause(e); throw iae; } return (findRole(rolename)); }
/** * Create, register, and return an MBean for this <code>Role</code> object. * * @param role * The Role to be managed * * @exception Exception * if an MBean cannot be created or registered */ static DynamicMBean createMBean(Role role) throws Exception { String mname = createManagedName(role); ManagedBean managed = registry.findManagedBean(mname); if (managed == null) { Exception e = new Exception("ManagedBean is not found with " + mname); throw new MBeanException(e); } String domain = managed.getDomain(); if (domain == null) domain = mserver.getDefaultDomain(); DynamicMBean mbean = managed.createMBean(role); ObjectName oname = createObjectName(domain, role); if (mserver.isRegistered(oname)) { mserver.unregisterMBean(oname); } mserver.registerMBean(mbean, oname); return (mbean); }
/** * Return the MBean Name for the specified role name (if any); * otherwise return <code>null</code>. * * @param rolename Role name to look up */ public String findRole(String rolename) { UserDatabase database = (UserDatabase) this.resource; Role role = database.findRole(rolename); if (role == null) { return (null); } try { ObjectName oname = MBeanUtils.createObjectName(managedRole.getDomain(), role); return (oname.toString()); } catch (MalformedObjectNameException e) { throw new IllegalArgumentException ("Cannot create object name for role " + role); } }
/** * Remove an existing role and destroy the corresponding MBean. * * @param rolename Role name to remove */ public void removeRole(String rolename) { UserDatabase database = (UserDatabase) this.resource; Role role = database.findRole(rolename); if (role == null) { return; } try { MBeanUtils.destroyMBean(role); database.removeRole(role); } catch (Exception e) { throw new IllegalArgumentException("Exception destroying role " + role + " MBean: " + e); } }
/** * Deregister the MBean for this * <code>Role</code> object. * * @param role The Role to be managed * * @exception Exception if an MBean cannot be deregistered */ public static void destroyMBean(Role role) throws Exception { String mname = createManagedName(role); ManagedBean managed = registry.findManagedBean(mname); if (managed == null) { return; } String domain = managed.getDomain(); if (domain == null) domain = mserver.getDefaultDomain(); ObjectName oname = createObjectName(domain, role); mserver.unregisterMBean(oname); }
/** * Remove the specified {@link Role} from this user database. * * @param role The role to be removed */ public void removeRole(Role role) { synchronized (roles) { Iterator groups = getGroups(); while (groups.hasNext()) { Group group = (Group) groups.next(); group.removeRole(role); } Iterator users = getUsers(); while (users.hasNext()) { User user = (User) users.next(); user.removeRole(role); } roles.remove(role.getRolename()); } }
/** * Return the MBean Names of all roles assigned to this user. */ public String[] getRoles() { User user = (User) this.resource; ArrayList<String> results = new ArrayList<String>(); Iterator<Role> roles = user.getRoles(); while (roles.hasNext()) { Role role = null; try { role = roles.next(); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), role); results.add(oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException( "Cannot create object name for role " + role); iae.initCause(e); throw iae; } } return results.toArray(new String[results.size()]); }
/** * Deregister the MBean for this * <code>Role</code> object. * * @param role The Role to be managed * * @exception Exception if an MBean cannot be deregistered */ static void destroyMBean(Role role) throws Exception { String mname = createManagedName(role); ManagedBean managed = registry.findManagedBean(mname); if (managed == null) { return; } String domain = managed.getDomain(); if (domain == null) domain = mserver.getDefaultDomain(); ObjectName oname = createObjectName(domain, role); if( mserver.isRegistered(oname) ) mserver.unregisterMBean(oname); }
/** * Return the MBean Names of all authorized roles for this group. */ public String[] getRoles() { Group group = (Group) this.resource; ArrayList<String> results = new ArrayList<String>(); Iterator<Role> roles = group.getRoles(); while (roles.hasNext()) { Role role = null; try { role = roles.next(); ObjectName oname = MBeanUtils.createObjectName(managed.getDomain(), role); results.add(oname.toString()); } catch (MalformedObjectNameException e) { IllegalArgumentException iae = new IllegalArgumentException( "Cannot create object name for role " + role); iae.initCause(e); throw iae; } } return results.toArray(new String[results.size()]); }
/** * Remove the specified {@link Role} from this user database. * * @param role The role to be removed */ @Override public void removeRole(Role role) { synchronized (roles) { Iterator<Group> groups = getGroups(); while (groups.hasNext()) { Group group = groups.next(); group.removeRole(role); } Iterator<User> users = getUsers(); while (users.hasNext()) { User user = users.next(); user.removeRole(role); } roles.remove(role.getRolename()); } }
/** * Create and return a new {@link Role} defined in this user database. * * @param rolename * The role name of the new group (must be unique) * @param description * The description of this group */ @Override public Role createRole(String rolename, String description) { if (rolename == null || rolename.length() == 0) { String msg = sm.getString("memoryUserDatabase.nullRole"); log.warn(msg); throw new IllegalArgumentException(msg); } MemoryRole role = new MemoryRole(this, rolename, description); synchronized (roles) { roles.put(role.getRolename(), role); } return (role); }
/** * Add a new {@link Role} to those this group belongs to. * * @param rolename Role name of the new role */ public void addRole(String rolename) { Group group = (Group) this.resource; if (group == null) { return; } Role role = group.getUserDatabase().findRole(rolename); if (role == null) { throw new IllegalArgumentException ("Invalid role name '" + rolename + "'"); } group.addRole(role); }
/** * Remove a {@link Role} from those this group belongs to. * * @param rolename Role name of the old role */ public void removeRole(String rolename) { Group group = (Group) this.resource; if (group == null) { return; } Role role = group.getUserDatabase().findRole(rolename); if (role == null) { throw new IllegalArgumentException ("Invalid role name '" + rolename + "'"); } group.removeRole(role); }
/** * Add a new {@link Role} to those this user belongs to. * * @param rolename Role name of the new role */ public void addRole(String rolename) { User user = (User) this.resource; if (user == null) { return; } Role role = user.getUserDatabase().findRole(rolename); if (role == null) { throw new IllegalArgumentException ("Invalid role name '" + rolename + "'"); } user.addRole(role); }
/** * Remove a {@link Role} from those this user belongs to. * * @param rolename Role name of the old role */ public void removeRole(String rolename) { User user = (User) this.resource; if (user == null) { return; } Role role = user.getUserDatabase().findRole(rolename); if (role == null) { throw new IllegalArgumentException ("Invalid role name '" + rolename + "'"); } user.removeRole(role); }
/** * Return the MBean Names of all roles defined in this database. */ public String[] getRoles() { UserDatabase database = (UserDatabase) this.resource; ArrayList<String> results = new ArrayList<String>(); Iterator<Role> roles = database.getRoles(); while (roles.hasNext()) { Role role = roles.next(); results.add(findRole(role.getRolename())); } return results.toArray(new String[results.size()]); }
/** * Return the set of {@link Role}s assigned specifically to this group. */ @Override public Iterator<Role> getRoles() { synchronized (roles) { return (roles.iterator()); } }
/** * Is this group specifically assigned the specified {@link Role}? * * @param role The role to check */ @Override public boolean isInRole(Role role) { synchronized (roles) { return (roles.contains(role)); } }
@Override public Object createObject(Attributes attributes) { String groupname = attributes.getValue("groupname"); if (groupname == null) { groupname = attributes.getValue("name"); } String description = attributes.getValue("description"); String roles = attributes.getValue("roles"); Group group = database.createGroup(groupname, description); if (roles != null) { while (roles.length() > 0) { String rolename = null; int comma = roles.indexOf(','); if (comma >= 0) { rolename = roles.substring(0, comma).trim(); roles = roles.substring(comma + 1); } else { rolename = roles.trim(); roles = ""; } if (rolename.length() > 0) { Role role = database.findRole(rolename); if (role == null) { role = database.createRole(rolename, null); } group.addRole(role); } } } return (group); }
/** * <p>Return a String representation of this group in XML format.</p> */ @Override public String toString() { StringBuilder sb = new StringBuilder("<group groupname=\""); sb.append(groupname); sb.append("\""); if (description != null) { sb.append(" description=\""); sb.append(description); sb.append("\""); } synchronized (roles) { if (roles.size() > 0) { sb.append(" roles=\""); int n = 0; Iterator<Role> values = roles.iterator(); while (values.hasNext()) { if (n > 0) { sb.append(','); } n++; sb.append((values.next()).getRolename()); } sb.append("\""); } } sb.append("/>"); return (sb.toString()); }
/** * Return the set of {@link Role}s assigned specifically to this user. */ @Override public Iterator<Role> getRoles() { synchronized (roles) { return (roles.iterator()); } }
/** * Add a new {@link Role} to those assigned specifically to this user. * * @param role The new role */ @Override public void addRole(Role role) { synchronized (roles) { if (!roles.contains(role)) { roles.add(role); } } }
/** * Is this user specifically assigned the specified {@link Role}? This * method does <strong>NOT</strong> check for roles inherited based on * {@link Group} membership. * * @param role The role to check */ @Override public boolean isInRole(Role role) { synchronized (roles) { return (roles.contains(role)); } }
/** * Return the set of {@link Role}s defined in this user database. */ @Override public Iterator<Role> getRoles() { synchronized (roles) { return (roles.values().iterator()); } }
/** * Is this group specifically assigned the specified {@link Role}? * * @param role * The role to check */ @Override public boolean isInRole(Role role) { synchronized (roles) { return (roles.contains(role)); } }
/** * Is this user specifically assigned the specified {@link Role}? This * method does <strong>NOT</strong> check for roles inherited based on * {@link Group} membership. * * @param role * The role to check */ @Override public boolean isInRole(Role role) { synchronized (roles) { return (roles.contains(role)); } }
/** * Remove a {@link Role} from those assigned to this user. * * @param role * The old role */ @Override public void removeRole(Role role) { synchronized (roles) { roles.remove(role); } }