Search in sources :

Example 51 with Group

use of org.osgi.service.useradmin.Group in project felix by apache.

the class UserAdminImplTest method testUserAnyoneIsNotPartOfAuthorizedRolesOk.

/**
 * Tests that the list of roles in an {@link Authorization} does not contain the any-user, although it is defined as group member.
 */
public void testUserAnyoneIsNotPartOfAuthorizedRolesOk() {
    Role userAnyone = m_userAdmin.getRole(Role.USER_ANYONE);
    User user1 = (User) m_userAdmin.createRole("user1", Role.USER);
    Group group1 = (Group) m_userAdmin.createRole("group1", Role.GROUP);
    assertTrue(group1.addRequiredMember(user1));
    assertTrue(group1.addMember(userAnyone));
    Authorization auth = m_userAdmin.getAuthorization(user1);
    assertNotNull(auth);
    assertTrue(auth.hasRole("group1"));
    String[] roles = auth.getRoles();
    assertNotNull(roles);
    for (int i = 0; i < roles.length; i++) {
        assertFalse(Role.USER_ANYONE.equals(roles[i]));
    }
}
Also used : Role(org.osgi.service.useradmin.Role) Authorization(org.osgi.service.useradmin.Authorization) Group(org.osgi.service.useradmin.Group) User(org.osgi.service.useradmin.User)

Example 52 with Group

use of org.osgi.service.useradmin.Group in project felix by apache.

the class UserAdminImplTest method testAddRequiredGroupMemberOk.

/**
 * Tests that adding a required member to a group works.
 */
public void testAddRequiredGroupMemberOk() {
    User user1 = (User) m_userAdmin.createRole("user1", Role.USER);
    Group group1 = (Group) m_userAdmin.createRole("group1", Role.GROUP);
    assertTrue(group1.addRequiredMember(user1));
    assertFalse(group1.addRequiredMember(user1));
}
Also used : Group(org.osgi.service.useradmin.Group) User(org.osgi.service.useradmin.User)

Example 53 with Group

use of org.osgi.service.useradmin.Group in project felix by apache.

the class WebConsolePlugin method doPost.

@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    // $NON-NLS-1$
    resp.setContentType("application/json");
    // $NON-NLS-1$
    resp.setCharacterEncoding("UTF-8");
    final PrintWriter out = resp.getWriter();
    final JSONWriter jw = new JSONWriter(out);
    // $NON-NLS-1$
    final String action = req.getParameter("action");
    // $NON-NLS-1$
    final String role = req.getParameter("role");
    // $NON-NLS-1$
    final String group = req.getParameter("group");
    try {
        if ("addMember".equals(action)) {
            // $NON-NLS-1$
            final Role xrole = userAdmin.getRole(role);
            final Group xgroup = (Group) userAdmin.getRole(group);
            xgroup.addMember(xrole);
            toJSON(jw, xgroup, false);
        } else if ("addRequiredMember".equals(action)) {
            // $NON-NLS-1$
            final Role xrole = userAdmin.getRole(role);
            final Group xgroup = (Group) userAdmin.getRole(group);
            xgroup.addRequiredMember(xrole);
            toJSON(jw, xgroup, false);
        } else if ("removeMember".equals(action)) {
            // $NON-NLS-1$
            final Role xrole = userAdmin.getRole(role);
            final Group xgroup = (Group) userAdmin.getRole(group);
            xgroup.removeMember(xrole);
            toJSON(jw, xgroup, false);
        } else if ("toggleMembership".equals(action)) {
            // $NON-NLS-1$
            final Role xrole = userAdmin.getRole(role);
            final Group xgroup = (Group) userAdmin.getRole(group);
            if (// if required
            contains(xgroup.getRequiredMembers(), xrole)) {
                xgroup.removeMember(xrole);
                // add as basic
                xgroup.addMember(xrole);
            } else {
                xgroup.removeMember(xrole);
                // add as required
                xgroup.addRequiredMember(xrole);
            }
            toJSON(jw, xgroup, false);
        } else if ("getDigestAlgorithms".equals(action)) {
            // $NON-NLS-1$
            getMessageDigestAlgorithms(jw);
        } else if ("digest".equals(action)) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            final String dataRaw = req.getParameter("data");
            // $NON-NLS-1$
            final String algorithm = req.getParameter("algorithm");
            final MessageDigest digest = MessageDigest.getInstance(algorithm);
            final byte[] encoded = digest.digest(dataRaw.getBytes());
            jw.object();
            // $NON-NLS-1$
            jw.key("encoded");
            jw.value(encoded);
            jw.endObject();
        } else if ("del".equals(action)) {
            // $NON-NLS-1$
            out.print(userAdmin.removeRole(role));
        } else if ("get".equals(action)) {
            // $NON-NLS-1$
            final Role xrole = userAdmin.getRole(role);
            toJSON(jw, xrole, true);
        } else if ("set".equals(action)) {
            // $NON-NLS-1$
            // $NON-NLS-1$
            final String dataRaw = req.getParameter("data");
            JSONParser parser = new JSONParser(dataRaw);
            final Map<String, Object> data = parser.getParsed();
            // $NON-NLS-1$
            Role xrole = userAdmin.getRole((String) data.get("name"));
            if (null == xrole) {
                xrole = // 
                userAdmin.createRole(// $NON-NLS-1$
                (String) data.get("name"), // $NON-NLS-1$
                (int) (long) (Long) data.get("type"));
            }
            doSetData(xrole, data);
            out.print(true);
        } else // list all roles without details
        {
            Role[] roles = userAdmin.getRoles(null);
            toJSON(jw, roles, false);
        }
        jw.flush();
    } catch (Exception e) {
        throw new ServletException(e);
    }
}
Also used : JSONWriter(org.apache.felix.utils.json.JSONWriter) Group(org.osgi.service.useradmin.Group) ServletException(javax.servlet.ServletException) IOException(java.io.IOException) Role(org.osgi.service.useradmin.Role) ServletException(javax.servlet.ServletException) JSONParser(org.apache.felix.utils.json.JSONParser) MessageDigest(java.security.MessageDigest) PrintWriter(java.io.PrintWriter)

Example 54 with Group

use of org.osgi.service.useradmin.Group in project felix by apache.

the class UserManager method addMember.

public boolean addMember(String groupname, String rolename) {
    try {
        Role group = ac.getUserAdmin().getRole(groupname);
        Role role = ac.getUserAdmin().getRole(rolename);
        if (!(group.getType() == Role.GROUP))
            return false;
        return ((Group) group).addMember(role);
    } catch (NullPointerException npe) {
        ac.debug("UserAdmin not available. ");
        return false;
    }
}
Also used : Role(org.osgi.service.useradmin.Role) Group(org.osgi.service.useradmin.Group)

Example 55 with Group

use of org.osgi.service.useradmin.Group in project felix by apache.

the class UserManager method addRequiredMember.

public boolean addRequiredMember(String groupname, String rolename) {
    try {
        Role group = ac.getUserAdmin().getRole(groupname);
        Role role = ac.getUserAdmin().getRole(rolename);
        if (!(group.getType() == Role.GROUP))
            return false;
        return ((Group) group).addRequiredMember(role);
    } catch (NullPointerException npe) {
        ac.debug("UserAdmin not available. ");
        return false;
    }
}
Also used : Role(org.osgi.service.useradmin.Role) Group(org.osgi.service.useradmin.Group)

Aggregations

Group (org.osgi.service.useradmin.Group)63 User (org.osgi.service.useradmin.User)32 Role (org.osgi.service.useradmin.Role)29 Test (org.junit.Test)11 IOException (java.io.IOException)8 CountDownLatch (java.util.concurrent.CountDownLatch)7 Authorization (org.osgi.service.useradmin.Authorization)5 Bundle (org.osgi.framework.Bundle)3 UserAdmin (org.osgi.service.useradmin.UserAdmin)3 BasicDBObject (com.mongodb.BasicDBObject)2 GroupData (org.apache.aries.jmx.codec.GroupData)2 PrintWriter (java.io.PrintWriter)1 MessageDigest (java.security.MessageDigest)1 ArrayList (java.util.ArrayList)1 Dictionary (java.util.Dictionary)1 Iterator (java.util.Iterator)1 List (java.util.List)1 CompositeData (javax.management.openmbean.CompositeData)1 ServletException (javax.servlet.ServletException)1 BackendException (org.apache.felix.useradmin.BackendException)1