Example usage for org.apache.cassandra.exceptions UnauthorizedException UnauthorizedException

List of usage examples for org.apache.cassandra.exceptions UnauthorizedException UnauthorizedException

Introduction

In this page you can find the example usage for org.apache.cassandra.exceptions UnauthorizedException UnauthorizedException.

Prototype

public UnauthorizedException(String msg) 

Source Link

Usage

From source file:org.wso2.carbon.cassandra.mgt.CassandraKeyspaceAdmin.java

License:Apache License

/**
 * Set permissions for a resource/* w  w  w.j a  v  a  2  s  . c o  m*/
 *
 * @param infoList AuthorizedRolesInformation List
 * @return true if the sharing would be successful.
 * @throws CassandraServerManagementException
 *          For any errors
 */
public boolean authorizeRolesForResource(AuthorizedRolesInformation[] infoList)
        throws CassandraServerManagementException {

    CassandraAdminDataHolder dataHolder = CassandraAdminDataHolder.getInstance();
    UserRealm userRealm = dataHolder.getRealmForCurrentTenant();
    AuthorizationManager authorizationManager = null;
    try {
        authorizationManager = userRealm.getAuthorizationManager();
    } catch (UserStoreException e) {
        throw new CassandraServerManagementException("Error getting Authorization Manager.", e);
    }
    for (AuthorizedRolesInformation info : infoList) {
        String path = info.getResource();
        String permission = info.getPermission();
        String user = CarbonContext.getThreadLocalCarbonContext().getUsername();
        String tenantLessUsername = MultitenantUtils.getTenantAwareUsername(user);
        try {
            if (!authorizationManager.isUserAuthorized(tenantLessUsername, path, Action.ACTION_AUTHORIZE)) {
                throw new CassandraServerManagementException("You are not authorized to alter permissions.",
                        new UnauthorizedException("You are not authorized to alter permissions. Resource : "
                                + path.substring(path.lastIndexOf("/"), path.length())));
            }
        } catch (UserStoreException e) {
            throw new CassandraServerManagementException("Authorization permission check failed.", e);
        }
        for (String role : info.getAuthorizedRoles()) {
            if (role == null || "".equals(role.trim())) {
                throw new CassandraServerManagementException("Role is null or empty");
            }
            role = role.trim();

            if (path == null || "".equals(path.trim())) {
                throw new CassandraServerManagementException("Resource path is null or empty");
            }
            path = path.trim();

            try {
                authorizationManager.clearRoleAuthorization(role, path, permission);
                authorizationManager.authorizeRole(role, path, permission);
            } catch (UserStoreException e) {
                throw new CassandraServerManagementException(
                        "Error during setting permissions on resource at path :" + path + " and" + " for role :"
                                + role,
                        e);
            }
        }
    }
    return true;
}

From source file:org.wso2.carbon.cassandra.mgt.CassandraKeyspaceAdmin.java

License:Apache License

/**
 * Clear permissions for a resource from a set of roles
 *
 * @param infoList AuthorizedRolesInformation List
 * @return true if the sharing would be successful.
 * @throws CassandraServerManagementException
 *          For any errors//w  w  w  .j  ava  2 s .c  o  m
 */
public boolean clearResourcePermissions(AuthorizedRolesInformation[] infoList)
        throws CassandraServerManagementException {
    CassandraAdminDataHolder dataHolder = CassandraAdminDataHolder.getInstance();
    UserRealm userRealm = dataHolder.getRealmForCurrentTenant();
    AuthorizationManager authorizationManager = null;
    try {
        authorizationManager = userRealm.getAuthorizationManager();
    } catch (UserStoreException e) {
        throw new CassandraServerManagementException("Error getting Authorization Manager.", e);
    }
    for (AuthorizedRolesInformation info : infoList) {
        String path = info.getResource();
        String permission = info.getPermission().toString();
        String user = CarbonContext.getThreadLocalCarbonContext().getUsername();
        String tenantLessUsername = MultitenantUtils.getTenantAwareUsername(user);
        try {
            if (!authorizationManager.isUserAuthorized(tenantLessUsername, path, Action.ACTION_AUTHORIZE)) {
                throw new CassandraServerManagementException("You are not authorized to alter permissions.",
                        new UnauthorizedException("You are not authorized to alter permissions. Resource : "
                                + path.substring(path.lastIndexOf("/"), path.length())));
            }
        } catch (UserStoreException e) {
            throw new CassandraServerManagementException("Authorization permission check failed.", e);
        }
        for (String role : info.getAuthorizedRoles()) {
            if (role == null || "".equals(role.trim())) {
                throw new CassandraServerManagementException("Role is null or empty");
            }
            role = role.trim();

            if (path == null || "".equals(path.trim())) {
                throw new CassandraServerManagementException("Resource path is null or empty");
            }
            path = path.trim();

            try {
                authorizationManager.clearRoleAuthorization(role, path, permission);
            } catch (UserStoreException e) {
                throw new CassandraServerManagementException(
                        "Error during clearing permissions of a resource at path :" + path + " and"
                                + " for role :" + role,
                        e);
            }
        }
    }
    return true;
}

From source file:org.wso2.carbon.cassandra.server.CarbonCassandraAuthenticator.java

License:Apache License

private void logAndUnauthorizedException(String msg) throws RequestValidationException {
    log.error(msg);/*from  w  ww  . j av a  2s.co  m*/
    throw new UnauthorizedException(msg);
}