You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ol...@apache.org on 2016/09/13 10:42:00 UTC
[43/51] [abbrv] ambari git commit: AMBARI-18310. Refactor logsearch
portal side code - Part 2 (oleewere)
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java
deleted file mode 100644
index 53e2ca2..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/metrics/SolrMetricsLoader.java
+++ /dev/null
@@ -1,198 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.ambari.logsearch.solr.metrics;
-
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Timer;
-import java.util.TimerTask;
-import java.util.TreeMap;
-
-import javax.management.MalformedObjectNameException;
-
-import org.apache.ambari.logsearch.common.PropertiesHelper;
-import org.apache.ambari.logsearch.solr.AmbariSolrCloudClient;
-import org.apache.ambari.logsearch.solr.AmbariSolrCloudClientBuilder;
-import org.apache.commons.lang.StringUtils;
-import org.apache.hadoop.metrics2.sink.timeline.TimelineMetric;
-import org.apache.hadoop.metrics2.sink.timeline.TimelineMetrics;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class SolrMetricsLoader extends TimerTask {
- private static final Logger LOG = LoggerFactory.getLogger(SolrMetricsLoader.class);
-
- private static final int RETRY = 3;
- private static final int MAX_METRIC_SIZE= 1000;
-
- private final String solrHost;
- private final SolrJmxAdapter solrJmxAdapter;
- private final SolrAmsClient solrAmsClient;
-
- private final TimelineMetrics metrics = new TimelineMetrics();
-
- public SolrMetricsLoader(String solrHost, int solrJmxPort, String collectorHost) throws IOException {
- this.solrHost = solrHost;
- this.solrJmxAdapter = new SolrJmxAdapter(solrHost, solrJmxPort);
- this.solrAmsClient = new SolrAmsClient(collectorHost);
-
- solrJmxAdapter.connect();
- }
-
- @Override
- public void run() {
- LOG.info("Loading Solr Metrics for the host " + solrHost);
-
- addCpuUsageMetric();
- addHeapMemoryUsageMetric();
- addIndexSizeMetric();
-
- emitMetrics();
- removeOverTheLimitMetrics();
- }
-
- private void addCpuUsageMetric() {
- Exception lastException = null;
- for (int retries = 0; retries < RETRY; retries++) {
- try {
- double processCpuLoad = solrJmxAdapter.getProcessCpuLoad();
- addMetric("logsearch.solr.cpu.usage", "Float", processCpuLoad);
- return;
- } catch (MalformedObjectNameException e) {
- lastException = e;
- try {
- solrJmxAdapter.reConnect();
- } catch (IOException e1) {
- }
- }
- }
-
- LOG.info("Could not load solr cpu usage metric, last exception:", lastException);
- }
-
- private void addHeapMemoryUsageMetric() {
- Exception lastException = null;
- for (int retries = 0; retries < RETRY; retries++) {
- try {
- Map<String, Long> memoryData = solrJmxAdapter.getMemoryData();
- addMetric("jvm.JvmMetrics.MemHeapUsedM", "Long", memoryData.get("heapMemoryUsed").doubleValue() / 1024 / 1024);
- addMetric("jvm.JvmMetrics.MemHeapCommittedM", "Long", memoryData.get("heapMemoryCommitted").doubleValue() / 1024 / 1024);
- addMetric("jvm.JvmMetrics.MemHeapMaxM", "Long", memoryData.get("heapMemoryMax").doubleValue() / 1024 / 1024);
- addMetric("jvm.JvmMetrics.MemNonHeapUsedM", "Long", memoryData.get("nonHeapMemoryUsed").doubleValue() / 1024 / 1024);
- addMetric("jvm.JvmMetrics.MemNonHeapCommittedM", "Long", memoryData.get("nonHeapMemoryCommitted").doubleValue() / 1024 / 1024);
- addMetric("jvm.JvmMetrics.MemNonHeapMaxM", "Long", memoryData.get("nonHeapMemoryMax").doubleValue() / 1024 / 1024);
- return;
- } catch (MalformedObjectNameException e) {
- lastException = e;
- try {
- solrJmxAdapter.reConnect();
- } catch (IOException e1) {
- }
- }
- }
-
- LOG.info("Could not load solr heap memory usage metric, last exception:", lastException);
- }
-
- private void addIndexSizeMetric() {
- Exception lastException = null;
- for (int retries = 0; retries < RETRY; retries++) {
- try {
- double indexSize = solrJmxAdapter.getIndexSize();
- addMetric("logsearch.solr.index.size", "Long", indexSize / 1024 / 1024 / 1024);
- return;
- } catch (Exception e) {
- lastException = e;
- try {
- solrJmxAdapter.reConnect();
- } catch (IOException e1) {
- }
- }
- }
-
- LOG.info("Could not load solr index size metric, last exception:", lastException);
- }
-
- private void addMetric(String metricName, String type, Double value) {
- Long currMS = System.currentTimeMillis();
-
- TimelineMetric metric = new TimelineMetric();
- metric.setMetricName(metricName);
- metric.setHostName(solrHost);
- metric.setAppId("infra-solr");
- metric.setStartTime(currMS);
- metric.setType(type);
- metric.setTimestamp(currMS);
- metric.getMetricValues().put(currMS, value);
-
- metrics.addOrMergeTimelineMetric(metric);
- }
-
- private void emitMetrics() {
- Exception lastException = null;
- for (int retries = 0; retries < RETRY; retries++) {
- try {
- if (solrAmsClient.emitMetrics(metrics)) {
- metrics.getMetrics().clear();
- return;
- }
- } catch (Exception e) {
- lastException = e;
- }
- }
-
- LOG.info("Could not emit metrics, last exception:", lastException);
- }
-
- private void removeOverTheLimitMetrics() {
- for (TimelineMetric metric : metrics.getMetrics()) {
- TreeMap<Long, Double> metricValues = metric.getMetricValues();
- while (metricValues.size() > MAX_METRIC_SIZE) {
- metricValues.remove(metricValues.firstKey());
- }
- }
- }
-
- public static void startSolrMetricsLoaderTasks() {
- try {
- String collectorHosts = PropertiesHelper.getProperty("logsearch.solr.metrics.collector.hosts");
- if (StringUtils.isEmpty(collectorHosts)) {
- LOG.warn("No Ambari Metrics service is available, no Solr metrics will be loaded!");
- return;
- }
-
- int solrJmxPort = PropertiesHelper.getIntProperty("logsearch.solr.jmx.port");
-
- String zkConnectString = PropertiesHelper.getProperty("logsearch.solr.zk_connect_string");
- AmbariSolrCloudClient ambariSolrCloudClient = new AmbariSolrCloudClientBuilder()
- .withZkConnectString(zkConnectString)
- .build();
-
- Collection<String> solrHosts = ambariSolrCloudClient.getSolrHosts();
- for (String solrHost : solrHosts) {
- SolrMetricsLoader sml = new SolrMetricsLoader(solrHost, solrJmxPort, collectorHosts);
- Timer timer = new Timer("Solr Metrics Loader - " + solrHost, true);
- timer.scheduleAtFixedRate(sml, 0, 10000);
- }
- } catch (Exception e) {
- LOG.warn("Could not start solr metric loader tasks", e);
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java
index a3f59f7..0cf05a6 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/solr/model/SolrAuditLogData.java
@@ -69,7 +69,7 @@ public class SolrAuditLogData extends SolrCommonLogData implements AuditLogData
private String repo;
@Field("repoType")
- private String repoType;
+ private Integer repoType;
@Field("reqData")
private String requestData;
@@ -188,12 +188,12 @@ public class SolrAuditLogData extends SolrCommonLogData implements AuditLogData
}
@Override
- public String getRepoType() {
+ public Integer getRepoType() {
return repoType;
}
@Override
- public void setRepoType(String repoType) {
+ public void setRepoType(Integer repoType) {
this.repoType = repoType;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
index 5da1c97..c20e383 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/authenticate/LogsearchLogoutSuccessHandler.java
@@ -36,6 +36,6 @@ public class LogsearchLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
logger.debug("LogsearchLogoutSuccessHandler ::: onLogoutSuccess");
- response.sendRedirect("/login.html");
+ response.sendRedirect("/index.html");
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java
index 1b24c06..1831697 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchAuthenticationEntryPoint.java
@@ -28,7 +28,7 @@ import org.apache.log4j.Logger;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.LoginUrlAuthenticationEntryPoint;
-class LogsearchAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
+public class LogsearchAuthenticationEntryPoint extends LoginUrlAuthenticationEntryPoint {
private static final Logger logger = Logger.getLogger(LogsearchAuthenticationEntryPoint.class);
public LogsearchAuthenticationEntryPoint(String loginFormUrl) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java
index 29fd5b2..8cd435b 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchKRBAuthenticationFilter.java
@@ -61,6 +61,7 @@ import org.apache.hadoop.security.authentication.server.KerberosAuthenticationHa
import org.apache.hadoop.security.authentication.server.PseudoAuthenticationHandler;
import org.apache.hadoop.security.authentication.util.KerberosName;
import org.springframework.security.web.authentication.WebAuthenticationDetails;
+import org.springframework.stereotype.Component;
public class LogsearchKRBAuthenticationFilter extends LogsearchKrbFilter {
private static final Logger logger = LoggerFactory.getLogger(LogsearchKRBAuthenticationFilter.class);
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
index a34fbd0..1320278 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
@@ -38,6 +38,7 @@ import org.apache.log4j.Logger;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
+import org.springframework.stereotype.Component;
import org.springframework.web.filter.GenericFilterBean;
public class LogsearchSecurityContextFormationFilter extends GenericFilterBean {
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchUsernamePasswordAuthenticationFilter.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchUsernamePasswordAuthenticationFilter.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchUsernamePasswordAuthenticationFilter.java
index 2c83001..85688a2 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchUsernamePasswordAuthenticationFilter.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchUsernamePasswordAuthenticationFilter.java
@@ -20,11 +20,13 @@ package org.apache.ambari.logsearch.web.filters;
import java.io.IOException;
+import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
+import org.springframework.security.authentication.AuthenticationManager;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.RememberMeServices;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/listeners/SpringEventListener.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/listeners/SpringEventListener.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/listeners/SpringEventListener.java
deleted file mode 100644
index fc6a594..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/listeners/SpringEventListener.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.ambari.logsearch.web.listeners;
-
-import org.apache.log4j.Logger;
-import org.springframework.context.ApplicationListener;
-import org.springframework.security.authentication.event.AbstractAuthenticationEvent;
-
-public class SpringEventListener implements ApplicationListener<AbstractAuthenticationEvent> {
- private static final Logger logger = Logger.getLogger(SpringEventListener.class);
-
- @Override
- public void onApplicationEvent(AbstractAuthenticationEvent event) {
- logger.trace(" Inside onApplicationEvent SpringEventListener");
- }
-}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java
index 0c102c3..eab33a1 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAbstractAuthenticationProvider.java
@@ -65,14 +65,4 @@ public abstract class LogsearchAbstractAuthenticationProvider implements Authent
return isEnable;
}
- /**
- * Check authentication provider is enable or disable
- *
- * @return boolean
- */
- public boolean isEnable() {
- // default is disabled
- return false;
- }
-
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java
index 3534818..05104b4 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchAuthenticationProvider.java
@@ -26,7 +26,6 @@ import org.apache.log4j.Logger;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.authentication.WebAuthenticationDetails;
import org.springframework.stereotype.Component;
@@ -41,19 +40,19 @@ public class LogsearchAuthenticationProvider extends
.getLogger("org.apache.ambari.logsearch.audit");
@Inject
- UserDao userDao;
+ private UserDao userDao;
@Inject
- LogsearchLdapAuthenticationProvider ldapAuthenticationProvider;
+ private LogsearchLdapAuthenticationProvider ldapAuthenticationProvider;
@Inject
- LogsearchFileAuthenticationProvider fileAuthenticationProvider;
+ private LogsearchFileAuthenticationProvider fileAuthenticationProvider;
@Inject
- LogsearchSimpleAuthenticationProvider simpleAuthenticationProvider;
+ private LogsearchSimpleAuthenticationProvider simpleAuthenticationProvider;
@Inject
- LogsearchExternalServerAuthenticationProvider externalServerAuthenticationProvider;
+ private LogsearchExternalServerAuthenticationProvider externalServerAuthenticationProvider;
@Override
public Authentication authenticate(Authentication authentication)
@@ -128,7 +127,7 @@ public class LogsearchAuthenticationProvider extends
authentication = fileAuthenticationProvider.authenticate(authentication);
} else if (authMethod.equals(AUTH_METHOD.SIMPLE)) {
authentication = simpleAuthenticationProvider.authenticate(authentication);
- }else if (authMethod.equals(AUTH_METHOD.EXTERNAL_AUTH)) {
+ } else if (authMethod.equals(AUTH_METHOD.EXTERNAL_AUTH)) {
authentication = externalServerAuthenticationProvider.authenticate(authentication);
} else {
logger.error("Invalid authentication method :" + authMethod.name());
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java
index a06a381..d398bdc 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchExternalServerAuthenticationProvider.java
@@ -21,7 +21,6 @@ package org.apache.ambari.logsearch.web.security;
import java.util.ArrayList;
import java.util.List;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
import org.apache.ambari.logsearch.common.ExternalServerClient;
@@ -114,7 +113,7 @@ public class LogsearchExternalServerAuthenticationProvider extends
@Override
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
- if (!this.isEnable()) {
+ if (!authConfig.isAuthExternalEnabled()) {
LOG.debug("external server auth is disabled.");
return authentication;
}
@@ -173,13 +172,4 @@ public class LogsearchExternalServerAuthenticationProvider extends
}
return false;
}
-
- /**
- * Return true/false based on EXTERNAL_AUTH authentication method is
- * enabled/disabled return boolean
- */
- @Override
- public boolean isEnable() {
- return isEnable(AUTH_METHOD.EXTERNAL_AUTH);
- }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
index 180de31..9662266 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
@@ -20,6 +20,7 @@ package org.apache.ambari.logsearch.web.security;
import java.util.Collection;
+import org.apache.ambari.logsearch.conf.AuthConfig;
import org.apache.ambari.logsearch.util.CommonUtil;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
@@ -41,11 +42,14 @@ public class LogsearchFileAuthenticationProvider extends LogsearchAbstractAuthen
private static Logger logger = Logger.getLogger(LogsearchFileAuthenticationProvider.class);
@Inject
+ private AuthConfig authConfig;
+
+ @Inject
private UserDetailsService userDetailsService;
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
- if (!this.isEnable()) {
+ if (!authConfig.isAuthFileEnabled()) {
logger.debug("File auth is disabled.");
return authentication;
}
@@ -80,9 +84,4 @@ public class LogsearchFileAuthenticationProvider extends LogsearchAbstractAuthen
authentication = new UsernamePasswordAuthenticationToken(username, encPassword, authorities);
return authentication;
}
-
- @Override
- public boolean isEnable() {
- return isEnable(AUTH_METHOD.FILE);
- }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProvider.java
index 742cd9b..f6c7df0 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapAuthenticationProvider.java
@@ -20,6 +20,7 @@ package org.apache.ambari.logsearch.web.security;
import java.util.List;
+import org.apache.ambari.logsearch.conf.AuthConfig;
import org.apache.log4j.Logger;
import org.springframework.ldap.CommunicationException;
import org.springframework.ldap.core.support.LdapContextSource;
@@ -31,6 +32,9 @@ import org.springframework.security.ldap.authentication.LdapAuthenticationProvid
import org.springframework.security.ldap.search.FilterBasedLdapUserSearch;
import org.springframework.stereotype.Component;
+import javax.annotation.PostConstruct;
+import javax.inject.Inject;
+
@Component
public class LogsearchLdapAuthenticationProvider extends
LogsearchAbstractAuthenticationProvider {
@@ -42,9 +46,16 @@ public class LogsearchLdapAuthenticationProvider extends
private static LdapAuthenticationProvider ldapAuthProvider = null;
private String logStatement = "";
+ @Inject
+ private AuthConfig authConfig;
+
public LogsearchLdapAuthenticationProvider() {
+ }
+
+ @PostConstruct
+ public void postConstruct() {
logger.debug("Creating object of ldap auth provider ");
- if (this.isEnable()) {
+ if (authConfig.isAuthLdapEnabled()) {
ldapAuthProvider = loadLdapAuthenticationProvider();
} else {
logger.info("Ldap auth is disabled");
@@ -54,7 +65,7 @@ public class LogsearchLdapAuthenticationProvider extends
@Override
public Authentication authenticate(Authentication authentication)
throws AuthenticationException {
- if (!this.isEnable()) {
+ if (!authConfig.isAuthLdapEnabled()) {
logger.debug("Ldap auth is disabled");
return authentication;
}
@@ -98,7 +109,7 @@ public class LogsearchLdapAuthenticationProvider extends
*
* @return corresponding LDAP authentication provider
*/
- LdapAuthenticationProvider loadLdapAuthenticationProvider() {
+ private LdapAuthenticationProvider loadLdapAuthenticationProvider() {
if (reloadLdapServerProperties()) {
logger.info("LDAP Properties changed - rebuilding Context");
LdapContextSource springSecurityContextSource = new LdapContextSource();
@@ -173,9 +184,4 @@ public class LogsearchLdapAuthenticationProvider extends
return false;
}
- @Override
- public boolean isEnable() {
- return isEnable(AUTH_METHOD.LDAP);
- }
-
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapBindAuthenticator.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapBindAuthenticator.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapBindAuthenticator.java
index f9207b1..10f7507 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapBindAuthenticator.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchLdapBindAuthenticator.java
@@ -40,69 +40,7 @@ public class LogsearchLdapBindAuthenticator extends BindAuthenticator {
@Override
public DirContextOperations authenticate(Authentication authentication) {
-
- DirContextOperations user = super.authenticate(authentication);
-
- return setAmbariAdminAttr(user);
- }
-
- /**
- * Checks whether user is a member of ambari administrators group in LDAP.
- * If yes, sets user's ambari_admin attribute to true
- *
- * @param user
- * @return
- */
- private DirContextOperations setAmbariAdminAttr(DirContextOperations user) {
- String baseDn = ldapServerProperties.getBaseDN().toLowerCase();
- String groupBase = ldapServerProperties.getGroupBase().toLowerCase();
- String groupObjectClass = ldapServerProperties.getGroupObjectClass();
- String groupMembershipAttr = ldapServerProperties
- .getGroupMembershipAttr();
- String adminGroupMappingRules = ldapServerProperties
- .getAdminGroupMappingRules();
- final String groupNamingAttribute = ldapServerProperties
- .getGroupNamingAttr();
- String groupSearchFilter = ldapServerProperties.getGroupSearchFilter();
-
- // If groupBase is set incorrectly or isn't set - search in BaseDn
- int indexOfBaseDn = groupBase.indexOf(baseDn);
- groupBase = indexOfBaseDn <= 0 ? "" : groupBase.substring(0,
- indexOfBaseDn - 1);
-
- StringBuilder filterBuilder = new StringBuilder();
-
- filterBuilder.append("(&(");
- filterBuilder.append(groupMembershipAttr);
- filterBuilder.append("=");
- filterBuilder.append(user.getNameInNamespace());// DN
-
- if ((groupSearchFilter == null) || groupSearchFilter.equals("")) {
- // If groupSearchFilter is not specified, build it from other
- // authorization
- // group properties
- filterBuilder.append(")(objectclass=");
- filterBuilder.append(groupObjectClass);
- filterBuilder.append(")(|");
- String[] adminGroupMappingRegexs = adminGroupMappingRules
- .split(",");
- for (String adminGroupMappingRegex : adminGroupMappingRegexs) {
- filterBuilder.append("(");
- filterBuilder.append(groupNamingAttribute);
- filterBuilder.append("=");
- filterBuilder.append(adminGroupMappingRegex);
- filterBuilder.append(")");
- }
- filterBuilder.append(")");
- } else {
- filterBuilder.append(")");
- filterBuilder.append(groupSearchFilter);
- }
- filterBuilder.append(")");
-
- logger.info("filter=" + filterBuilder);
- // TODO: Filter is not used anywhere
- return user;
+ return super.authenticate(authentication);
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchSimpleAuthenticationProvider.java
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchSimpleAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchSimpleAuthenticationProvider.java
index ec2516c..5dc1c1f 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchSimpleAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchSimpleAuthenticationProvider.java
@@ -18,6 +18,7 @@
*/
package org.apache.ambari.logsearch.web.security;
+import org.apache.ambari.logsearch.conf.AuthConfig;
import org.apache.ambari.logsearch.web.model.User;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
@@ -28,14 +29,19 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
import org.springframework.stereotype.Component;
+import javax.inject.Inject;
+
@Component
public class LogsearchSimpleAuthenticationProvider extends LogsearchAbstractAuthenticationProvider {
private static Logger logger = Logger.getLogger(LogsearchSimpleAuthenticationProvider.class);
+ @Inject
+ private AuthConfig authConfig;
+
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
- if (!this.isEnable()) {
+ if (!authConfig.isAuthSimpleEnabled()) {
logger.debug("Simple auth is disabled");
return authentication;
}
@@ -64,9 +70,4 @@ public class LogsearchSimpleAuthenticationProvider extends LogsearchAbstractAuth
return false;
}
}
-
- @Override
- public boolean isEnable() {
- return this.isEnable(AUTH_METHOD.SIMPLE);
- }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/resources/log4j.xml b/ambari-logsearch/ambari-logsearch-portal/src/main/resources/log4j.xml
index ad96558..60b09cd 100644
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/resources/log4j.xml
+++ b/ambari-logsearch/ambari-logsearch-portal/src/main/resources/log4j.xml
@@ -57,7 +57,7 @@
<appender name="rolling_file_json"
class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender">
- <param name="file" value="logs/logsearch-app.json" />
+ <param name="file" value="target/logs/logsearch-app.json" />
<param name="Threshold" value="info" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
@@ -67,7 +67,7 @@
<appender name="audit_rolling_file_json"
class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender">
- <param name="file" value="logs/logsearch-audit.json" />
+ <param name="file" value="target/logs/logsearch-audit.json" />
<param name="Threshold" value="info" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
@@ -77,7 +77,7 @@
<appender name="performance_analyzer_json"
class="org.apache.ambari.logsearch.appender.LogsearchRollingFileAppender">
- <param name="file" value="logs/logsearch-performance.json" />
+ <param name="file" value="target/logs/logsearch-performance.json" />
<param name="Threshold" value="info" />
<param name="append" value="true" />
<param name="maxFileSize" value="10MB" />
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/security-applicationContext.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/security-applicationContext.xml b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/security-applicationContext.xml
deleted file mode 100644
index 9961cd0..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/META-INF/security-applicationContext.xml
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<beans:beans xmlns="http://www.springframework.org/schema/security"
-xmlns:beans="http://www.springframework.org/schema/beans"
-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xmlns:security="http://www.springframework.org/schema/security"
-xsi:schemaLocation="http://www.springframework.org/schema/beans
-http://www.springframework.org/schema/beans/spring-beans-4.2.xsd
-http://www.springframework.org/schema/security
-http://www.springframework.org/schema/security/spring-security-4.0.xsd">
-
- <security:http pattern="/login.html" security="none" />
- <security:http pattern="/styles/**" security="none" />
- <security:http pattern="/fonts/**" security="none" />
- <security:http pattern="/scripts/**" security="none" />
- <security:http pattern="/libs/**" security="none" />
- <security:http pattern="/images/**" security="none" />
- <security:http pattern="/templates/**" security="none" />
- <security:http pattern="/favicon.ico" security="none" />
- <security:http pattern="/api/v1/public/**" security="none" />
- <security:http pattern="/api/v1/swagger.json" security="none"/>
- <security:http pattern="/api/v1/swagger.yaml" security="none"/>
-
- <security:http disable-url-rewriting="true" use-expressions="true" create-session="always" entry-point-ref="authenticationProcessingFilterEntryPoint">
- <csrf disabled="true"/>
- <security:session-management session-fixation-protection="newSession" />
- <intercept-url pattern="/**" access="isAuthenticated()"/>
- <security:custom-filter ref="krbAuthenticationFilter" after="FIRST" />
- <security:custom-filter position="FORM_LOGIN_FILTER" ref="logsearchUsernamePasswordAuthenticationFilter"/>
- <security:custom-filter position="LAST" ref="userContextFormationFilter"/>
- <security:logout delete-cookies="JSESSIONID" logout-url="/logout.html" success-handler-ref="logsearchLogoutSuccessHandler" />
- <http-basic entry-point-ref="authenticationProcessingFilterEntryPoint"/>
- </security:http>
-
- <beans:bean id="userContextFormationFilter" class="org.apache.ambari.logsearch.web.filters.LogsearchSecurityContextFormationFilter"/>
-
- <beans:bean id="krbAuthenticationFilter" class="org.apache.ambari.logsearch.web.filters.LogsearchKRBAuthenticationFilter"/>
-
- <beans:bean id="logsearchUsernamePasswordAuthenticationFilter" class="org.apache.ambari.logsearch.web.filters.LogsearchUsernamePasswordAuthenticationFilter">
- <beans:property name="authenticationManager" ref="authenticationManager"/>
- <beans:property name="authenticationSuccessHandler" ref="authSuccessHandler"/>
- <beans:property name="authenticationFailureHandler" ref="authFailureHandler"/>
- </beans:bean>
-
- <beans:bean id="authenticationProcessingFilterEntryPoint" class="org.apache.ambari.logsearch.web.filters.LogsearchAuthenticationEntryPoint">
- <beans:constructor-arg index="0" value="/login.html"/>
- <beans:property name="forceHttps" value="false"/>
- </beans:bean>
-
- <beans:bean id="authSuccessHandler" class="org.apache.ambari.logsearch.web.authenticate.LogsearchAuthSuccessHandler">
- </beans:bean>
-
- <beans:bean id="authFailureHandler" class="org.apache.ambari.logsearch.web.authenticate.LogsearchAuthFailureHandler">
- </beans:bean>
-
- <beans:bean id="logsearchLogoutSuccessHandler" class="org.apache.ambari.logsearch.web.authenticate.LogsearchLogoutSuccessHandler">
- </beans:bean>
-
- <beans:bean id="logsearchAuthenticationProvider" class="org.apache.ambari.logsearch.web.security.LogsearchAuthenticationProvider" >
- </beans:bean>
-
- <security:authentication-manager alias="authenticationManager">
- <security:authentication-provider ref="logsearchAuthenticationProvider"/>
- </security:authentication-manager>
-
- <beans:bean id="securityEventListener" class ="org.apache.ambari.logsearch.web.listeners.SpringEventListener"/>
-
-</beans:beans>
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/WEB-INF/web.xml b/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/WEB-INF/web.xml
deleted file mode 100755
index 0f1beec..0000000
--- a/ambari-logsearch/ambari-logsearch-portal/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
--->
-<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
-
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <context-param>
- <param-name>contextClass</param-name>
- <param-value>
- org.springframework.web.context.support.AnnotationConfigWebApplicationContext
- </param-value>
- </context-param>
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>org.apache.ambari.logsearch.conf.ApplicationConfig</param-value>
- </context-param>
-
- <listener>
- <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
- </listener>
- <filter>
- <filter-name>springSecurityFilterChain</filter-name>
- <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
- </filter>
-
- <filter-mapping>
- <filter-name>springSecurityFilterChain</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
-
- <!-- Servlet mapping for REST -->
- <servlet>
- <servlet-name>REST service</servlet-name>
- <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
- <init-param>
- <param-name>jersey.config.server.provider.packages</param-name>
- <param-value>org.apache.ambari.logsearch.rest,io.swagger.jaxrs.listing</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>REST service</servlet-name>
- <url-pattern>/api/v1/*</url-pattern>
- </servlet-mapping>
-
-</web-app>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/docker/test-config/logfeeder/logfeeder.properties
----------------------------------------------------------------------
diff --git a/ambari-logsearch/docker/test-config/logfeeder/logfeeder.properties b/ambari-logsearch/docker/test-config/logfeeder/logfeeder.properties
index b588a2d..f930ec9 100644
--- a/ambari-logsearch/docker/test-config/logfeeder/logfeeder.properties
+++ b/ambari-logsearch/docker/test-config/logfeeder/logfeeder.properties
@@ -21,7 +21,8 @@ logfeeder.config.files=shipper-conf/global.config.json,\
shipper-conf/input.config-logsearch.json,\
shipper-conf/input.config-hst.json,\
shipper-conf/input.config-system_message.json,\
- shipper-conf/input.config-secure_log.json
+ shipper-conf/input.config-secure_log.json,\
+ shipper-conf/input.config-hdfs.json
logfeeder.log.filter.enable=true
logfeeder.solr.config.interval=5
logfeeder.solr.core.config.name=history
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/docker/test-config/logfeeder/shipper-conf/input.config-hdfs.json
----------------------------------------------------------------------
diff --git a/ambari-logsearch/docker/test-config/logfeeder/shipper-conf/input.config-hdfs.json b/ambari-logsearch/docker/test-config/logfeeder/shipper-conf/input.config-hdfs.json
new file mode 100644
index 0000000..d975b0d
--- /dev/null
+++ b/ambari-logsearch/docker/test-config/logfeeder/shipper-conf/input.config-hdfs.json
@@ -0,0 +1,172 @@
+{
+ "input": [
+ {
+ "type": "hdfs_audit",
+ "rowtype": "audit",
+ "is_enabled": "true",
+ "add_fields": {
+ "logType": "HDFSAudit",
+ "enforcer": "hadoop-acl",
+ "repoType": "1",
+ "repo": "hdfs"
+ },
+ "path": "/root/test-logs/hdfs-audit/hdfs-audit.log"
+ }
+ ],
+ "filter": [
+ {
+ "filter":"grok",
+ "conditions":{
+ "fields":{
+ "type":[
+ "hdfs_audit"
+ ]
+
+ }
+
+ },
+ "log4j_format":"%d{ISO8601} %-5p %c{2} (%F:%M(%L)) - %m%n",
+ "multiline_pattern":"^(%{TIMESTAMP_ISO8601:evtTime})",
+ "message_pattern":"(?m)^%{TIMESTAMP_ISO8601:evtTime}%{SPACE}%{LOGLEVEL:level}%{SPACE}%{JAVACLASS:logger_name}:%{SPACE}%{GREEDYDATA:log_message}",
+ "post_map_values":{
+ "evtTime":{
+ "map_date":{
+ "target_date_pattern":"yyyy-MM-dd HH:mm:ss,SSS"
+ }
+
+ }
+
+ }
+
+ },
+ {
+ "filter":"keyvalue",
+ "sort_order":1,
+ "conditions":{
+ "fields":{
+ "type":[
+ "hdfs_audit"
+ ]
+
+ }
+
+ },
+ "source_field":"log_message",
+ "value_split":"=",
+ "field_split":"\t",
+ "post_map_values":{
+ "src":{
+ "map_fieldname":{
+ "new_fieldname":"resource"
+ }
+
+ },
+ "ip":{
+ "map_fieldname":{
+ "new_fieldname":"cliIP"
+ }
+
+ },
+ "allowed":[
+ {
+ "map_fieldvalue":{
+ "pre_value":"true",
+ "post_value":"1"
+ }
+
+ },
+ {
+ "map_fieldvalue":{
+ "pre_value":"false",
+ "post_value":"0"
+ }
+
+ },
+ {
+ "map_fieldname":{
+ "new_fieldname":"result"
+ }
+
+ }
+
+ ],
+ "cmd":{
+ "map_fieldname":{
+ "new_fieldname":"action"
+ }
+
+ },
+ "proto":{
+ "map_fieldname":{
+ "new_fieldname":"cliType"
+ }
+
+ },
+ "callerContext":{
+ "map_fieldname":{
+ "new_fieldname":"req_caller_id"
+ }
+
+ }
+
+ }
+
+ },
+ {
+ "filter":"grok",
+ "sort_order":2,
+ "source_field":"ugi",
+ "remove_source_field":"false",
+ "conditions":{
+ "fields":{
+ "type":[
+ "hdfs_audit"
+ ]
+
+ }
+
+ },
+ "message_pattern":"%{USERNAME:p_user}.+auth:%{USERNAME:p_authType}.+via %{USERNAME:k_user}.+auth:%{USERNAME:k_authType}|%{USERNAME:user}.+auth:%{USERNAME:authType}|%{USERNAME:x_user}",
+ "post_map_values":{
+ "user":{
+ "map_fieldname":{
+ "new_fieldname":"reqUser"
+ }
+
+ },
+ "x_user":{
+ "map_fieldname":{
+ "new_fieldname":"reqUser"
+ }
+
+ },
+ "p_user":{
+ "map_fieldname":{
+ "new_fieldname":"reqUser"
+ }
+
+ },
+ "k_user":{
+ "map_fieldname":{
+ "new_fieldname":"proxyUsers"
+ }
+
+ },
+ "p_authType":{
+ "map_fieldname":{
+ "new_fieldname":"authType"
+ }
+
+ },
+ "k_authType":{
+ "map_fieldname":{
+ "new_fieldname":"proxyAuthType"
+ }
+
+ }
+
+ }
+
+ }
+ ]
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/489aad40/ambari-logsearch/docker/test-logs/hdfs-audit/hdfs-audit.log
----------------------------------------------------------------------
diff --git a/ambari-logsearch/docker/test-logs/hdfs-audit/hdfs-audit.log b/ambari-logsearch/docker/test-logs/hdfs-audit/hdfs-audit.log
new file mode 100644
index 0000000..a646cc4
--- /dev/null
+++ b/ambari-logsearch/docker/test-logs/hdfs-audit/hdfs-audit.log
@@ -0,0 +1,4 @@
+2016-03-18 10:00:47,252 INFO FSNamesystem.audit: allowed=true ugi=ambari-qa (auth:SIMPLE) ip=/192.168.64.102 cmd=getfileinfo src=/ats/active dst=null perm=null proto=rpc callerContext=HIVE_QUERY_ID:ambari-qa_20160317200111_223b3079-4a2d-431c-920f-6ba37ed63e9f
+2016-03-18 10:00:48,939 INFO FSNamesystem.audit: allowed=true ugi=ambari-qa (auth:SIMPLE) ip=/192.168.64.102 cmd=delete src=/tmp/hive/ambari-qa/resource1 dst=null perm=null proto=rpc
+2016-03-18 10:00:49,242 INFO FSNamesystem.audit: allowed=true ugi=ambari-qa (auth:SIMPLE) ip=/192.168.64.102 cmd=getfileinfo src=/tmp/hive/ambari-qa/resource2 dst=null perm=null proto=rpc
+2016-03-18 10:00:49,277 INFO FSNamesystem.audit: allowed=true ugi=ambari-qa (auth:SIMPLE) ip=/192.168.64.102 cmd=getfileinfo src=/tmp/hive/ambari-qa/resource2 dst=null perm=null proto=rpc