use of co.cask.cdap.proto.security.Action in project cdap by caskdata.
the class AbstractAuthorizationEnforcer method enforce.
@Override
public void enforce(EntityId entity, Principal principal, Set<Action> actions) throws Exception {
if (!isSecurityAuthorizationEnabled()) {
return;
}
Set<Action> disallowed = EnumSet.noneOf(Action.class);
UnauthorizedException unauthorizedException = new UnauthorizedException(principal, entity);
for (Action action : actions) {
try {
enforce(entity, principal, action);
} catch (UnauthorizedException e) {
disallowed.add(action);
unauthorizedException.addSuppressed(e);
}
}
if (!disallowed.isEmpty()) {
throw new UnauthorizedException(principal, disallowed, entity, unauthorizedException);
}
}
Aggregations