mneethiraj commented on code in PR #442:
URL: https://github.com/apache/ranger/pull/442#discussion_r1880950716


##########
agents-common/src/main/java/org/apache/ranger/plugin/audit/RangerDefaultAuditHandler.java:
##########
@@ -41,288 +40,269 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.concurrent.atomic.AtomicInteger;
 
 public class RangerDefaultAuditHandler implements RangerAccessResultProcessor {
-       private static final Logger LOG = 
LoggerFactory.getLogger(RangerDefaultAuditHandler.class);
-
-       private static final String       CONF_AUDIT_ID_STRICT_UUID     = 
"xasecure.audit.auditid.strict.uuid";
-       private static final boolean      DEFAULT_AUDIT_ID_STRICT_UUID  = false;
-
+    private static final Logger LOG = 
LoggerFactory.getLogger(RangerDefaultAuditHandler.class);
+
+    private static final String  CONF_AUDIT_ID_STRICT_UUID    = 
"xasecure.audit.auditid.strict.uuid";
+    private static final boolean DEFAULT_AUDIT_ID_STRICT_UUID = false;
+
+    protected final String moduleName;
+
+    private final boolean         auditIdStrictUUID;
+    private       long            sequenceNumber;
+    private final RangerRESTUtils restUtils = new RangerRESTUtils();
+    private       String          uuid      = MiscUtil.generateUniqueId();
+    private       AtomicInteger   counter   = new AtomicInteger(0);
+
+    public RangerDefaultAuditHandler() {
+        auditIdStrictUUID = DEFAULT_AUDIT_ID_STRICT_UUID;
+        moduleName        = 
RangerHadoopConstants.DEFAULT_RANGER_MODULE_ACL_NAME;
+    }
+
+    public RangerDefaultAuditHandler(Configuration config) {
+        auditIdStrictUUID = config.getBoolean(CONF_AUDIT_ID_STRICT_UUID, 
DEFAULT_AUDIT_ID_STRICT_UUID);
+        moduleName        = 
config.get(RangerHadoopConstants.AUDITLOG_RANGER_MODULE_ACL_NAME_PROP, 
RangerHadoopConstants.DEFAULT_RANGER_MODULE_ACL_NAME);
+    }
+
+    @Override
+    public void processResult(RangerAccessResult result) {
+        LOG.debug("==> RangerDefaultAuditHandler.processResult({})", result);
+
+        AuthzAuditEvent event = getAuthzEvents(result);
+
+        logAuthzAudit(event);
+
+        LOG.debug("<== RangerDefaultAuditHandler.processResult({})", result);
+    }
+
+    @Override
+    public void processResults(Collection<RangerAccessResult> results) {
+        LOG.debug("==> RangerDefaultAuditHandler.processResults({})", results);
+
+        Collection<AuthzAuditEvent> events = getAuthzEvents(results);
+
+        if (events != null) {
+            logAuthzAudits(events);
+        }
+
+        LOG.debug("<== RangerDefaultAuditHandler.processResults({})", results);
+    }
+
+    public AuthzAuditEvent getAuthzEvents(RangerAccessResult result) {
+        LOG.debug("==> RangerDefaultAuditHandler.getAuthzEvents({})", result);
+
+        AuthzAuditEvent ret = null;
+
+        RangerAccessRequest request = result != null ? 
result.getAccessRequest() : null;
+
+        if (request != null && result.getIsAudited()) {
+            //RangerServiceDef     serviceDef   = result.getServiceDef();
+            RangerAccessResource resource     = request.getResource();
+            String               resourceType = resource == null ? null : 
resource.getLeafName();
+            String               resourcePath = resource == null ? null : 
resource.getAsString();
+
+            ret = createAuthzAuditEvent();
+
+            ret.setRepositoryName(result.getServiceName());
+            ret.setRepositoryType(result.getServiceType());
+            ret.setResourceType(resourceType);
+            ret.setResourcePath(resourcePath);
+            ret.setRequestData(request.getRequestData());
+            ret.setEventTime(request.getAccessTime() != null ? 
request.getAccessTime() : new Date());
+            ret.setUser(request.getUser());
+            ret.setAction(request.getAccessType());
+            ret.setAccessResult((short) (result.getIsAllowed() ? 1 : 0));
+            ret.setPolicyId(result.getPolicyId());
+            ret.setAccessType(request.getAction());
+            ret.setClientIP(request.getClientIPAddress());
+            ret.setClientType(request.getClientType());
+            ret.setSessionId(request.getSessionId());
+            ret.setAclEnforcer(moduleName);
+
+            Set<String> tags = getTags(request);
+            if (tags != null) {
+                ret.setTags(tags);
+            }
+
+            ret.setDatasets(getDatasets(request));
+            ret.setProjects(getProjects(request));
+            ret.setAdditionalInfo(getAdditionalInfo(request));
+            ret.setClusterName(request.getClusterName());
+            ret.setZoneName(result.getZoneName());
+            ret.setAgentHostname(restUtils.getAgentHostname());
+            ret.setPolicyVersion(result.getPolicyVersion());
+
+            populateDefaults(ret);
+
+            result.setAuditLogId(ret.getEventId());
+        }
+
+        LOG.debug("<== RangerDefaultAuditHandler.getAuthzEvents({}): {}", 
result, ret);
+
+        return ret;
+    }
+
+    public Collection<AuthzAuditEvent> 
getAuthzEvents(Collection<RangerAccessResult> results) {

Review Comment:
   As I responded earlier, the intention is to keep a single return from a 
method. I recommend not changing this approach.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@ranger.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to