private void doEnforce(EntityId entity, Principal principal, Set<Action> actions) throws Exception {
if (isAccessingSystemNSAsMasterUser(entity, principal) || isEnforcingOnSamePrincipalId(entity, principal)) {
return;
}
LOG.trace("Enforcing actions {} on {} for principal {}.", actions, entity, principal);
StopWatch watch = new StopWatch();
watch.start();
try {
authorizerInstantiator.get().enforce(entity, principal, actions);
} finally {
watch.stop();
long timeTaken = watch.getTime();
String logLine = "Enforced actions {} on {} for principal {}. Time spent in enforcement was {} ms.";
if (timeTaken > logTimeTakenAsWarn) {
LOG.warn(logLine, actions, entity, principal, watch.getTime());
} else {
LOG.trace(logLine, actions, entity, principal, watch.getTime());
}
}
}