use of org.apache.kafka.server.authorizer.AuthorizationResult in project kafka by apache.
the class StandardAuthorizer method configure.
@Override
public synchronized void configure(Map<String, ?> configs) {
Set<String> superUsers = getConfiguredSuperUsers(configs);
AuthorizationResult defaultResult = getDefaultResult(configs);
int nodeId;
try {
nodeId = Integer.parseInt(configs.get("node.id").toString());
} catch (Exception e) {
nodeId = -1;
}
this.data = data.copyWithNewConfig(nodeId, superUsers, defaultResult);
this.data.log.info("set super.users=" + String.join(",", superUsers) + ", default result=" + defaultResult);
}
use of org.apache.kafka.server.authorizer.AuthorizationResult in project kafka by apache.
the class StandardAuthorizerData method checkSection.
void checkSection(Action action, StandardAcl exemplar, AuthorizableRequestContext requestContext, AuthorizationResultBuilder builder) {
NavigableSet<StandardAcl> tailSet = aclsByResource.tailSet(exemplar, true);
String resourceName = action.resourcePattern().name();
for (Iterator<StandardAcl> iterator = tailSet.iterator(); iterator.hasNext(); ) {
StandardAcl acl = iterator.next();
if (!acl.resourceType().equals(action.resourcePattern().resourceType())) {
// should stop scanning.
break;
}
if (resourceName.startsWith(acl.resourceName())) {
if (acl.patternType() == LITERAL && !resourceName.equals(acl.resourceName())) {
// scanning in case there are any relevant PREFIX ACLs.
continue;
}
} else if (!(acl.resourceName().equals(WILDCARD) && acl.patternType() == LITERAL)) {
// stepped outside of the section we care about and should stop scanning.
break;
}
AuthorizationResult result = findResult(action, requestContext, acl);
if (ALLOWED == result) {
builder.foundAllow = true;
} else if (DENIED == result) {
if (log.isTraceEnabled()) {
log.trace("authorize(requestContext=" + requestContext + ", action=" + action + "): DENIED because of " + acl);
}
builder.foundDeny = true;
return;
}
}
}
use of org.apache.kafka.server.authorizer.AuthorizationResult in project kafka by apache.
the class StandardAuthorizer method authorize.
@Override
public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {
StandardAuthorizerData curData = data;
List<AuthorizationResult> results = new ArrayList<>(actions.size());
for (Action action : actions) {
AuthorizationResult result = curData.authorize(requestContext, action);
results.add(result);
}
return results;
}
Aggregations