Example usage for org.apache.shiro.authz SimpleRole getPermissions

List of usage examples for org.apache.shiro.authz SimpleRole getPermissions

Introduction

In this page you can find the example usage for org.apache.shiro.authz SimpleRole getPermissions.

Prototype

public Set<Permission> getPermissions() 

Source Link

Usage

From source file:com.freedomotic.persistence.RoleConverter.java

License:Open Source License

/**
 *
 * @param o//from   w w  w.j  a v a2  s  . c  om
 * @param writer
 * @param mc
 */
@Override
public void marshal(Object o, HierarchicalStreamWriter writer, MarshallingContext mc) {

    SimpleRole r = (SimpleRole) o;

    writer.addAttribute("name", r.getName());
    writer.startNode("permissions");
    for (Permission p : r.getPermissions()) {
        WildcardPermission wp = (WildcardPermission) p;
        writer.startNode("permission");
        writer.setValue(wp.toString().replace("[", "").replace("]", "").replace(" ", ""));
        writer.endNode();
    }
    writer.endNode();

}

From source file:com.freedomotic.plugins.devices.restapiv3.representations.RoleRepresentation.java

License:Open Source License

public RoleRepresentation(SimpleRole sr) {
    this.name = sr.getName();
    for (Permission p : sr.getPermissions()) {
        this.permissions.add(p.toString().replace("[", "").replace("]", "").replace(" ", ""));
    }/*from   w  ww  . j a  v a2s . c  o m*/
}

From source file:com.freedomotic.plugins.devices.restapiv3.resources.jersey.RoleResource.java

License:Open Source License

@Override
protected URI doCopy(String UUID) {
    SimpleRole sr = api.getAuth().getRole(UUID);
    if (sr != null) {
        SimpleRole s2 = new SimpleRole("CopyOf-" + sr.getName(), sr.getPermissions());
        api.getAuth().addRole(s2);//from   ww  w.  j  a  v a  2 s  .co  m
        return createUri(s2.getName());
    }
    return null;
}

From source file:com.freedomotic.security.User.java

License:Open Source License

@Override
public void setRoles(Set<String> roles) {
    for (String roleName : roles) {
        SimpleRole role = auth.getRole(roleName);
        if (role != null) {
            addObjectPermissions(role.getPermissions());
        }//from   ww w.ja  va  2 s.c o m
    }
    super.setRoles(roles);

}

From source file:com.freedomotic.security.User.java

License:Open Source License

@Override
public void addRole(String roleName) {
    SimpleRole role = auth.getRole(roleName);
    if (role != null) {
        super.addRole(role.getName());
        addObjectPermissions(role.getPermissions());
        LOG.info("Adding role {} to user {}: {}",
                new Object[] { role.getName(), getName(), role.getPermissions() });
    } else {//from w w  w  .jav  a2 s . c  o m
        LOG.error("Cannot find role: {}", roleName);
    }
}

From source file:com.freedomotic.security.UserRealm.java

License:Open Source License

public void removeRole(String roleName) {
    SimpleRole r = getRole(roleName);/* ww  w.  jav  a 2 s  .  c  o m*/
    for (User u : getUsers().values()) {
        u.removeRole(roleName);
        u.setObjectPermissions(null);
        for (String rs : u.getRoles()) {
            SimpleRole nr = getRole(rs);
            u.addObjectPermissions(nr.getPermissions());
        }
    }
    getRoles().remove(roleName);
}

From source file:org.mobicents.servlet.restcomm.entities.shiro.Realm.java

License:Open Source License

@Override
protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principals) {
    final Sid sid = new Sid((String) principals.getPrimaryPrincipal());
    final ShiroResources services = ShiroResources.getInstance();
    final DaoManager daos = services.get(DaoManager.class);
    final AccountsDao accounts = daos.getAccountsDao();
    final Account account = accounts.getAccount(sid);
    final String roleName = account.getRole();
    final Set<String> set = new HashSet<String>();
    set.add(roleName);/*from   w  w w  . j  ava  2s  .c  o m*/
    final SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(set);
    final SimpleRole role = getRole(roleName);
    if (role != null) {
        authorizationInfo.setObjectPermissions(role.getPermissions());
    }
    return authorizationInfo;
}

From source file:org.mobicents.servlet.restcomm.http.SecuredEndpoint.java

License:Open Source License

/**
 * Low level permission checking. roleNames are checked for neededPermissionString permission using permission
 * mappings contained in restcomm.xml. The permission mappings are stored in RestcommRoles.
 *
 * Note: Administrator is granted access with eyes closed
        /*from  ww  w .j  a  va2 s.c  o  m*/
 * @param neededPermissionString
 * @param roleNames
 * @return
 */
private AuthOutcome checkPermission(String neededPermissionString, Set<String> roleNames) {
    // if this is an administrator ask no more questions
    if (roleNames.contains(getAdministratorRole()))
        return AuthOutcome.OK;

    // normalize the permission string
    //neededPermissionString = "domain:" + neededPermissionString;

    WildcardPermissionResolver resolver = new WildcardPermissionResolver();
    Permission neededPermission = resolver.resolvePermission(neededPermissionString);

    // check the neededPermission against all roles of the user
    RestcommRoles restcommRoles = identityContext.getRestcommRoles();
    for (String roleName : roleNames) {
        SimpleRole simpleRole = restcommRoles.getRole(roleName);
        if (simpleRole == null) {
            return AuthOutcome.FAILED;
        } else {
            Set<Permission> permissions = simpleRole.getPermissions();
            // check the permissions one by one
            for (Permission permission : permissions) {
                if (permission.implies(neededPermission)) {
                    if (logger.isDebugEnabled()) {
                        logger.debug("Granted access by permission " + permission.toString());
                    }
                    return AuthOutcome.OK;
                }
            }
            if (logger.isDebugEnabled()) {
                logger.debug("Role " + roleName + " does not allow " + neededPermissionString);
            }
        }
    }
    return AuthOutcome.FAILED;
}

From source file:org.mobicents.servlet.restcomm.identity.shiro.RestcommRoles.java

License:Open Source License

@Override
public String toString() {
    if (roles == null || roles.size() == 0)
        return "no roles defined";
    else {/*  ww  w .j  a  va 2 s  .  c  o  m*/
        StringBuffer buffer = new StringBuffer();
        for (String role : roles.keySet()) {
            buffer.append(role);
            SimpleRole simpleRole = roles.get(role);
            Set<Permission> permissions = simpleRole.getPermissions();
            buffer.append("[");
            for (Permission permission : permissions) {
                buffer.append(permission.toString());
                buffer.append(",");
            }
            buffer.append("]");
        }
        return buffer.toString();
    }
}

From source file:org.mobicents.servlet.sip.restcomm.http.security.Realm.java

License:Open Source License

@Override
protected AuthorizationInfo doGetAuthorizationInfo(final PrincipalCollection principals) {
    final Sid sid = new Sid((String) principals.getPrimaryPrincipal());
    final ServiceLocator services = ServiceLocator.getInstance();
    final DaoManager daos = services.get(DaoManager.class);
    final AccountsDao accounts = daos.getAccountsDao();
    final Account account = accounts.getAccount(sid);
    final String roleName = account.getRole();
    final Set<String> set = new HashSet<String>();
    set.add(roleName);/*w w  w  .  jav  a  2  s .  c  o m*/
    final SimpleAuthorizationInfo authorizationInfo = new SimpleAuthorizationInfo(set);
    final SimpleRole role = getRole(roleName);
    if (role != null) {
        authorizationInfo.setObjectPermissions(role.getPermissions());
    }
    return authorizationInfo;
}