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 &gt;= 2.6</python.ver>
     <deb.python.ver>python (&gt;= 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>