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 2018/09/24 19:47:16 UTC
[ambari] 01/12: jdk 10 support
This is an automated email from the ASF dual-hosted git repository.
oleewere pushed a commit to branch branch-feature-logsearch-ga
in repository https://gitbox.apache.org/repos/asf/ambari.git
commit b775674572a583905840e39f974def37a6b4c6f3
Author: Oliver Szabo <ol...@gmail.com>
AuthorDate: Sun Sep 16 01:45:35 2018 +0200
jdk 10 support
---
.../ambari-logsearch-logfeeder/pom.xml | 6 +--
.../org/apache/ambari/logfeeder/LogFeeder.java | 2 +-
.../src/main/scripts/logfeeder.sh | 2 +-
ambari-logsearch/ambari-logsearch-server/pom.xml | 58 ++++++++++++++++++----
.../org/apache/ambari/logsearch/LogSearch.java | 8 +--
.../conf/LogSearchJerseyResourceConfig.java | 3 +-
.../logsearch/conf/LogSearchServletConfig.java | 33 ++++++------
.../logsearch/conf/LogSearchSessionConfig.java | 46 +++++++++++++++++
.../ambari/logsearch/conf/SecurityConfig.java | 7 +++
.../apache/ambari/logsearch/conf/SolrConfig.java | 3 --
.../org/apache/ambari/logsearch/dao/UserDao.java | 6 ++-
.../apache/ambari/logsearch/util/CommonUtil.java | 41 ---------------
.../LogsearchSecurityContextFormationFilter.java | 6 ++-
.../logsearch/web/filters/NoServletContext.java | 35 +++++++++++++
.../LogsearchFileAuthenticationProvider.java | 15 ++++--
.../src/main/scripts/logsearch.sh | 2 +-
.../converter/AuditLogRequestConverterTest.java | 4 +-
.../AuditServiceLoadRequestQueryConverterTest.java | 4 +-
.../BaseServiceLogRequestQueryConverterTest.java | 4 +-
.../FieldAuditLogRequestQueryConverterTest.java | 4 +-
.../ServiceLogAnyGraphRequestConverterTest.java | 4 +-
...LogComponentLevelRequestQueryConverterTest.java | 6 +--
...LogComponentRequestFacetQueryConverterTest.java | 6 +--
...viceLogLevelCountRequestQueryConverterTest.java | 4 +-
...rviceLogTreeRequestFacetQueryConverterTest.java | 6 +--
...rviceLogTruncatedRequestQueryConverterTest.java | 4 +-
.../TopFieldAuditLogRequestQueryConverterTest.java | 4 +-
.../UserExportRequestQueryConverterTest.java | 4 +-
.../LogsearchFileAuthenticationProviderTest.java | 14 ++++--
ambari-logsearch/docker/Dockerfile | 9 ++--
ambari-logsearch/pom.xml | 4 +-
31 files changed, 227 insertions(+), 127 deletions(-)
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml b/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
index 1b116b3..585dbda 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/pom.xml
@@ -33,8 +33,8 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
- <spring.version>4.3.17.RELEASE</spring.version>
- <spring-boot.version>1.5.13.RELEASE</spring-boot.version>
+ <spring.version>5.0.9.RELEASE</spring.version>
+ <spring-boot.version>2.0.5.RELEASE</spring-boot.version>
</properties>
<dependencies>
@@ -91,7 +91,7 @@
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
- <version>3.4</version>
+ <version>3.6</version>
<scope>test</scope>
</dependency>
<dependency>
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeeder.java b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeeder.java
index 4025d3d..a0d8b4f 100644
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeeder.java
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/java/org/apache/ambari/logfeeder/LogFeeder.java
@@ -22,7 +22,7 @@ import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.system.ApplicationPidFileWriter;
+import org.springframework.boot.context.ApplicationPidFileWriter;
@SpringBootApplication(
scanBasePackages = {"org.apache.ambari.logfeeder"},
diff --git a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/logfeeder.sh b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/logfeeder.sh
index 7f1d8ec..b9141f0 100755
--- a/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/logfeeder.sh
+++ b/ambari-logsearch/ambari-logsearch-logfeeder/src/main/scripts/logfeeder.sh
@@ -80,7 +80,7 @@ else
LOGFEEDER_GC_LOGFILE="$LOG_PATH_WITHOUT_SLASH/$LOGFEEDER_GC_LOGFILE"
fi
-LOGFEEDER_GC_OPTS="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$LOGFEEDER_GC_LOGFILE"
+LOGFEEDER_GC_OPTS="-Xlog:gc*:file=$LOGFEEDER_GC_LOGFILE:time"
function print_usage() {
cat << EOF
diff --git a/ambari-logsearch/ambari-logsearch-server/pom.xml b/ambari-logsearch/ambari-logsearch-server/pom.xml
index 783fba3..f7f2ba2 100755
--- a/ambari-logsearch/ambari-logsearch-server/pom.xml
+++ b/ambari-logsearch/ambari-logsearch-server/pom.xml
@@ -27,15 +27,19 @@
<url>http://maven.apache.org</url>
<name>Ambari Logsearch Server</name>
<properties>
- <spring.version>4.3.17.RELEASE</spring.version>
- <spring.security.version>4.2.4.RELEASE</spring.security.version>
- <spring.ldap.version>2.3.2.RELEASE</spring.ldap.version>
- <jersey.version>2.25.1</jersey.version>
- <jetty.version>9.4.11.v20180605</jetty.version>
+ <spring-boot.version>2.0.5.RELEASE</spring-boot.version>
+ <!-- <spring-boot.version>2.1.0.M2</spring-boot.version> -->
+ <spring.version>5.0.9.RELEASE</spring.version>
+ <spring-session.version>1.3.3.RELEASE</spring-session.version>
+ <spring.security.version>5.0.8.RELEASE</spring.security.version>
+ <jersey.version>2.27</jersey.version>
+ <jetty.version>9.4.12.v20180830</jetty.version>
<swagger.version>1.5.16</swagger.version>
- <spring-data-solr.version>2.0.2.RELEASE</spring-data-solr.version>
+ <spring.ldap.version>2.3.2.RELEASE</spring.ldap.version>
+ <spring-data-solr.version>3.0.10.RELEASE</spring-data-solr.version>
+ <spring-data.version>2.0.10.RELEASE</spring-data.version>
<jjwt.version>0.6.0</jjwt.version>
- <spring-boot.version>1.5.13.RELEASE</spring-boot.version>
+ <javax-servlet.version>4.0.1</javax-servlet.version>
</properties>
<profiles>
<profile>
@@ -170,9 +174,14 @@
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
- <version>3.4</version>
+ <version>3.6</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>javax.validation</groupId>
+ <artifactId>validation-api</artifactId>
+ <version>2.0.1.Final</version>
+ </dependency>
<!-- Spring dependencies -->
<dependency>
<groupId>org.springframework</groupId>
@@ -210,6 +219,11 @@
<artifactId>spring-security-ldap</artifactId>
<version>${spring.security.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.springframework.session</groupId>
+ <artifactId>spring-session</artifactId>
+ <version>${spring-session.version}</version>
+ </dependency>
<dependency>
<groupId>org.springframework.security.kerberos</groupId>
@@ -271,7 +285,7 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jersey</artifactId>
- <version>${spring-boot.version}</version>
+ <version>2.1.0.M2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
@@ -294,6 +308,11 @@
<version>${jersey.version}</version>
</dependency>
<dependency>
+ <groupId>org.glassfish.jaxb</groupId>
+ <artifactId>jaxb-runtime</artifactId>
+ <version>2.3.0.1</version>
+ </dependency>
+ <dependency>
<artifactId>guava</artifactId>
<groupId>com.google.guava</groupId>
<version>25.0-jre</version>
@@ -312,7 +331,24 @@
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
- <version>3.1.0</version>
+ <version>${javax-servlet.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.xml.bind</groupId>
+ <artifactId>jaxb-api</artifactId>
+ <version>2.3.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>javax.annotation</groupId>
+ <artifactId>javax.annotation-api</artifactId>
+ <version>1.3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.solr</groupId>
@@ -484,7 +520,7 @@
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-commons</artifactId>
- <version>1.13.11.RELEASE</version>
+ <version>${spring-data.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/LogSearch.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/LogSearch.java
index 7d42a92..9707608 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/LogSearch.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/LogSearch.java
@@ -21,17 +21,19 @@ package org.apache.ambari.logsearch;
import org.springframework.boot.Banner;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.rest.RepositoryRestMvcAutoConfiguration;
+import org.springframework.boot.autoconfigure.data.solr.SolrRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
-import org.springframework.boot.autoconfigure.web.WebMvcAutoConfiguration;
+import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.system.ApplicationPidFileWriter;
+import org.springframework.boot.context.ApplicationPidFileWriter;
@SpringBootApplication(
scanBasePackages = {"org.apache.ambari.logsearch"},
exclude = {
RepositoryRestMvcAutoConfiguration.class,
WebMvcAutoConfiguration.class,
- SolrAutoConfiguration.class
+ SolrAutoConfiguration.class,
+ SolrRepositoriesAutoConfiguration.class
}
)
public class LogSearch {
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchJerseyResourceConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchJerseyResourceConfig.java
index a3ce260..8027096 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchJerseyResourceConfig.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchJerseyResourceConfig.java
@@ -21,6 +21,7 @@ package org.apache.ambari.logsearch.conf;
import javax.ws.rs.ApplicationPath;
import org.apache.ambari.logsearch.rest.ServiceLogsResource;
+import org.glassfish.jersey.jackson.internal.jackson.jaxrs.json.JacksonJaxbJsonProvider;
import org.glassfish.jersey.server.ResourceConfig;
import org.glassfish.jersey.servlet.ServletProperties;
@@ -29,7 +30,7 @@ public class LogSearchJerseyResourceConfig extends ResourceConfig {
public LogSearchJerseyResourceConfig() {
packages(ServiceLogsResource.class.getPackage().getName());
- register(com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider.class);
+ register(JacksonJaxbJsonProvider.class);
property(ServletProperties.FILTER_FORWARD_ON_404, true);
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchServletConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchServletConfig.java
index a7a27da..f945ca6 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchServletConfig.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchServletConfig.java
@@ -21,23 +21,23 @@ package org.apache.ambari.logsearch.conf;
import org.apache.ambari.logsearch.configurer.SslConfigurer;
import org.apache.ambari.logsearch.web.listener.LogSearchSessionListener;
import org.eclipse.jetty.server.Connector;
-import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
import org.eclipse.jetty.util.ssl.SslContextFactory;
import org.glassfish.jersey.servlet.ServletContainer;
import org.glassfish.jersey.servlet.ServletProperties;
import org.springframework.boot.autoconfigure.web.ServerProperties;
-import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory;
-import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainer;
-import org.springframework.boot.context.embedded.jetty.JettyEmbeddedServletContainerFactory;
-import org.springframework.boot.context.embedded.jetty.JettyServerCustomizer;
+import org.springframework.boot.web.embedded.jetty.JettyServerCustomizer;
+import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.inject.Inject;
import javax.servlet.http.HttpSessionListener;
+import java.time.Duration;
+
import static org.apache.ambari.logsearch.common.LogSearchConstants.LOGSEARCH_APPLICATION_NAME;
import static org.apache.ambari.logsearch.common.LogSearchConstants.LOGSEARCH_SESSION_ID;
@@ -67,29 +67,26 @@ public class LogSearchServletConfig {
return registration;
}
+
@Bean
- public EmbeddedServletContainerFactory containerFactory() {
- final JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory = new JettyEmbeddedServletContainerFactory() {
- @Override
- protected JettyEmbeddedServletContainer getJettyEmbeddedServletContainer(Server server) {
- return new JettyEmbeddedServletContainer(server);
- }
- };
- jettyEmbeddedServletContainerFactory.setSessionTimeout(SESSION_TIMEOUT);
- serverProperties.getSession().getCookie().setName(LOGSEARCH_SESSION_ID);
- serverProperties.setDisplayName(LOGSEARCH_APPLICATION_NAME);
+ public ConfigurableServletWebServerFactory webServerFactory() {
+ JettyServletWebServerFactory webServerFactory = new JettyServletWebServerFactory();
+ serverProperties.getServlet().getSession().setTimeout(Duration.ofSeconds(SESSION_TIMEOUT));
+ serverProperties.getServlet().getSession().getCookie().setName(LOGSEARCH_SESSION_ID);
if ("https".equals(logSearchHttpConfig.getProtocol())) {
sslConfigurer.ensureStorePasswords();
sslConfigurer.loadKeystore();
- jettyEmbeddedServletContainerFactory.addServerCustomizers((JettyServerCustomizer) server -> {
+ webServerFactory.addServerCustomizers((JettyServerCustomizer) server -> {
SslContextFactory sslContextFactory = sslConfigurer.getSslContextFactory();
ServerConnector sslConnector = new ServerConnector(server, sslContextFactory);
sslConnector.setPort(logSearchHttpConfig.getHttpsPort());
server.setConnectors(new Connector[]{sslConnector});
});
} else {
- jettyEmbeddedServletContainerFactory.setPort(logSearchHttpConfig.getHttpPort());
+ webServerFactory.setPort(logSearchHttpConfig.getHttpPort());
}
- return jettyEmbeddedServletContainerFactory;
+
+ return webServerFactory;
}
+
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchSessionConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchSessionConfig.java
new file mode 100644
index 0000000..8023094
--- /dev/null
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/LogSearchSessionConfig.java
@@ -0,0 +1,46 @@
+/*
+ * 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.conf;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.session.MapSessionRepository;
+import org.springframework.session.config.annotation.web.http.EnableSpringHttpSession;
+import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;
+import org.springframework.session.web.http.DefaultCookieSerializer;
+
+import static org.apache.ambari.logsearch.common.LogSearchConstants.LOGSEARCH_SESSION_ID;
+
+@Configuration
+@EnableSpringHttpSession
+public class LogSearchSessionConfig extends AbstractHttpSessionApplicationInitializer {
+
+ @Bean
+ public DefaultCookieSerializer defaultCookieSerializer(){
+ DefaultCookieSerializer defaultCookieSerializer = new DefaultCookieSerializer();
+ defaultCookieSerializer.setCookieName(LOGSEARCH_SESSION_ID);
+ return defaultCookieSerializer;
+ }
+
+ @Bean
+ public MapSessionRepository sessionRepository() {
+ return new MapSessionRepository();
+ }
+
+}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
index 87dc22f..fc985af 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SecurityConfig.java
@@ -60,6 +60,8 @@ import org.springframework.security.ldap.authentication.NullLdapAuthoritiesPopul
import org.springframework.security.ldap.search.FilterBasedLdapUserSearch;
import org.springframework.security.ldap.userdetails.DefaultLdapAuthoritiesPopulator;
import org.springframework.security.ldap.userdetails.LdapAuthoritiesPopulator;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.web.access.intercept.FilterSecurityInterceptor;
import org.springframework.security.web.authentication.www.BasicAuthenticationFilter;
import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
@@ -262,6 +264,11 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
return filter;
}
+ @Bean
+ public PasswordEncoder passwordEncoder() {
+ return new BCryptPasswordEncoder();
+ }
+
private LogsearchFilter logsearchServiceLogFilter() {
return new LogsearchFilter(serviceLogsRequestMatcher(), new GlobalStateProvider(solrServiceLogsState, solrServiceLogPropsConfig));
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SolrConfig.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SolrConfig.java
index 33f4f6f..4dc74ee 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SolrConfig.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/conf/SolrConfig.java
@@ -20,17 +20,14 @@ package org.apache.ambari.logsearch.conf;
import org.apache.ambari.logsearch.conf.global.SolrAuditLogsState;
import org.apache.ambari.logsearch.conf.global.SolrCollectionState;
-import org.apache.ambari.logsearch.conf.global.LogLevelFilterManagerState;
import org.apache.ambari.logsearch.conf.global.SolrServiceLogsState;
import org.apache.ambari.logsearch.conf.global.SolrEventHistoryState;
import org.apache.ambari.logsearch.dao.SolrSchemaFieldDao;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
-import org.springframework.data.solr.repository.config.EnableSolrRepositories;
import org.springframework.scheduling.annotation.EnableScheduling;
@Configuration
-@EnableSolrRepositories
@EnableScheduling
public class SolrConfig {
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
index 3e915a4..cf25bef 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/dao/UserDao.java
@@ -37,6 +37,7 @@ import org.apache.ambari.logsearch.web.model.Role;
import org.apache.ambari.logsearch.web.model.User;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Repository;
@@ -53,6 +54,9 @@ public class UserDao {
private AuthPropsConfig authPropsConfig;
@Inject
+ private PasswordEncoder passwordEncoder;
+
+ @Inject
private RoleDao roleDao;
private ArrayList<HashMap<String, String>> userList = null;
@@ -125,7 +129,7 @@ public class UserDao {
String username = user.get(USER_NAME);
String password = user.get(PASSWORD);
if (StringUtils.isNotBlank(password)) {
- encPassword = CommonUtil.encryptPassword(username, password);
+ encPassword = passwordEncoder.encode(password);
user.put(PASSWORD, "");
user.put(ENC_PASSWORD, encPassword);
isUpdated = true;
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/util/CommonUtil.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/util/CommonUtil.java
deleted file mode 100644
index 1cfe469..0000000
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/util/CommonUtil.java
+++ /dev/null
@@ -1,41 +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.util;
-
-import java.security.SecureRandom;
-
-import org.springframework.security.authentication.encoding.Md5PasswordEncoder;
-
-public class CommonUtil {
- private CommonUtil() {
- throw new UnsupportedOperationException();
- }
-
- private static SecureRandom secureRandom = new SecureRandom();
- private static int counter = 0;
-
- public static String genGUI() {
- return System.currentTimeMillis() + "_" + secureRandom.nextInt(1000) + "_" + counter++;
- }
-
- private static final Md5PasswordEncoder md5Encoder = new Md5PasswordEncoder();
- public static String encryptPassword(String username, String password) {
- return md5Encoder.encodePassword(password, username);
- }
-}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
index fed86e8..b2cf041 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/LogsearchSecurityContextFormationFilter.java
@@ -19,6 +19,7 @@
package org.apache.ambari.logsearch.web.filters;
import java.io.IOException;
+import java.security.SecureRandom;
import javax.inject.Inject;
import javax.servlet.FilterChain;
@@ -32,7 +33,6 @@ import javax.servlet.http.HttpSession;
import org.apache.ambari.logsearch.common.LogSearchContext;
import org.apache.ambari.logsearch.manager.SessionManager;
-import org.apache.ambari.logsearch.util.CommonUtil;
import org.apache.ambari.logsearch.web.model.User;
import org.apache.log4j.Logger;
import org.springframework.security.authentication.AnonymousAuthenticationToken;
@@ -47,6 +47,8 @@ public class LogsearchSecurityContextFormationFilter extends GenericFilterBean {
public static final String LOGSEARCH_SC_SESSION_KEY = "LOGSEARCH_SECURITY_CONTEXT";
public static final String USER_AGENT = "User-Agent";
+ private static SecureRandom secureRandom = new SecureRandom();
+
@Inject
SessionManager sessionManager;
@@ -80,7 +82,7 @@ public class LogsearchSecurityContextFormationFilter extends GenericFilterBean {
}
if (msaCookie == null) {
HttpServletResponse httpResponse = (HttpServletResponse) response;
- msaCookie = CommonUtil.genGUI();
+ msaCookie = System.currentTimeMillis() + "_" + secureRandom.nextInt(1000);
Cookie cookie = new Cookie("msa", msaCookie);
// TODO: Need to revisit this
cookie.setMaxAge(Integer.MAX_VALUE);
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/NoServletContext.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/NoServletContext.java
index f1663bc..cff90f3 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/NoServletContext.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/filters/NoServletContext.java
@@ -76,6 +76,36 @@ public class NoServletContext implements ServletContext {
}
@Override
+ public int getSessionTimeout() {
+ return 0;
+ }
+
+ @Override
+ public void setSessionTimeout(int i) {
+
+ }
+
+ @Override
+ public String getRequestCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public void setRequestCharacterEncoding(String s) {
+
+ }
+
+ @Override
+ public String getResponseCharacterEncoding() {
+ return null;
+ }
+
+ @Override
+ public void setResponseCharacterEncoding(String s) {
+
+ }
+
+ @Override
public SessionCookieConfig getSessionCookieConfig() {
return null;
}
@@ -259,6 +289,11 @@ public class NoServletContext implements ServletContext {
}
@Override
+ public ServletRegistration.Dynamic addJspFile(String s, String s1) {
+ return null;
+ }
+
+ @Override
public javax.servlet.ServletRegistration.Dynamic addServlet(
String servletName, Servlet servlet) {
return null;
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
index 8c12e0a..1f04bdf 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProvider.java
@@ -20,8 +20,8 @@ package org.apache.ambari.logsearch.web.security;
import java.util.Collection;
+import com.google.common.annotations.VisibleForTesting;
import org.apache.ambari.logsearch.conf.AuthPropsConfig;
-import org.apache.ambari.logsearch.util.CommonUtil;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
@@ -32,6 +32,7 @@ import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.password.PasswordEncoder;
import javax.inject.Inject;
import javax.inject.Named;
@@ -47,6 +48,9 @@ public class LogsearchFileAuthenticationProvider extends LogsearchAbstractAuthen
@Inject
private UserDetailsService userDetailsService;
+ @Inject
+ private PasswordEncoder passwordEncoder;
+
@Override
public Authentication authenticate(Authentication authentication) throws AuthenticationException {
if (!authPropsConfig.isAuthFileEnabled()) {
@@ -75,8 +79,8 @@ public class LogsearchFileAuthenticationProvider extends LogsearchAbstractAuthen
logger.error("Password can't be null or empty.");
throw new BadCredentialsException("Password can't be null or empty.");
}
- String encPassword = CommonUtil.encryptPassword(username, password);
- if (!encPassword.equals(user.getPassword())) {
+ String encPassword = passwordEncoder.encode(password);
+ if (!passwordEncoder.matches(user.getPassword(), encPassword)) {
logger.error("Wrong password for user=" + username);
throw new BadCredentialsException("Wrong password.");
}
@@ -85,4 +89,9 @@ public class LogsearchFileAuthenticationProvider extends LogsearchAbstractAuthen
authentication = new UsernamePasswordAuthenticationToken(username, encPassword, authorities);
return authentication;
}
+
+ @VisibleForTesting
+ public void setPasswordEncoder(PasswordEncoder passwordEncoder) {
+ this.passwordEncoder = passwordEncoder;
+ }
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/main/scripts/logsearch.sh b/ambari-logsearch/ambari-logsearch-server/src/main/scripts/logsearch.sh
index a51775d..629e8f2 100755
--- a/ambari-logsearch/ambari-logsearch-server/src/main/scripts/logsearch.sh
+++ b/ambari-logsearch/ambari-logsearch-server/src/main/scripts/logsearch.sh
@@ -78,7 +78,7 @@ else
LOGSEARCH_GC_LOGFILE="$LOG_PATH_WITHOUT_SLASH/$LOGSEARCH_GC_LOGFILE"
fi
-LOGSEARCH_GC_OPTS="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$LOGSEARCH_GC_LOGFILE"
+LOGSEARCH_GC_OPTS="-Xlog:gc*:file=$LOGSEARCH_GC_LOGFILE:time"
function print_usage() {
cat << EOF
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditLogRequestConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditLogRequestConverterTest.java
index 2ccc741..a34b872 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditLogRequestConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditLogRequestConverterTest.java
@@ -47,8 +47,8 @@ public class AuditLogRequestConverterTest extends AbstractRequestConverterTest {
SimpleQuery simpleQuery = underTest.convert(request);
SolrQuery queryResult = new DefaultQueryParser().doConstructSolrQuery(simpleQuery);
// THEN
- assertEquals("?q=*%3A*&start=0&rows=25&fq=repo%3A%28logsearch_app+OR+secure_log%29&fq=-repo%3A%28hst_agent+OR+system_message%29" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=cluster%3Acl1&fq=reqUser%3A%28joe+OR+steven%29&sort=evtTime+desc%2Cseq_num+desc",
+ assertEquals("?q=*%3A*&start=0&rows=25&fq=repo%3A%28logsearch_app+%22OR%22+secure_log%29&fq=-repo%3A%28hst_agent+%22OR%22+system_message%29" +
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=cluster%3Acl1&fq=reqUser%3A%28joe+%22OR%22+steven%29&sort=evtTime+desc%2Cseq_num+desc",
queryResult.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditServiceLoadRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditServiceLoadRequestQueryConverterTest.java
index 9d3d145..988be98 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditServiceLoadRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/AuditServiceLoadRequestQueryConverterTest.java
@@ -45,8 +45,8 @@ public class AuditServiceLoadRequestQueryConverterTest extends AbstractRequestCo
SolrQuery solrQuery = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=evtTime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-repo%3A%28hst_agent+OR+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=10&facet.field=repo", solrQuery.toQueryString());
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-repo%3A%28hst_agent+%22OR%22+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=10&facet.field=repo", solrQuery.toQueryString());
}
@Test
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/BaseServiceLogRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/BaseServiceLogRequestQueryConverterTest.java
index 45745da..e788bdc 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/BaseServiceLogRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/BaseServiceLogRequestQueryConverterTest.java
@@ -53,9 +53,9 @@ public class BaseServiceLogRequestQueryConverterTest extends AbstractRequestConv
SolrQuery solrQuery = defaultQueryParser.doConstructSolrQuery(query);
SolrUtil.removeDoubleOrTripleEscapeFromFilters(solrQuery);
// THEN
- assertEquals("?q=*%3A*&start=0&rows=25&fq=type%3A%28logsearch_app+OR+secure_log%29&fq=-type%3A%28hst_agent+OR+system_message%29" +
+ assertEquals("?q=*%3A*&start=0&rows=25&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29&fq=-type%3A%28hst_agent+%22OR%22+system_message%29" +
"&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=cluster%3Acl1&fq=path%3A%5C%2Fvar%5C%2Flog%5C%2Fmyfile%5C-%5C*%5C-hdfs.log" +
- "&fq=type%3Acomponent&fq=level%3A%28FATAL+OR+ERROR+OR+WARN+OR+UNKNOWN%29&fq=host%3A%28logsearch1.com+OR+logsearch2.com%29" +
+ "&fq=type%3Acomponent&fq=level%3A%28FATAL+%22OR%22+ERROR+%22OR%22+WARN+%22OR%22+UNKNOWN%29&fq=host%3A%28logsearch1.com+%22OR%22+logsearch2.com%29" +
"&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D&sort=logtime+desc%2Cseq_num+desc",
solrQuery.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/FieldAuditLogRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/FieldAuditLogRequestQueryConverterTest.java
index 669ef1a..da6baac 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/FieldAuditLogRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/FieldAuditLogRequestQueryConverterTest.java
@@ -46,8 +46,8 @@ public class FieldAuditLogRequestQueryConverterTest extends AbstractRequestConve
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=evtTime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-repo%3A%28hst_agent+OR+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.pivot=myfield%2Crepo",
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-repo%3A%28hst_agent+%22OR%22+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.pivot=myfield%2Crepo",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogAnyGraphRequestConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogAnyGraphRequestConverterTest.java
index 02819f1..4091949 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogAnyGraphRequestConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogAnyGraphRequestConverterTest.java
@@ -46,8 +46,8 @@ public class ServiceLogAnyGraphRequestConverterTest extends AbstractRequestConve
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.field=level",
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.field=level",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentLevelRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentLevelRequestQueryConverterTest.java
index f395c88..a417c07 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentLevelRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentLevelRequestQueryConverterTest.java
@@ -47,8 +47,8 @@ public class ServiceLogComponentLevelRequestQueryConverterTest extends AbstractR
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=type%3Amycomponent&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29&fq=cluster%3Acl1" +
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=type%3Amycomponent&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29&fq=cluster%3Acl1" +
"&facet=true&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=type%2Clevel",
query.toQueryString());
}
@@ -61,7 +61,7 @@ public class ServiceLogComponentLevelRequestQueryConverterTest extends AbstractR
// WHEN
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
- assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29&facet=true" +
+ assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29&facet=true" +
"&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=type%2Clevel", query.toQueryString());
}
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentRequestFacetQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentRequestFacetQueryConverterTest.java
index 8ece866..24af013 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentRequestFacetQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogComponentRequestFacetQueryConverterTest.java
@@ -47,8 +47,8 @@ public class ServiceLogComponentRequestFacetQueryConverterTest extends AbstractR
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=type%3Amycomponent&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29" +
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=type%3Amycomponent&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29" +
"&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=type%2Chost%2Clevel&facet.pivot=type%2Clevel",
query.toQueryString());
}
@@ -61,7 +61,7 @@ public class ServiceLogComponentRequestFacetQueryConverterTest extends AbstractR
// WHEN
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
- assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29" +
+ assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29" +
"&facet=true&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=type%2Chost%2Clevel&facet.pivot=type%2Clevel",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogLevelCountRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogLevelCountRequestQueryConverterTest.java
index 54d3435..6326325 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogLevelCountRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogLevelCountRequestQueryConverterTest.java
@@ -45,8 +45,8 @@ public class ServiceLogLevelCountRequestQueryConverterTest extends AbstractReque
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.field=level",
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=-1&facet.field=level",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTreeRequestFacetQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTreeRequestFacetQueryConverterTest.java
index 7c6c9fd..b7ced1d 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTreeRequestFacetQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTreeRequestFacetQueryConverterTest.java
@@ -45,8 +45,8 @@ public class ServiceLogTreeRequestFacetQueryConverterTest extends AbstractReques
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29&fq=cluster%3Acl1&facet=true" +
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29&fq=cluster%3Acl1&facet=true" +
"&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=host%2Ctype%2Clevel&facet.pivot=host%2Clevel",
query.toQueryString());
}
@@ -59,7 +59,7 @@ public class ServiceLogTreeRequestFacetQueryConverterTest extends AbstractReques
// WHEN
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
- assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+OR+ERROR+OR+FATAL%29" +
+ assertEquals("?q=*%3A*&rows=0&fq=logtime%3A%5B*+TO+*%5D&fq=level%3A%28WARN+%22OR%22+ERROR+%22OR%22+FATAL%29" +
"&facet=true&facet.mincount=1&facet.limit=-1&facet.sort=index&facet.pivot=host%2Ctype%2Clevel&facet.pivot=host%2Clevel",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTruncatedRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTruncatedRequestQueryConverterTest.java
index b2b7014..532afb4 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTruncatedRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/ServiceLogTruncatedRequestQueryConverterTest.java
@@ -47,8 +47,8 @@ public class ServiceLogTruncatedRequestQueryConverterTest extends AbstractReques
// WHEN
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
- assertEquals("?q=*%3A*&start=0&rows=10&fq=type%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-type%3A%28hst_agent+OR+system_message%29&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage" +
+ assertEquals("?q=*%3A*&start=0&rows=10&fq=type%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-type%3A%28hst_agent+%22OR%22+system_message%29&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage" +
"&fq=cluster%3Acl1&sort=logtime+desc%2Cseq_num+desc",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/TopFieldAuditLogRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/TopFieldAuditLogRequestQueryConverterTest.java
index b1b4d49..81b7f73 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/TopFieldAuditLogRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/TopFieldAuditLogRequestQueryConverterTest.java
@@ -47,8 +47,8 @@ public class TopFieldAuditLogRequestQueryConverterTest extends AbstractRequestCo
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=evtTime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-repo%3A%28hst_agent+OR+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=10&facet.pivot=myfield%2Crepo",
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-repo%3A%28hst_agent+%22OR%22+system_message%29&fq=cluster%3Acl1&facet=true&facet.mincount=1&facet.limit=10&facet.pivot=myfield%2Crepo",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/UserExportRequestQueryConverterTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/UserExportRequestQueryConverterTest.java
index 1ec6414..11be1bc 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/UserExportRequestQueryConverterTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/converter/UserExportRequestQueryConverterTest.java
@@ -46,8 +46,8 @@ public class UserExportRequestQueryConverterTest extends AbstractRequestConverte
SolrQuery query = new DefaultQueryParser().doConstructSolrQuery(underTest.convert(request));
// THEN
assertEquals("?q=*%3A*&rows=0&fq=evtTime%3A%5B2016-09-13T22%3A00%3A01.000Z+TO+2016-09-14T22%3A00%3A01.000Z%5D" +
- "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+OR+secure_log%29" +
- "&fq=-repo%3A%28hst_agent+OR+system_message%29&facet=true&facet.mincount=1&facet.limit=-1&facet.pivot=reqUser%2Crepo&facet.pivot=resource%2Crepo",
+ "&fq=log_message%3Amyincludemessage&fq=-log_message%3Amyexcludemessage&fq=repo%3A%28logsearch_app+%22OR%22+secure_log%29" +
+ "&fq=-repo%3A%28hst_agent+%22OR%22+system_message%29&facet=true&facet.mincount=1&facet.limit=-1&facet.pivot=reqUser%2Crepo&facet.pivot=resource%2Crepo",
query.toQueryString());
}
diff --git a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProviderTest.java b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProviderTest.java
index 407cc83..0c3ed29 100644
--- a/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProviderTest.java
+++ b/ambari-logsearch/ambari-logsearch-server/src/test/java/org/apache/ambari/logsearch/web/security/LogsearchFileAuthenticationProviderTest.java
@@ -19,7 +19,6 @@
package org.apache.ambari.logsearch.web.security;
import org.apache.ambari.logsearch.conf.AuthPropsConfig;
-import org.apache.ambari.logsearch.util.CommonUtil;
import org.apache.ambari.logsearch.web.model.User;
import org.junit.Before;
import org.junit.Test;
@@ -29,6 +28,8 @@ import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetailsService;
+import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
+import org.springframework.security.crypto.password.PasswordEncoder;
import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertSame;
@@ -47,6 +48,7 @@ public class LogsearchFileAuthenticationProviderTest {
private LogsearchFileAuthenticationProvider provider;
private AuthPropsConfig mockAuthPropsConfig;
private UserDetailsService mockUserDetailsService;
+ private PasswordEncoder passwordEncoder;
@Before
public void init() throws Exception {
@@ -61,6 +63,9 @@ public class LogsearchFileAuthenticationProviderTest {
Field userDetailsServiceField = LogsearchFileAuthenticationProvider.class.getDeclaredField("userDetailsService");
userDetailsServiceField.setAccessible(true);
userDetailsServiceField.set(provider, mockUserDetailsService);
+
+ passwordEncoder = new BCryptPasswordEncoder();
+ provider.setPasswordEncoder(passwordEncoder);
}
@Test
@@ -190,7 +195,7 @@ public class LogsearchFileAuthenticationProviderTest {
@Test
public void testAuthenticationWrongPassword() {
List<GrantedAuthority> grantedAuths = Arrays.<GrantedAuthority>asList(new SimpleGrantedAuthority("ROLE_USER"));
- User user = new User("principal", CommonUtil.encryptPassword("principal", "notCredentials"), grantedAuths);
+ User user = new User("principal", passwordEncoder.encode("notCredentials"), grantedAuths);
expect(mockAuthPropsConfig.isAuthFileEnabled()).andReturn(true);
expect(mockUserDetailsService.loadUserByUsername("principal")).andReturn(user);
@@ -211,7 +216,8 @@ public class LogsearchFileAuthenticationProviderTest {
@Test
public void testAuthenticationSuccessful() {
List<GrantedAuthority> grantedAuths = Arrays.<GrantedAuthority>asList(new SimpleGrantedAuthority("ROLE_USER"));
- User user = new User("principal", CommonUtil.encryptPassword("principal", "credentials"), grantedAuths);
+ String encodedPassword = passwordEncoder.encode("credentials");
+ User user = new User("principal", "credentials", grantedAuths);
expect(mockAuthPropsConfig.isAuthFileEnabled()).andReturn(true);
expect(mockUserDetailsService.loadUserByUsername("principal")).andReturn(user);
@@ -219,10 +225,8 @@ public class LogsearchFileAuthenticationProviderTest {
replay(mockAuthPropsConfig, mockUserDetailsService);
Authentication authentication = new TestingAuthenticationToken("principal", "credentials");
-
Authentication authenticationResult = provider.authenticate(authentication);
assertEquals("principal", authenticationResult.getName());
- assertEquals(CommonUtil.encryptPassword("principal", "credentials"), authenticationResult.getCredentials());
assertEquals(1, authenticationResult.getAuthorities().size());
assertEquals(new SimpleGrantedAuthority("ROLE_USER"), authenticationResult.getAuthorities().iterator().next());
diff --git a/ambari-logsearch/docker/Dockerfile b/ambari-logsearch/docker/Dockerfile
index c1101cb..4e7724c 100644
--- a/ambari-logsearch/docker/Dockerfile
+++ b/ambari-logsearch/docker/Dockerfile
@@ -22,10 +22,11 @@ RUN yum -y install glibc-common
ENV HOME /root
#Install JAVA
-ENV JAVA_VERSION 8u131
-ENV BUILD_VERSION b11
-RUN wget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION-$BUILD_VERSION/d54c1d3a095b4ff2b6607d096fa80163/jdk-$JAVA_VERSION-linux-x64.rpm -O jdk-8-linux-x64.rpm
-RUN rpm -ivh jdk-8-linux-x64.rpm
+ENV JAVA_VERSION 10.0.2
+ENV BUILD_VERSION 13
+
+RUN wget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/$JAVA_VERSION+$BUILD_VERSION/19aef61b38124481863b1413dce1855f/jdk-${JAVA_VERSION}_linux-x64_bin.rpm -O jdk-10-linux-x64.rpm
+RUN rpm -ivh jdk-10-linux-x64.rpm
ENV JAVA_HOME /usr/java/default/
#Install Selenium server
diff --git a/ambari-logsearch/pom.xml b/ambari-logsearch/pom.xml
index 3fc5974..bb434d9 100644
--- a/ambari-logsearch/pom.xml
+++ b/ambari-logsearch/pom.xml
@@ -39,7 +39,7 @@
<module>ambari-logsearch-config-solr</module>
</modules>
<properties>
- <jdk.version>1.8</jdk.version>
+ <jdk.version>10</jdk.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<python.ver>python >= 2.6</python.ver>
<deb.python.ver>python (>= 2.6)</deb.python.ver>
@@ -202,7 +202,7 @@
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
- <version>3.2</version>
+ <version>3.7.0</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>