fixing warnings from checkstyle in catalog-fe 11/91511/5
authorBartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Tue, 16 Jul 2019 09:09:50 +0000 (11:09 +0200)
committerTomasz Golabek <tomasz.golabek@nokia.com>
Wed, 17 Jul 2019 10:08:01 +0000 (10:08 +0000)
Issue-ID: SDC-2454
Signed-off-by: Bartosz Gardziejewski <bartosz.gardziejewski@nokia.com>
Change-Id: I1fbeccb8c661233b81fea787457631f4a898fd46

22 files changed:
catalog-fe/src/main/java/org/openecomp/sdc/fe/Constants.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/GzipFilter.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/Audit.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/CrudOperation.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/HttpRequestInfo.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/ImportMetadata.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/MdcData.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/impl/PluginStatusBL.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/listen/FEAppContextListener.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/listen/MyObjectMapperProvider.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigMgrServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/ConfigServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeHealthCheckServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/HealthCheckService.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/KibanaServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/LoggingServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/PortalServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/SSLProxyServlet.java
catalog-fe/src/main/java/org/openecomp/sdc/fe/utils/BeProtocol.java
checkstyle-suppressions.xml
pom.xml

index e426444..d316942 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -22,14 +22,18 @@ package org.openecomp.sdc.fe;
 
 public class Constants {
 
-       public static final String HTTP_IV_USER = "HTTP_IV_USER";
-       public static final String USER_ID = "USER_ID";
-       public static final String ECOMP_PORTAL_COOKIE = "UserId";
-       public static final String HTTP_CSP_FIRSTNAME = "HTTP_CSP_FIRSTNAME";
-       public static final String HTTP_CSP_LASTNAME = "HTTP_CSP_LASTNAME";
-       public static final String HTTP_IV_REMOTE_ADDRESS = "HTTP_IV_REMOTE_ADDRESS";
-       public static final String HTTP_CSP_WSTYPE = "HTTP_CSP_WSTYPE";
-       public static final String HTTP_CSP_EMAIL = "HTTP_CSP_EMAIL";
-       public static final String WEBSEAL_USER_ID_HEADER = "csp-attuid";
-       
+    private Constants() {
+
+    }
+
+    public static final String HTTP_IV_USER = "HTTP_IV_USER";
+    public static final String USER_ID = "USER_ID";
+    public static final String ECOMP_PORTAL_COOKIE = "UserId";
+    public static final String HTTP_CSP_FIRSTNAME = "HTTP_CSP_FIRSTNAME";
+    public static final String HTTP_CSP_LASTNAME = "HTTP_CSP_LASTNAME";
+    public static final String HTTP_IV_REMOTE_ADDRESS = "HTTP_IV_REMOTE_ADDRESS";
+    public static final String HTTP_CSP_WSTYPE = "HTTP_CSP_WSTYPE";
+    public static final String HTTP_CSP_EMAIL = "HTTP_CSP_EMAIL";
+    public static final String WEBSEAL_USER_ID_HEADER = "csp-attuid";
+
 }
index d7280ed..f45bf82 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
 
 package org.openecomp.sdc.fe;
 
-import javax.servlet.*;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 
@@ -31,7 +36,7 @@ public class GzipFilter implements Filter {
             throws IOException,
             ServletException {
 
-      
+
         final HttpServletResponse httpResponse = (HttpServletResponse) response;
 
 
@@ -40,15 +45,15 @@ public class GzipFilter implements Filter {
         chain.doFilter(request, response);
     }
 
-       @Override
-       public void init(FilterConfig filterConfig) throws ServletException {
-               // TODO Auto-generated method stub
-               
-       }
-
-       @Override
-       public void destroy() {
-               // TODO Auto-generated method stub
-               
-       }
+    @Override
+    public void init(FilterConfig filterConfig) throws ServletException {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    public void destroy() {
+        // TODO Auto-generated method stub
+
+    }
 }
index 6eef071..4cdc7d6 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -28,45 +28,45 @@ import java.util.Map;
 
 public class Audit {
 
-       private Audit() {
-       }
+    private Audit() {
+    }
 
-       public static void error(Logger log, HttpRequestInfo requestInfo, int status) {
-               String errorMsg = "Internal Error";
-               if (requestInfo != null && requestInfo.getHeaders() != null) {
-                       Map<String, String> requestHeaders = requestInfo.getHeaders();
-                       errorMsg = String.format(Constants.ERROR_LOG_FORMAT, requestHeaders.get(Constants.USER_ID_HEADER),
-                                       requestHeaders.get(Constants.FIRST_NAME_HEADER) + " "
-                                                       + requestHeaders.get(Constants.LAST_NAME_HEADER),
-                                       requestHeaders.get(Constants.ORIGIN_HEADER), requestHeaders.get(Constants.ACCESS_HEADER),
-                                       requestInfo.getRequestURL(), status);
-               }
-               log.error(errorMsg);
-       }
+    public static void error(Logger log, HttpRequestInfo requestInfo, int status) {
+        String errorMsg = "Internal Error";
+        if (requestInfo != null && requestInfo.getHeaders() != null) {
+            Map<String, String> requestHeaders = requestInfo.getHeaders();
+            errorMsg = String.format(Constants.ERROR_LOG_FORMAT, requestHeaders.get(Constants.USER_ID_HEADER),
+                    requestHeaders.get(Constants.FIRST_NAME_HEADER) + " "
+                            + requestHeaders.get(Constants.LAST_NAME_HEADER),
+                    requestHeaders.get(Constants.ORIGIN_HEADER), requestHeaders.get(Constants.ACCESS_HEADER),
+                    requestInfo.getRequestURL(), status);
+        }
+        log.error(errorMsg);
+    }
 
-       public static void error(Logger log, HttpServletRequest request, int status) {
-               String errorMsg = "Internal Error";
-               if (request != null) {
+    public static void error(Logger log, HttpServletRequest request, int status) {
+        String errorMsg = "Internal Error";
+        if (request != null) {
 
-                       errorMsg = String.format(Constants.ERROR_LOG_FORMAT, request.getHeader(Constants.USER_ID_HEADER),
-                                       request.getHeader(Constants.FIRST_NAME_HEADER) + " "
-                                                       + request.getHeader(Constants.LAST_NAME_HEADER),
-                                       request.getHeader(Constants.ORIGIN_HEADER), request.getHeader(Constants.ACCESS_HEADER),
-                                       request.getRequestURL(), status);
-               }
-               log.error(errorMsg);
-       }
+            errorMsg = String.format(Constants.ERROR_LOG_FORMAT, request.getHeader(Constants.USER_ID_HEADER),
+                    request.getHeader(Constants.FIRST_NAME_HEADER) + " "
+                            + request.getHeader(Constants.LAST_NAME_HEADER),
+                    request.getHeader(Constants.ORIGIN_HEADER), request.getHeader(Constants.ACCESS_HEADER),
+                    request.getRequestURL(), status);
+        }
+        log.error(errorMsg);
+    }
 
-       public static void info(Logger log, HttpRequestInfo requestInfo, int status) {
-               String errorMsg = "Internal Error";
-               if (requestInfo != null && requestInfo.getHeaders() != null) {
-                       Map<String, String> requestHeaders = requestInfo.getHeaders();
-                       errorMsg = String.format(Constants.ERROR_LOG_FORMAT, requestHeaders.get(Constants.USER_ID_HEADER),
-                                       requestHeaders.get(Constants.FIRST_NAME_HEADER) + " "
-                                                       + requestHeaders.get(Constants.LAST_NAME_HEADER),
-                                       requestHeaders.get(Constants.ORIGIN_HEADER), requestHeaders.get(Constants.ACCESS_HEADER),
-                                       requestInfo.getRequestURL(), status);
-               }
-               log.info(errorMsg);
-       }
+    public static void info(Logger log, HttpRequestInfo requestInfo, int status) {
+        String errorMsg = "Internal Error";
+        if (requestInfo != null && requestInfo.getHeaders() != null) {
+            Map<String, String> requestHeaders = requestInfo.getHeaders();
+            errorMsg = String.format(Constants.ERROR_LOG_FORMAT, requestHeaders.get(Constants.USER_ID_HEADER),
+                    requestHeaders.get(Constants.FIRST_NAME_HEADER) + " "
+                            + requestHeaders.get(Constants.LAST_NAME_HEADER),
+                    requestHeaders.get(Constants.ORIGIN_HEADER), requestHeaders.get(Constants.ACCESS_HEADER),
+                    requestInfo.getRequestURL(), status);
+        }
+        log.info(errorMsg);
+    }
 }
index 27fc02c..133e881 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -22,5 +22,5 @@ package org.openecomp.sdc.fe.impl;
 
 public enum CrudOperation {
 
-       CREATE, RETRIEVE, UPDATE, DELETE
+    CREATE, RETRIEVE, UPDATE, DELETE
 }
index bf5165f..de8ebe3 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -27,47 +27,47 @@ import java.util.Map;
 
 public class HttpRequestInfo {
 
-       public HttpRequestInfo(HttpServletRequest request, Map<String, String> headersMap, String data) {
-               headers = headersMap;
-               requestURL = request.getRequestURI();
-               requestData = new ByteArrayInputStream(data.getBytes());
-               originServletContext = request.getContextPath();
-       }
+    public HttpRequestInfo(HttpServletRequest request, Map<String, String> headersMap, String data) {
+        headers = headersMap;
+        requestURL = request.getRequestURI();
+        requestData = new ByteArrayInputStream(data.getBytes());
+        originServletContext = request.getContextPath();
+    }
 
-       private Map<String, String> headers;
-       private String requestURL;
-       private InputStream requestData;
-       private String originServletContext;
+    private Map<String, String> headers;
+    private String requestURL;
+    private InputStream requestData;
+    private String originServletContext;
 
-       public Map<String, String> getHeaders() {
-               return headers;
-       }
+    public Map<String, String> getHeaders() {
+        return headers;
+    }
 
-       public void setHeaders(Map<String, String> headers) {
-               this.headers = headers;
-       }
+    public void setHeaders(Map<String, String> headers) {
+        this.headers = headers;
+    }
 
-       public String getRequestURL() {
-               return requestURL;
-       }
+    public String getRequestURL() {
+        return requestURL;
+    }
 
-       public void setRequestURL(String requestURL) {
-               this.requestURL = requestURL;
-       }
+    public void setRequestURL(String requestURL) {
+        this.requestURL = requestURL;
+    }
 
-       public InputStream getRequestData() {
-               return requestData;
-       }
+    public InputStream getRequestData() {
+        return requestData;
+    }
 
-       public void setRequestData(InputStream requestData) {
-               this.requestData = requestData;
-       }
+    public void setRequestData(InputStream requestData) {
+        this.requestData = requestData;
+    }
 
-       public String getOriginServletContext() {
-               return originServletContext;
-       }
+    public String getOriginServletContext() {
+        return originServletContext;
+    }
 
-       public void setOriginServletContext(String originServletContext) {
-               this.originServletContext = originServletContext;
-       }
+    public void setOriginServletContext(String originServletContext) {
+        this.originServletContext = originServletContext;
+    }
 }
index c74c510..52c888f 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -32,9 +32,9 @@ import lombok.Setter;
 @Getter
 @Setter
 public class ImportMetadata {
-       private String name;
-       private long size;
-       private String mime;
-       private String creator;
-       private String md5Checksum;
+    private String name;
+    private long size;
+    private String mime;
+    private String creator;
+    private String md5Checksum;
 }
index e95f6b8..8a996d5 100644 (file)
@@ -27,9 +27,9 @@ import lombok.Getter;
 @Getter
 @AllArgsConstructor
 public class MdcData {
-               private String serviceInstanceID;
-               private String userId;
-               private String remoteAddr;
-               private String localAddr;
-               private Long transactionStartTime;
-       }
\ No newline at end of file
+    private String serviceInstanceID;
+    private String userId;
+    private String remoteAddr;
+    private String localAddr;
+    private Long transactionStartTime;
+}
index e439600..cdb9e0f 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -22,6 +22,7 @@ package org.openecomp.sdc.fe.impl;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
+import org.apache.http.HttpStatus;
 import org.apache.http.client.config.RequestConfig;
 import org.apache.http.client.methods.CloseableHttpResponse;
 import org.apache.http.client.methods.HttpHead;
@@ -35,90 +36,88 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
 
 public class PluginStatusBL {
 
-       private static final Logger log = LoggerFactory.getLogger(PluginStatusBL.class.getName());
-       private final Gson gson;
-       private final CloseableHttpClient client;
-       private final PluginsConfiguration pluginsConfiguration;
-       private RequestConfig requestConfig;
-
-       public PluginStatusBL() {
-               this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration();
-               this.client = HttpClients.createDefault();
-               this.gson = new GsonBuilder().setPrettyPrinting().create();
-       }
-
-       public PluginStatusBL(CloseableHttpClient client) {
-               this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration();
-               this.client = client;
-
-               this.gson = new GsonBuilder().setPrettyPrinting().create();
-                               
-       }
-
-       public String getPluginsList() {
-               String result = null;
-
-               if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) {
-                       log.warn("Configuration of type {} was not found", PluginsConfiguration.class);
-                       throw new InvalidArgumentException("the plugin configuration was not read successfully.");
-
-               } else {
-                       log.debug("The value returned from getConfig is {}", pluginsConfiguration);
-
-                       result = gson.toJson(pluginsConfiguration.getPluginsList());
-               }
-               return result;
-       }
-
-       public String getPluginAvailability(String pluginId) {
-               String result = null;
-
-               if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) {
-                       log.warn("Configuration of type {} was not found", PluginsConfiguration.class);
-                       throw new InvalidArgumentException("the plugin configuration was not read successfully.");
-
-               } else {
-                       log.debug("The value returned from getConfig is {}", pluginsConfiguration);
-                       Integer connectionTimeout = pluginsConfiguration.getConnectionTimeout();
-                       this.requestConfig = RequestConfig.custom()
-                                       .setSocketTimeout(connectionTimeout)
-                                       .setConnectTimeout(connectionTimeout)
-                                       .setConnectionRequestTimeout(connectionTimeout).build();
-
-
-                       Plugin wantedPlugin = pluginsConfiguration.getPluginsList().stream()
-                                       .filter(plugin -> plugin.getPluginId().equals(pluginId))
-                                       .findAny()
-                                       .orElse(null);
-
-                       if (wantedPlugin != null) {
-                               result = gson.toJson(checkPluginAvailability(wantedPlugin));
-                       }
-               }
-               return result;
-       }
-
-       private boolean checkPluginAvailability(Plugin plugin) {
-               boolean result = false;
-               log.debug("sending head request to id:{} url:{}",plugin.getPluginId(),plugin.getPluginDiscoveryUrl());
-               HttpHead head = new HttpHead(plugin.getPluginDiscoveryUrl());
-
-               head.setConfig(this.requestConfig);
-
-               try (CloseableHttpResponse response = this.client.execute(head)) {
-                       result = response != null && response.getStatusLine().getStatusCode() == 200;
-                       log.debug("The plugin {} is {} with result {}",plugin.getPluginId(),( result ? "online" : "offline" ), result);
-               } catch (IOException e) {
-                       log.debug("The plugin {} is offline", plugin.getPluginId());
-                        log.debug("Exception:",e);
-               }
-
-               return result;
-       }
+    private static final Logger LOGGER = LoggerFactory.getLogger(PluginStatusBL.class.getName());
+    private final Gson gson;
+    private final CloseableHttpClient client;
+    private final PluginsConfiguration pluginsConfiguration;
+    private RequestConfig requestConfig;
+
+    public PluginStatusBL() {
+        this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration();
+        this.client = HttpClients.createDefault();
+        this.gson = new GsonBuilder().setPrettyPrinting().create();
+    }
+
+    public PluginStatusBL(CloseableHttpClient client) {
+        this.pluginsConfiguration = ConfigurationManager.getConfigurationManager().getPluginsConfiguration();
+        this.client = client;
+
+        this.gson = new GsonBuilder().setPrettyPrinting().create();
+
+    }
+
+    public String getPluginsList() {
+        String result = null;
+
+        if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) {
+            LOGGER.warn("Configuration of type {} was not found", PluginsConfiguration.class);
+            throw new InvalidArgumentException("the plugin configuration was not read successfully.");
+
+        } else {
+            LOGGER.debug("The value returned from getConfig is {}", pluginsConfiguration);
+
+            result = gson.toJson(pluginsConfiguration.getPluginsList());
+        }
+        return result;
+    }
+
+    public String getPluginAvailability(String pluginId) {
+        String result = null;
+
+        if (pluginsConfiguration == null || pluginsConfiguration.getPluginsList() == null) {
+            LOGGER.warn("Configuration of type {} was not found", PluginsConfiguration.class);
+            throw new InvalidArgumentException("the plugin configuration was not read successfully.");
+
+        } else {
+            LOGGER.debug("The value returned from getConfig is {}", pluginsConfiguration);
+            Integer connectionTimeout = pluginsConfiguration.getConnectionTimeout();
+            this.requestConfig = RequestConfig.custom()
+                    .setSocketTimeout(connectionTimeout)
+                    .setConnectTimeout(connectionTimeout)
+                    .setConnectionRequestTimeout(connectionTimeout).build();
+
+
+            Plugin wantedPlugin = pluginsConfiguration.getPluginsList().stream()
+                    .filter(plugin -> plugin.getPluginId().equals(pluginId))
+                    .findAny()
+                    .orElse(null);
+
+            if (wantedPlugin != null) {
+                result = gson.toJson(checkPluginAvailability(wantedPlugin));
+            }
+        }
+        return result;
+    }
+
+    private boolean checkPluginAvailability(Plugin plugin) {
+        boolean result = false;
+        LOGGER.debug("sending head request to id:{} url:{}", plugin.getPluginId(), plugin.getPluginDiscoveryUrl());
+        HttpHead head = new HttpHead(plugin.getPluginDiscoveryUrl());
+
+        head.setConfig(this.requestConfig);
+
+        try (CloseableHttpResponse response = this.client.execute(head)) {
+            result = response != null && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK;
+            LOGGER.debug("The plugin {} is {} with result {}", plugin.getPluginId(), (result ? "online" : "offline"), result);
+        } catch (IOException e) {
+            LOGGER.debug("The plugin {} is offline", plugin.getPluginId());
+            LOGGER.debug("Exception:", e);
+        }
+
+        return result;
+    }
 
 }
index 987b1fe..f087f55 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -37,52 +37,54 @@ import java.util.concurrent.Executors;
 
 public class FEAppContextListener extends AppContextListener implements ServletContextListener {
 
-       private static Logger log = LoggerFactory.getLogger(FEAppContextListener.class.getName());
+    private static final int HEALTH_CHECHK_INTERVALE = 5;
+    private static final int PROBE_INTERVALE = 15;
+    private static Logger log = LoggerFactory.getLogger(FEAppContextListener.class.getName());
 
-       public void contextInitialized(ServletContextEvent context) {
+    public void contextInitialized(ServletContextEvent context) {
 
-               super.contextInitialized(context);
+        super.contextInitialized(context);
 
-               ConfigurationManager configurationManager = new ConfigurationManager(
-                               ExternalConfiguration.getConfigurationSource());
-               log.debug("loading configuration from configDir:{} appName:{}", ExternalConfiguration.getConfigDir(),
-                               ExternalConfiguration.getAppName());
-               context.getServletContext().setAttribute(Constants.CONFIGURATION_MANAGER_ATTR, configurationManager);
-               
-               PluginStatusBL pbl = new PluginStatusBL();
-               context.getServletContext().setAttribute(Constants.PLUGIN_BL_COMPONENT, pbl);
+        ConfigurationManager configurationManager = new ConfigurationManager(
+                ExternalConfiguration.getConfigurationSource());
+        log.debug("loading configuration from configDir:{} appName:{}", ExternalConfiguration.getConfigDir(),
+                ExternalConfiguration.getAppName());
+        context.getServletContext().setAttribute(Constants.CONFIGURATION_MANAGER_ATTR, configurationManager);
 
-               // Health Check service
-               HealthCheckService hcs = new HealthCheckService(context.getServletContext());
-               hcs.start(configurationManager.getConfiguration().getHealthCheckIntervalInSeconds(5));
-               context.getServletContext().setAttribute(Constants.HEALTH_CHECK_SERVICE_ATTR, hcs);
+        PluginStatusBL pbl = new PluginStatusBL();
+        context.getServletContext().setAttribute(Constants.PLUGIN_BL_COMPONENT, pbl);
 
-               // Monitoring service
-               FeMonitoringService fms = new FeMonitoringService(context.getServletContext());
-               fms.start(configurationManager.getConfiguration().getSystemMonitoring().getProbeIntervalInSeconds(15));
+        // Health Check service
+        HealthCheckService hcs = new HealthCheckService(context.getServletContext());
+        hcs.start(configurationManager.getConfiguration().getHealthCheckIntervalInSeconds(HEALTH_CHECHK_INTERVALE));
+        context.getServletContext().setAttribute(Constants.HEALTH_CHECK_SERVICE_ATTR, hcs);
 
-               if (configurationManager.getConfiguration() == null) {
-                       log.debug("ERROR: configuration was not properly loaded");
-                       return;
-               }
+        // Monitoring service
+        FeMonitoringService fms = new FeMonitoringService(context.getServletContext());
+        fms.start(configurationManager.getConfiguration().getSystemMonitoring().getProbeIntervalInSeconds(PROBE_INTERVALE));
 
-               ExecutorService executorPool = Executors
-                               .newFixedThreadPool(configurationManager.getConfiguration().getThreadpoolSize());
-               context.getServletContext().setAttribute(Constants.THREAD_EXECUTOR_ATTR, executorPool);
+        if (configurationManager.getConfiguration() == null) {
+            log.debug("ERROR: configuration was not properly loaded");
+            return;
+        }
 
-               log.debug("After executing {}", this.getClass());
-       }
+        ExecutorService executorPool = Executors
+                .newFixedThreadPool(configurationManager.getConfiguration().getThreadpoolSize());
+        context.getServletContext().setAttribute(Constants.THREAD_EXECUTOR_ATTR, executorPool);
 
-       public void contextDestroyed(ServletContextEvent context) {
+        log.debug("After executing {}", this.getClass());
+    }
 
-               ExecutorService executorPool = (ExecutorService) context.getServletContext()
-                               .getAttribute(Constants.THREAD_EXECUTOR_ATTR);
-               if (executorPool != null) {
-                       executorPool.shutdown();
-               }
+    public void contextDestroyed(ServletContextEvent context) {
 
-               super.contextDestroyed(context);
+        ExecutorService executorPool = (ExecutorService) context.getServletContext()
+                .getAttribute(Constants.THREAD_EXECUTOR_ATTR);
+        if (executorPool != null) {
+            executorPool.shutdown();
+        }
 
-       }
+        super.contextDestroyed(context);
+
+    }
 
 }
index 74f6014..b46ca4c 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -28,22 +28,22 @@ import javax.ws.rs.ext.Provider;
 
 @Provider
 public class MyObjectMapperProvider implements ContextResolver<ObjectMapper> {
-       final ObjectMapper defaultObjectMapper;
+    private final ObjectMapper defaultObjectMapper;
 
-       public MyObjectMapperProvider() {
-               defaultObjectMapper = createDefaultMapper();
-       }
+    MyObjectMapperProvider() {
+        defaultObjectMapper = createDefaultMapper();
+    }
 
-       @Override
-       public ObjectMapper getContext(Class<?> type) {
-               return defaultObjectMapper;
-       }
+    @Override
+    public ObjectMapper getContext(Class<?> type) {
+        return defaultObjectMapper;
+    }
 
-       private static ObjectMapper createDefaultMapper() {
-               final ObjectMapper result = new ObjectMapper();
-               result.configure(SerializationFeature.INDENT_OUTPUT, true);
+    private static ObjectMapper createDefaultMapper() {
+        final ObjectMapper result = new ObjectMapper();
+        result.configure(SerializationFeature.INDENT_OUTPUT, true);
 
-               return result;
-       }
+        return result;
+    }
 
 }
index 547f8ac..8608506 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -43,46 +43,46 @@ import javax.ws.rs.core.MediaType;
 @Path("/configmgr")
 public class ConfigMgrServlet extends BasicServlet {
 
-       private static Logger log = LoggerFactory.getLogger(ConfigMgrServlet.class.getName());
+    private static Logger log = LoggerFactory.getLogger(ConfigMgrServlet.class.getName());
 
-       @GET
-       @Path("/get")
-       @Produces(MediaType.APPLICATION_JSON)
-       public String getConfig(@Context final HttpServletRequest request, @QueryParam("type") String type) {
+    @GET
+    @Path("/get")
+    @Produces(MediaType.APPLICATION_JSON)
+    public String getConfig(@Context final HttpServletRequest request, @QueryParam("type") String type) {
 
-               String result = null;
+        String result = null;
 
-               ServletContext context = request.getSession().getServletContext();
+        ServletContext context = request.getSession().getServletContext();
 
-               ConfigurationManager configurationManager = (ConfigurationManager) context
-                               .getAttribute(Constants.CONFIGURATION_MANAGER_ATTR);
+        ConfigurationManager configurationManager = (ConfigurationManager) context
+                .getAttribute(Constants.CONFIGURATION_MANAGER_ATTR);
 
-               if (type == null || type.equals("configuration")) {
+        if (type == null || type.equals("configuration")) {
 
-                       Configuration configuration = configurationManager.getConfiguration();
-                       if (configuration == null) {
-                               log.warn("Configuration of type {} was not found", Configuration.class);
-                       } else {
-                               log.info("The value returned from getConfig is {}", configuration);
+            Configuration configuration = configurationManager.getConfiguration();
+            if (configuration == null) {
+                log.warn("Configuration of type {} was not found", Configuration.class);
+            } else {
+                log.info("The value returned from getConfig is {}", configuration);
 
-                               result = gson.toJson(configuration);
+                result = gson.toJson(configuration);
 
-                       }
-               } else if (type.equals("rest")) {
+            }
+        } else if (type.equals("rest")) {
 
-                       RestConfigurationInfo configuration = configurationManager.getRestClientConfiguration();
-                       if (configuration == null) {
-                               log.warn("Configuration of type {} was not found", RestConfigurationInfo.class);
-                       } else {
-                               log.info("The value returned from getConfig is {}", configuration);
+            RestConfigurationInfo configuration = configurationManager.getRestClientConfiguration();
+            if (configuration == null) {
+                log.warn("Configuration of type {} was not found", RestConfigurationInfo.class);
+            } else {
+                log.info("The value returned from getConfig is {}", configuration);
 
-                               result = gson.toJson(configuration);
+                result = gson.toJson(configuration);
 
-                       }
+            }
 
-               }
-               return result;
+        }
+        return result;
 
-       }
+    }
 
 }
index 073c79e..138318b 100644 (file)
@@ -43,7 +43,7 @@ import javax.ws.rs.core.Response.Status;
 @Path("/config")
 public class ConfigServlet extends LoggingServlet {
 
-    private static final Logger log = LoggerFactory.getLogger(ConfigServlet.class.getName());
+    private static final Logger LOGGER = LoggerFactory.getLogger(ConfigServlet.class.getName());
 
 
     @GET
@@ -67,7 +67,7 @@ public class ConfigServlet extends LoggingServlet {
             return response;
         } catch (Exception e) {
             FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response");
-            log.error("Unexpected FE response logging error :", e);
+            LOGGER.error("Unexpected FE response logging error :", e);
             return Response.status(Status.INTERNAL_SERVER_ERROR).entity("{}").build();
         }
 
@@ -88,7 +88,7 @@ public class ConfigServlet extends LoggingServlet {
             String result = pluginStatusBL.getPluginAvailability(pluginId);
 
             if (result == null) {
-                log.debug("Plugin with pluginId: {} was not found in the configuration", pluginId);
+                LOGGER.debug("Plugin with pluginId: {} was not found in the configuration", pluginId);
                 return Response.status(Status.NOT_FOUND).entity("Plugin with pluginId:\"" + pluginId + "\" was not found in the configuration").build();
             }
 
@@ -99,13 +99,13 @@ public class ConfigServlet extends LoggingServlet {
             return response;
         } catch (Exception e) {
             FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response");
-            log.error("Unexpected FE response logging error :", e);
+            LOGGER.error("Unexpected FE response logging error :", e);
             return Response.status(Status.INTERNAL_SERVER_ERROR).entity("{}").build();
         }
     }
 
     protected void inHttpRequest(HttpServletRequest httpRequest) {
-        log.info("{} {} {}", httpRequest.getMethod(), httpRequest.getRequestURI(), httpRequest.getProtocol());
+        LOGGER.info("{} {} {}", httpRequest.getMethod(), httpRequest.getRequestURI(), httpRequest.getProtocol());
     }
 
     /**
@@ -114,6 +114,6 @@ public class ConfigServlet extends LoggingServlet {
      * @param response http response
      */
     protected void outHttpResponse(Response response) {
-        log.info("SC=\"{}\"", response.getStatus());
+        LOGGER.info("SC=\"{}\"", response.getStatus());
     }
 }
index 563af73..fbf81b4 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -35,10 +35,10 @@ import static org.openecomp.sdc.common.api.Constants.HEALTH_CHECK_SERVICE_ATTR;
 @Loggable(prepend = true, value = Loggable.TRACE, trim = false)
 @Path("/healthCheck")
 public class FeHealthCheckServlet extends BasicServlet {
-       @GET
-       public Response getFEandBeHealthCheck(@Context final HttpServletRequest request) {
-               ServletContext context = request.getSession().getServletContext();
-               HealthCheckService hcs = ((HealthCheckService) context.getAttribute(HEALTH_CHECK_SERVICE_ATTR));
-               return hcs.getFeHealth();
-       }
+    @GET
+    public Response getFEandBeHealthCheck(@Context final HttpServletRequest request) {
+        ServletContext context = request.getSession().getServletContext();
+        HealthCheckService hcs = ((HealthCheckService) context.getAttribute(HEALTH_CHECK_SERVICE_ATTR));
+        return hcs.getFeHealth();
+    }
 }
index 122543d..1c7b174 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -42,200 +42,196 @@ import java.net.URL;
 import java.util.concurrent.TimeUnit;
 
 public class FeProxyServlet extends SSLProxyServlet {
-       private static final long serialVersionUID = 1L;
-       private static final String URL = "%s://%s%s%s";
-       private static final String ONBOARDING_CONTEXT = "/onboarding-api";
-       private static final String DCAED_CONTEXT = "/dcae-api";
-       private static final String WORKFLOW_CONTEXT = "/wf";
-       private static final String SDC1_FE_PROXY = "/sdc1/feProxy";
-       private static final String PLUGIN_ID_WORKFLOW = "WORKFLOW";
-
-       private static final Logger log = Logger.getLogger(FeProxyServlet.class);
-       private static Cache<String, MdcData> mdcDataCache = CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build();
-
-
-       @Override
-       protected String rewriteTarget(HttpServletRequest request) {
-               String originalUrl="";
-               String redirectedUrl = "";
-
-               try {
-                       logFeRequest(request);
-
-                       originalUrl = request.getRequestURL().toString();
-                       redirectedUrl = getModifiedUrl(request);
-
-               } catch(MalformedURLException mue){
-                       FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Request");
-                       log.error(EcompLoggerErrorCode.DATA_ERROR,"FeProxyServlet rewriteTarget", "sdc-FE", "Malformed URL Exception: ", mue);
-               }
-               catch (Exception e) {
-                       FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Request");
-            log.error(EcompLoggerErrorCode.UNKNOWN_ERROR,"FeProxyServlet rewriteTarget", "sdc-FE", "Unexpected FE request processing error: ", e);
-               }
-
-               log.debug("FeProxyServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
-
-               return redirectedUrl;
-       }
-
-       @Override
-       protected void onProxyResponseSuccess(HttpServletRequest request, HttpServletResponse proxyResponse, Response response) {
-               try {
-                       logFeResponse(request, response);
-               } catch (Exception e) {
-                       FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response");
-            log.error(EcompLoggerErrorCode.UNKNOWN_ERROR,"FeProxyServlet onProxyResponseSuccess", "sdc-FE", "Unexpected FE response logging error: ", e);
-               }
-               super.onProxyResponseSuccess(request, proxyResponse, response);
-       }
-
-       private void logFeRequest(HttpServletRequest httpRequest) {
-
-               MDC.clear();
-
-               Long transactionStartTime = System.currentTimeMillis();
-               // UUID - In FE, we are supposed to get the below header from UI.
-               // We do not generate it if it's missing - BE does.
-               String uuid = httpRequest.getHeader(Constants.X_ECOMP_REQUEST_ID_HEADER);
-               String serviceInstanceID = httpRequest.getHeader(Constants.X_ECOMP_SERVICE_ID_HEADER);
-
-               if (uuid != null && uuid.length() > 0) {
-                       // UserId for logging
-                       String userId = httpRequest.getHeader(Constants.USER_ID_HEADER);
-
-                       String remoteAddr = httpRequest.getRemoteAddr();
-                       String localAddr = httpRequest.getLocalAddr();
-
-                       mdcDataCache.put(uuid, new MdcData(serviceInstanceID, userId, remoteAddr, localAddr, transactionStartTime));
-
-                       updateMdc(uuid, serviceInstanceID, userId, remoteAddr, localAddr, null);
-               }
-               inHttpRequest(httpRequest);
-       }
-
-       private void logFeResponse(HttpServletRequest request, Response proxyResponse) {
-               String uuid = request.getHeader(Constants.X_ECOMP_REQUEST_ID_HEADER);
-               String transactionRoundTime = null;
-
-               if (uuid != null) {
-                       MdcData mdcData = mdcDataCache.getIfPresent(uuid);
-                       if (mdcData != null) {
-                               Long transactionStartTime = mdcData.getTransactionStartTime();
-                               if (transactionStartTime != null) {// should'n ever be null, but
-                                       // just to be defensive
-                                       transactionRoundTime = Long.toString(System.currentTimeMillis() - transactionStartTime);
-                               }
-                               updateMdc(uuid, mdcData.getServiceInstanceID(), mdcData.getUserId(), mdcData.getRemoteAddr(), mdcData.getLocalAddr(), transactionRoundTime);
-                       }
-               }
-               outHttpResponse(proxyResponse);
-
-               MDC.clear();
-       }
-
-       // Extracted for purpose of clear method name, for logback %M parameter
-       private void inHttpRequest(HttpServletRequest httpRequest) {
-               log.info("{} {} {}", httpRequest.getMethod(), httpRequest.getRequestURI(), httpRequest.getProtocol());
-       }
-
-       // Extracted for purpose of clear method name, for logback %M parameter
-       private void outHttpResponse(Response proxyResponse) {
-               log.info("SC=\"{}\"", proxyResponse.getStatus());
-       }
-
-       private void updateMdc(String uuid, String serviceInstanceID, String userId, String remoteAddr, String localAddr, String transactionStartTime) {
-               MDC.put("uuid", uuid);
-               MDC.put("serviceInstanceID", serviceInstanceID);
-               MDC.put("userId", userId);
-               MDC.put("remoteAddr", remoteAddr);
-               MDC.put("localAddr", localAddr);
-               MDC.put("timer", transactionStartTime);
-       }
-
-       
-       
-       private String getModifiedUrl(HttpServletRequest request) throws MalformedURLException {
-               Configuration config = getConfiguration(request);
-               if (config == null) {
-            log.error(EcompLoggerErrorCode.UNKNOWN_ERROR,"FeProxyServlet getModifiedUrl", "sdc-FE", "failed to retrieve configuration.");
-                       throw new RuntimeException("failed to read FE configuration");
-               }
-               String uri = request.getRequestURI();
-               String protocol;
-               String host;
-               String port;
-               if (uri.contains(ONBOARDING_CONTEXT)){
-                       uri = uri.replace(SDC1_FE_PROXY+ONBOARDING_CONTEXT,ONBOARDING_CONTEXT);
-                       protocol = config.getOnboarding().getProtocolBe();
-                       host = config.getOnboarding().getHostBe();
-                       port = config.getOnboarding().getPortBe().toString();           
-               }else if(uri.contains(DCAED_CONTEXT)){
-                       uri = uri.replace(SDC1_FE_PROXY+DCAED_CONTEXT,DCAED_CONTEXT);
-                       protocol = config.getBeProtocol();
-                       host = config.getBeHost();
-                       if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
-                               port = config.getBeHttpPort().toString();
-                       } else {
-                               port = config.getBeSslPort().toString();
-                       }
-               }
-               else if (uri.contains(WORKFLOW_CONTEXT)){
-                       String workflowPluginURL = getPluginConfiguration(request).getPluginsList()
-                                       .stream()
-                                       .filter(plugin -> plugin.getPluginId().equalsIgnoreCase(PLUGIN_ID_WORKFLOW))
-                                       .map(Plugin::getPluginDiscoveryUrl)
-                                       .findFirst().orElse(null);
-
-                       java.net.URL workflowURL = new URL(workflowPluginURL);
-                       protocol = workflowURL.getProtocol();
-                       host = workflowURL.getHost();
-                       port = String.valueOf(workflowURL.getPort());
-                       uri = uri.replace(SDC1_FE_PROXY + WORKFLOW_CONTEXT, workflowURL.getPath() + WORKFLOW_CONTEXT);
-               }
-               else{
-                       uri = uri.replace(SDC1_FE_PROXY,"/sdc2");
-                       protocol = config.getBeProtocol();
-                       host = config.getBeHost();
-                       if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
-                               port = config.getBeHttpPort().toString();
-                       } else {
-                               port = config.getBeSslPort().toString();
-                       }
-               }       
-
-               String authority = getAuthority(host, port);
-               String queryString = getQueryString(request);
-               return  String.format(URL,protocol,authority,uri,queryString);
-
-       }
-
-       private PluginsConfiguration getPluginConfiguration(HttpServletRequest request) {
-               return ((ConfigurationManager) request.getSession().getServletContext().getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getPluginsConfiguration();
-  }
-       private Configuration getConfiguration(HttpServletRequest request) {
-               return ((ConfigurationManager) request.getSession().getServletContext().getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
-       }
-
-       private String getAuthority(String host, String port) {
-               String authority;
-               if (port==null){
-                       authority=host;
-               }
-               else{
-                       authority=host+":"+port;
-               }
-               return authority;
-       }
-
-       private String getQueryString(HttpServletRequest request) {
-               String queryString = request.getQueryString();
-               if (queryString != null) {
-                       queryString="?"+queryString;
-               }
-               else{
-                       queryString="";
-               }
-               return queryString;
-       }
+    private static final long serialVersionUID = 1L;
+    private static final String URL = "%s://%s%s%s";
+    private static final String ONBOARDING_CONTEXT = "/onboarding-api";
+    private static final String DCAED_CONTEXT = "/dcae-api";
+    private static final String WORKFLOW_CONTEXT = "/wf";
+    private static final String SDC1_FE_PROXY = "/sdc1/feProxy";
+    private static final String PLUGIN_ID_WORKFLOW = "WORKFLOW";
+
+    private static final Logger LOGGER = Logger.getLogger(FeProxyServlet.class);
+    private static final int EXPIRE_DURATION = 10;
+    private static Cache<String, MdcData> mdcDataCache = CacheBuilder.newBuilder().expireAfterWrite(EXPIRE_DURATION, TimeUnit.SECONDS).build();
+
+
+    @Override
+    protected String rewriteTarget(HttpServletRequest request) {
+        String originalUrl = "";
+        String redirectedUrl = "";
+
+        try {
+            logFeRequest(request);
+
+            originalUrl = request.getRequestURL().toString();
+            redirectedUrl = getModifiedUrl(request);
+
+        } catch (MalformedURLException mue) {
+            FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Request");
+            LOGGER.error(EcompLoggerErrorCode.DATA_ERROR, "FeProxyServlet rewriteTarget", "sdc-FE", "Malformed URL Exception: ", mue);
+        } catch (Exception e) {
+            FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Request");
+            LOGGER.error(EcompLoggerErrorCode.UNKNOWN_ERROR, "FeProxyServlet rewriteTarget", "sdc-FE", "Unexpected FE request processing error: ", e);
+        }
+
+        LOGGER.debug("FeProxyServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
+
+        return redirectedUrl;
+    }
+
+    @Override
+    protected void onProxyResponseSuccess(HttpServletRequest request, HttpServletResponse proxyResponse, Response response) {
+        try {
+            logFeResponse(request, response);
+        } catch (Exception e) {
+            FeEcompErrorManager.getInstance().logFeHttpLoggingError("FE Response");
+            LOGGER.error(EcompLoggerErrorCode.UNKNOWN_ERROR, "FeProxyServlet onProxyResponseSuccess", "sdc-FE", "Unexpected FE response logging error: ", e);
+        }
+        super.onProxyResponseSuccess(request, proxyResponse, response);
+    }
+
+    private void logFeRequest(HttpServletRequest httpRequest) {
+
+        MDC.clear();
+
+        Long transactionStartTime = System.currentTimeMillis();
+        // UUID - In FE, we are supposed to get the below header from UI.
+        // We do not generate it if it's missing - BE does.
+        String uuid = httpRequest.getHeader(Constants.X_ECOMP_REQUEST_ID_HEADER);
+        String serviceInstanceID = httpRequest.getHeader(Constants.X_ECOMP_SERVICE_ID_HEADER);
+
+        if (uuid != null && uuid.length() > 0) {
+            // UserId for logging
+            String userId = httpRequest.getHeader(Constants.USER_ID_HEADER);
+
+            String remoteAddr = httpRequest.getRemoteAddr();
+            String localAddr = httpRequest.getLocalAddr();
+
+            mdcDataCache.put(uuid, new MdcData(serviceInstanceID, userId, remoteAddr, localAddr, transactionStartTime));
+
+            updateMdc(uuid, serviceInstanceID, userId, remoteAddr, localAddr, null);
+        }
+        inHttpRequest(httpRequest);
+    }
+
+    private void logFeResponse(HttpServletRequest request, Response proxyResponse) {
+        String uuid = request.getHeader(Constants.X_ECOMP_REQUEST_ID_HEADER);
+        String transactionRoundTime = null;
+
+        if (uuid != null) {
+            MdcData mdcData = mdcDataCache.getIfPresent(uuid);
+            if (mdcData != null) {
+                Long transactionStartTime = mdcData.getTransactionStartTime();
+                if (transactionStartTime != null) { // should'n ever be null, but
+                    // just to be defensive
+                    transactionRoundTime = Long.toString(System.currentTimeMillis() - transactionStartTime);
+                }
+                updateMdc(uuid, mdcData.getServiceInstanceID(), mdcData.getUserId(), mdcData.getRemoteAddr(), mdcData.getLocalAddr(), transactionRoundTime);
+            }
+        }
+        outHttpResponse(proxyResponse);
+
+        MDC.clear();
+    }
+
+    // Extracted for purpose of clear method name, for logback %M parameter
+    private void inHttpRequest(HttpServletRequest httpRequest) {
+        LOGGER.info("{} {} {}", httpRequest.getMethod(), httpRequest.getRequestURI(), httpRequest.getProtocol());
+    }
+
+    // Extracted for purpose of clear method name, for logback %M parameter
+    private void outHttpResponse(Response proxyResponse) {
+        LOGGER.info("SC=\"{}\"", proxyResponse.getStatus());
+    }
+
+    private void updateMdc(String uuid, String serviceInstanceID, String userId, String remoteAddr, String localAddr, String transactionStartTime) {
+        MDC.put("uuid", uuid);
+        MDC.put("serviceInstanceID", serviceInstanceID);
+        MDC.put("userId", userId);
+        MDC.put("remoteAddr", remoteAddr);
+        MDC.put("localAddr", localAddr);
+        MDC.put("timer", transactionStartTime);
+    }
+
+
+    private String getModifiedUrl(HttpServletRequest request) throws MalformedURLException {
+        Configuration config = getConfiguration(request);
+        if (config == null) {
+            LOGGER.error(EcompLoggerErrorCode.UNKNOWN_ERROR, "FeProxyServlet getModifiedUrl", "sdc-FE", "failed to retrieve configuration.");
+            throw new RuntimeException("failed to read FE configuration");
+        }
+        String uri = request.getRequestURI();
+        String protocol;
+        String host;
+        String port;
+        if (uri.contains(ONBOARDING_CONTEXT)) {
+            uri = uri.replace(SDC1_FE_PROXY + ONBOARDING_CONTEXT, ONBOARDING_CONTEXT);
+            protocol = config.getOnboarding().getProtocolBe();
+            host = config.getOnboarding().getHostBe();
+            port = config.getOnboarding().getPortBe().toString();
+        } else if (uri.contains(DCAED_CONTEXT)) {
+            uri = uri.replace(SDC1_FE_PROXY + DCAED_CONTEXT, DCAED_CONTEXT);
+            protocol = config.getBeProtocol();
+            host = config.getBeHost();
+            if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
+                port = config.getBeHttpPort().toString();
+            } else {
+                port = config.getBeSslPort().toString();
+            }
+        } else if (uri.contains(WORKFLOW_CONTEXT)) {
+            String workflowPluginURL = getPluginConfiguration(request).getPluginsList()
+                    .stream()
+                    .filter(plugin -> plugin.getPluginId().equalsIgnoreCase(PLUGIN_ID_WORKFLOW))
+                    .map(Plugin::getPluginDiscoveryUrl)
+                    .findFirst().orElse(null);
+
+            java.net.URL workflowURL = new URL(workflowPluginURL);
+            protocol = workflowURL.getProtocol();
+            host = workflowURL.getHost();
+            port = String.valueOf(workflowURL.getPort());
+            uri = uri.replace(SDC1_FE_PROXY + WORKFLOW_CONTEXT, workflowURL.getPath() + WORKFLOW_CONTEXT);
+        } else {
+            uri = uri.replace(SDC1_FE_PROXY, "/sdc2");
+            protocol = config.getBeProtocol();
+            host = config.getBeHost();
+            if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
+                port = config.getBeHttpPort().toString();
+            } else {
+                port = config.getBeSslPort().toString();
+            }
+        }
+
+        String authority = getAuthority(host, port);
+        String queryString = getQueryString(request);
+        return String.format(URL, protocol, authority, uri, queryString);
+
+    }
+
+    private PluginsConfiguration getPluginConfiguration(HttpServletRequest request) {
+        return ((ConfigurationManager) request.getSession().getServletContext().getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getPluginsConfiguration();
+    }
+
+    private Configuration getConfiguration(HttpServletRequest request) {
+        return ((ConfigurationManager) request.getSession().getServletContext().getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
+    }
+
+    private String getAuthority(String host, String port) {
+        String authority;
+        if (port == null) {
+            authority = host;
+        } else {
+            authority = host + ":" + port;
+        }
+        return authority;
+    }
+
+    private String getQueryString(HttpServletRequest request) {
+        String queryString = request.getQueryString();
+        if (queryString != null) {
+            queryString = "?" + queryString;
+        } else {
+            queryString = "";
+        }
+        return queryString;
+    }
 }
index d8b3295..6c312ce 100644 (file)
@@ -52,8 +52,18 @@ import static java.util.Arrays.asList;
 import static java.util.concurrent.Executors.newSingleThreadScheduledExecutor;
 import static org.apache.http.HttpStatus.SC_INTERNAL_SERVER_ERROR;
 import static org.apache.http.HttpStatus.SC_OK;
-import static org.openecomp.sdc.common.api.Constants.*;
-import static org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus.*;
+import static org.openecomp.sdc.common.api.Constants.CONFIGURATION_MANAGER_ATTR;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_BE;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_CASSANDRA;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_DCAE;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_DISTRIBUTION_ENGINE;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_FE;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_JANUSGRAPH;
+import static org.openecomp.sdc.common.api.Constants.HC_COMPONENT_ON_BOARDING;
+import static org.openecomp.sdc.common.api.Constants.HTTPS;
+import static org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus.DOWN;
+import static org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus.UNKNOWN;
+import static org.openecomp.sdc.common.api.HealthCheckInfo.HealthCheckStatus.UP;
 import static org.openecomp.sdc.common.http.client.api.HttpRequest.get;
 import static org.openecomp.sdc.common.impl.ExternalConfiguration.getAppVersion;
 import static org.slf4j.LoggerFactory.getLogger;
@@ -61,6 +71,7 @@ import static org.slf4j.LoggerFactory.getLogger;
 public class HealthCheckService {
 
     private static final String URL = "%s://%s:%s/sdc2/rest/healthCheck";
+    private static final int HEALTH_STATUS_CODE = 500;
     private static Logger healthLogger = getLogger("asdc.fe.healthcheck");
     private static Logger log = getLogger(HealthCheckService.class.getName());
     private final List<String> healthCheckFeComponents = asList(HC_COMPONENT_ON_BOARDING, HC_COMPONENT_DCAE);
@@ -69,14 +80,14 @@ public class HealthCheckService {
     /**
      * This executor will execute the health check task.
      */
-    ScheduledExecutorService healthCheckExecutor = newSingleThreadScheduledExecutor((Runnable r) -> new Thread(r, "FE-Health-Check-Thread"));
+    private ScheduledExecutorService healthCheckExecutor = newSingleThreadScheduledExecutor((Runnable r) -> new Thread(r, "FE-Health-Check-Thread"));
 
     public void setTask(HealthCheckScheduledTask task) {
         this.task = task;
     }
 
-    private HealthCheckScheduledTask task ;
-    private HealthStatus lastHealthStatus = new HealthStatus(500, "{}");
+    private HealthCheckScheduledTask task;
+    private HealthStatus lastHealthStatus = new HealthStatus(HEALTH_STATUS_CODE, "{}");
     private ServletContext context;
 
     public HealthCheckService(ServletContext context) {
@@ -85,7 +96,7 @@ public class HealthCheckService {
     }
 
     public void start(int interval) {
-        this.healthCheckExecutor.scheduleAtFixedRate( getTask() , 0, interval, TimeUnit.SECONDS);
+        this.healthCheckExecutor.scheduleAtFixedRate(getTask(), 0, interval, TimeUnit.SECONDS);
     }
 
     /**
@@ -105,6 +116,7 @@ public class HealthCheckService {
     public HealthStatus getLastHealthStatus() {
         return lastHealthStatus;
     }
+
     public HealthCheckScheduledTask getTask() {
         return task;
     }
@@ -130,6 +142,10 @@ public class HealthCheckService {
     }
 
     protected class HealthCheckScheduledTask implements Runnable {
+
+        public static final int READ_TIMEOUT_DEFAULT_VAL = 5000;
+        public static final int CONNECT_TIMEOUT_MS = 3000;
+
         @Override
         public void run() {
             healthLogger.trace("Executing FE Health Check Task - Start");
@@ -163,8 +179,8 @@ public class HealthCheckService {
             }
 
             StringBuilder description = new StringBuilder("");
-            int connectTimeoutMs = 3000;
-            int readTimeoutMs = config.getHealthCheckSocketTimeoutInMs(5000);
+            int connectTimeoutMs = CONNECT_TIMEOUT_MS;
+            int readTimeoutMs = config.getHealthCheckSocketTimeoutInMs(READ_TIMEOUT_DEFAULT_VAL);
 
             if (healthCheckUrl != null) {
                 ObjectMapper mapper = new ObjectMapper();
@@ -191,11 +207,11 @@ public class HealthCheckService {
 
         private void logFeAlarm(int lastFeStatus) {
             switch (lastFeStatus) {
-                case 200:
+                case SC_OK:
                     FeEcompErrorManager.getInstance().processEcompError(DEBUG_CONTEXT, EcompErrorEnum.FeHealthCheckRecovery, "FE Health Recovered");
                     FeEcompErrorManager.getInstance().logFeHealthCheckRecovery("FE Health Recovered");
                     break;
-                case 500:
+                case SC_INTERNAL_SERVER_ERROR:
                     FeEcompErrorManager.getInstance().processEcompError(DEBUG_CONTEXT, EcompErrorEnum.FeHealthCheckError, "Connection with ASDC-BE is probably down");
                     FeEcompErrorManager.getInstance().logFeHealthCheckError("Connection with ASDC-BE is probably down");
                     break;
@@ -212,8 +228,8 @@ public class HealthCheckService {
                 String redirectedUrl = String.format(URL, config.getBeProtocol(), config.getBeHost(),
                         HTTPS.equals(config.getBeProtocol()) ? config.getBeSslPort() : config.getBeHttpPort());
 
-                int connectTimeoutMs = 3000;
-                int readTimeoutMs = config.getHealthCheckSocketTimeoutInMs(5000);
+                int connectTimeoutMs = CONNECT_TIMEOUT_MS;
+                int readTimeoutMs = config.getHealthCheckSocketTimeoutInMs(READ_TIMEOUT_DEFAULT_VAL);
 
                 HealthCheckWrapper feAggHealthCheck;
                 try {
@@ -232,14 +248,14 @@ public class HealthCheckService {
                 boolean aggregateFeStatus = (response != null && response.getStatusCode() == SC_INTERNAL_SERVER_ERROR) ? false : healthCheckUtil.getAggregateStatus(feAggHealthCheck.getComponentsInfo(), config.getHealthStatusExclude());
                 return new HealthStatus(aggregateFeStatus ? SC_OK : SC_INTERNAL_SERVER_ERROR, gson.toJson(feAggHealthCheck));
             } catch (Exception e) {
-                FeEcompErrorManager.getInstance().processEcompError(DEBUG_CONTEXT,EcompErrorEnum.FeHealthCheckGeneralError, "Unexpected FE Health check error");
+                FeEcompErrorManager.getInstance().processEcompError(DEBUG_CONTEXT, EcompErrorEnum.FeHealthCheckGeneralError, "Unexpected FE Health check error");
                 FeEcompErrorManager.getInstance().logFeHealthCheckGeneralError("Unexpected FE Health check error");
                 log.error("Unexpected FE health check error {}", e.getMessage());
                 return new HealthStatus(SC_INTERNAL_SERVER_ERROR, e.getMessage());
             }
         }
 
-        protected Configuration getConfig(){
+        protected Configuration getConfig() {
             return ((ConfigurationManager) context.getAttribute(CONFIGURATION_MANAGER_ATTR))
                     .getConfiguration();
         }
@@ -263,7 +279,7 @@ public class HealthCheckService {
                         baseComponentHCInfo.setComponentsInfo(new ArrayList<>());
                     }
                     baseComponentHCInfo.getComponentsInfo().addAll(feComponentsInfo);
-                    boolean status = healthCheckUtil.getAggregateStatus(baseComponentHCInfo.getComponentsInfo() ,config.getHealthStatusExclude());
+                    boolean status = healthCheckUtil.getAggregateStatus(baseComponentHCInfo.getComponentsInfo()config.getHealthStatusExclude());
                     baseComponentHCInfo.setHealthCheckStatus(status ? UP : DOWN);
 
                     String componentsDesc = healthCheckUtil.getAggregateDescription(baseComponentHCInfo.getComponentsInfo(), baseComponentHCInfo.getDescription());
index 844d870..1c6a575 100644 (file)
@@ -22,8 +22,6 @@
 
 package org.openecomp.sdc.fe.servlets;
 
-import javax.servlet.http.HttpServletRequest;
-
 import org.eclipse.jetty.proxy.ProxyServlet;
 import org.openecomp.sdc.common.api.Constants;
 import org.openecomp.sdc.fe.config.Configuration;
@@ -31,17 +29,19 @@ import org.openecomp.sdc.fe.config.ConfigurationManager;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import javax.servlet.http.HttpServletRequest;
+
 public class KibanaServlet extends ProxyServlet {
 
     private static final long serialVersionUID = 1L;
-    private static final Logger log = LoggerFactory.getLogger(KibanaServlet.class.getName());
+    private static final Logger LOGGER = LoggerFactory.getLogger(KibanaServlet.class.getName());
 
     @Override
     public String rewriteTarget(HttpServletRequest request) {
         String originalUrl = request.getRequestURI();
         String redirectedUrl = getModifiedUrl(request);
 
-        log.debug("KibanaServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
+        LOGGER.debug("KibanaServlet Redirecting request from: {} , to: {}", originalUrl, redirectedUrl);
 
         return redirectedUrl;
     }
@@ -50,7 +50,7 @@ public class KibanaServlet extends ProxyServlet {
         Configuration config = getConfiguration(request);
 
         if (config == null) {
-            log.error("Failed to retrieve configuration.");
+            LOGGER.error("Failed to retrieve configuration.");
             throw new NullPointerException("Failed to retrieve configuration.");
         }
 
index 574b270..3cb601f 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -35,11 +35,12 @@ import java.util.concurrent.TimeUnit;
 
 public abstract class LoggingServlet extends BasicServlet {
 
-    private static final Logger log = LoggerFactory.getLogger(BasicServlet.class.getName());
-    private static final Cache<String, MdcData> mdcDataCache = CacheBuilder.newBuilder().expireAfterWrite(10, TimeUnit.SECONDS).build();
+    private static final int EXPIRE_DURATION = 10;
+    private static final Cache<String, MdcData> mdcDataCache = CacheBuilder.newBuilder().expireAfterWrite(EXPIRE_DURATION, TimeUnit.SECONDS).build();
 
     /**
      * log incoming requests
+     *
      * @param httpRequest the http request
      */
     protected void logFeRequest(HttpServletRequest httpRequest) {
@@ -65,7 +66,8 @@ public abstract class LoggingServlet extends BasicServlet {
 
     /**
      * log response
-     * @param request orig request
+     *
+     * @param request  orig request
      * @param response returned response
      */
     protected void logFeResponse(HttpServletRequest request, Response response) {
@@ -76,7 +78,7 @@ public abstract class LoggingServlet extends BasicServlet {
             MdcData mdcData = mdcDataCache.getIfPresent(uuid);
             if (mdcData != null) {
                 Long transactionStartTime = mdcData.getTransactionStartTime();
-                if (transactionStartTime != null) {// should'n ever be null, but
+                if (transactionStartTime != null) { // should'n ever be null, but
                     // just to be defensive
                     transactionRoundTime = Long.toString(System.currentTimeMillis() - transactionStartTime);
                 }
@@ -90,24 +92,27 @@ public abstract class LoggingServlet extends BasicServlet {
 
     /**
      * Extracted for purpose of clear method name, for logback %M parameter
+     *
      * @param httpRequest http request
      */
-    protected abstract void inHttpRequest(HttpServletRequest httpRequest) ;
+    protected abstract void inHttpRequest(HttpServletRequest httpRequest);
 
 
     /**
      * Extracted for purpose of clear method name, for logback %M parameter
+     *
      * @param response http response
      */
     protected abstract void outHttpResponse(Response response);
 
     /**
      * update mdc with values from the request
-     * @param uuid service uuid
-     * @param serviceInstanceID serviceInstanceID
-     * @param userId userId
-     * @param remoteAddr remoteAddr
-     * @param localAddr localAddr
+     *
+     * @param uuid                 service uuid
+     * @param serviceInstanceID    serviceInstanceID
+     * @param userId               userId
+     * @param remoteAddr           remoteAddr
+     * @param localAddr            localAddr
      * @param transactionStartTime transactionStartTime
      */
     private void updateMdc(String uuid, String serviceInstanceID, String userId, String remoteAddr, String localAddr, String transactionStartTime) {
index 31467b7..84e0226 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -21,8 +21,6 @@
 package org.openecomp.sdc.fe.servlets;
 
 import org.onap.portalsdk.core.onboarding.util.CipherUtil;
-import org.onap.portalsdk.core.onboarding.util.PortalApiConstants;
-import org.onap.portalsdk.core.onboarding.util.PortalApiProperties;
 import org.openecomp.sdc.common.impl.MutableHttpServletRequest;
 import org.openecomp.sdc.fe.Constants;
 import org.openecomp.sdc.fe.config.Configuration;
@@ -50,245 +48,246 @@ import java.util.List;
 @Path("/")
 public class PortalServlet extends HttpServlet {
 
-       private static Logger log = LoggerFactory.getLogger(PortalServlet.class.getName());
-       private static final long serialVersionUID = 1L;
-       public static final String MISSING_HEADERS_MSG = "Missing Headers In Request";
-       public static final String AUTHORIZATION_ERROR_MSG = "Autherization error";
-       public static final String NEW_LINE = System.getProperty("line.separator");
+    private static Logger log = LoggerFactory.getLogger(PortalServlet.class.getName());
+    private static final long serialVersionUID = 1L;
+    public static final String MISSING_HEADERS_MSG = "Missing Headers In Request";
+    private static final String AUTHORIZATION_ERROR_MSG = "Autherization error";
+    private static final String NEW_LINE = System.getProperty("line.separator");
 
-       /**
-        * Entry point from ECOMP portal
-        */
-       @GET
-       @Path("/portal")
-       public void doGet(@Context final HttpServletRequest request, @Context final HttpServletResponse response) {
-               try {
-                       addRequestHeadersUsingWebseal(request, response);
-               } catch (Exception e) {
-                       FeEcompErrorManager.getInstance().logFePortalServletError("Portal Servlet");
-                       log.error("Error during getting portal page", e);
-               }
-       }
-       
-       /**
-        * Building new HTTP request and setting headers for the request The request
-        * will dispatch to index.html
-        * 
-        * @param request
-        * @param response
-        * @throws ServletException
-        * @throws IOException
-        */
-       private void addRequestHeadersUsingWebseal(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
-               
-               response.setContentType("text/html");
+    /**
+     * Entry point from ECOMP portal
+     */
+    @GET
+    @Path("/portal")
+    public void doGet(@Context final HttpServletRequest request, @Context final HttpServletResponse response) {
+        try {
+            addRequestHeadersUsingWebseal(request, response);
+        } catch (Exception e) {
+            FeEcompErrorManager.getInstance().logFePortalServletError("Portal Servlet");
+            log.error("Error during getting portal page", e);
+        }
+    }
 
-               // Create new request object to dispatch
-               MutableHttpServletRequest mutableRequest = new MutableHttpServletRequest(request);
+    /**
+     * Building new HTTP request and setting headers for the request The request
+     * will dispatch to index.html
+     *
+     * @param request
+     * @param response
+     * @throws ServletException
+     * @throws IOException
+     */
+    private void addRequestHeadersUsingWebseal(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
 
-               // Get configuration object (reads data from configuration.yaml)
-               Configuration configuration = getConfiguration(request);
+        response.setContentType("text/html");
 
-               // Check if we got header from webseal
-               String userId = request.getHeader(Constants.WEBSEAL_USER_ID_HEADER);
-               if (null == userId) {
-                       // Authentication via ecomp portal
-                       try {
-                               String userIdFromCookie = getUserIdFromCookie(request);
-                               if (("").equals(userIdFromCookie)) {
-                                       // This is probably a webseal request, so missing header in request should be printed.
-                                       response.sendError(HttpServletResponse.SC_USE_PROXY, MISSING_HEADERS_MSG);
-                               }
-                               userId = userIdFromCookie;
-                       } catch (Exception e) {
-                               response.sendError(HttpServletResponse.SC_USE_PROXY, AUTHORIZATION_ERROR_MSG);
-                       }
-               }
-               
-               // Replace webseal header with open source header
-               mutableRequest.putHeader(Constants.USER_ID, userId);    
-               
-               // Getting identification headers from configuration.yaml
-               // (identificationHeaderFields) and setting them to new request
-               // mutableRequest
-               List<List<String>> identificationHeaderFields = configuration.getIdentificationHeaderFields();
-               for (List<String> possibleHeadersToRecieve : identificationHeaderFields) {
-                       String allowedHeaderToPass = possibleHeadersToRecieve.get(0);
-                       setNewHeader(possibleHeadersToRecieve, allowedHeaderToPass, request, mutableRequest);
-               }
+        // Create new request object to dispatch
+        MutableHttpServletRequest mutableRequest = new MutableHttpServletRequest(request);
 
-               // Getting optional headers from configuration.yaml
-               // (optionalHeaderFields) and setting them to new request mutableRequest
-               List<List<String>> optionalHeaderFields = configuration.getOptionalHeaderFields();
-               for (List<String> possibleHeadersToRecieve : optionalHeaderFields) {
-                       String allowedHeaderToPass = possibleHeadersToRecieve.get(0);
-                       setNewHeader(possibleHeadersToRecieve, allowedHeaderToPass, request, mutableRequest);
-               }
+        // Get configuration object (reads data from configuration.yaml)
+        Configuration configuration = getConfiguration(request);
 
-               // Print headers from original request for debug purposes
-               printHeaders(request);
+        // Check if we got header from webseal
+        String userId = request.getHeader(Constants.WEBSEAL_USER_ID_HEADER);
+        if (null == userId) {
+            // Authentication via ecomp portal
+            try {
+                String userIdFromCookie = getUserIdFromCookie(request);
+                if (("").equals(userIdFromCookie)) {
+                    // This is probably a webseal request, so missing header in request should be printed.
+                    response.sendError(HttpServletResponse.SC_USE_PROXY, MISSING_HEADERS_MSG);
+                }
+                userId = userIdFromCookie;
+            } catch (Exception e) {
+                response.sendError(HttpServletResponse.SC_USE_PROXY, AUTHORIZATION_ERROR_MSG);
+                log.error("Error during adding request header", e);
+            }
+        }
 
-               // In case using webseal, validate all mandatory headers (identificationHeaderFields) are included in the new request (mutableRequest).
-               // Via ecomp portal do not need to check the headers.
-               boolean allHeadersExist = true;
-               if (null != request.getHeader(Constants.WEBSEAL_USER_ID_HEADER)) {
-                       allHeadersExist = checkHeaders(mutableRequest);
-               }
-               
-               if (allHeadersExist) {
-                       addCookies(response, mutableRequest, getMandatoryHeaders(request));
-                       addCookies(response, mutableRequest, getOptionalHeaders(request));
-                       RequestDispatcher rd = request.getRequestDispatcher("index.html");
-                       rd.forward(mutableRequest, response);
-               } else {
-                       response.sendError(HttpServletResponse.SC_USE_PROXY, MISSING_HEADERS_MSG);
-               }
-       }
+        // Replace webseal header with open source header
+        mutableRequest.putHeader(Constants.USER_ID, userId);
 
-       /**
-        * Print all request headers to the log
-        * 
-        * @param request
-        */
-       private void printHeaders(HttpServletRequest request) {
+        // Getting identification headers from configuration.yaml
+        // (identificationHeaderFields) and setting them to new request
+        // mutableRequest
+        List<List<String>> identificationHeaderFields = configuration.getIdentificationHeaderFields();
+        for (List<String> possibleHeadersToRecieve : identificationHeaderFields) {
+            String allowedHeaderToPass = possibleHeadersToRecieve.get(0);
+            setNewHeader(possibleHeadersToRecieve, allowedHeaderToPass, request, mutableRequest);
+        }
 
-               if (log.isDebugEnabled()) {
-                       StringBuilder builder = new StringBuilder();
-                       String sessionId = "";
-                       if (request.getSession() != null) {
-                               String id = request.getSession().getId();
-                               if (id != null) {
-                                       sessionId = id;
-                               }
-                       }
+        // Getting optional headers from configuration.yaml
+        // (optionalHeaderFields) and setting them to new request mutableRequest
+        List<List<String>> optionalHeaderFields = configuration.getOptionalHeaderFields();
+        for (List<String> possibleHeadersToRecieve : optionalHeaderFields) {
+            String allowedHeaderToPass = possibleHeadersToRecieve.get(0);
+            setNewHeader(possibleHeadersToRecieve, allowedHeaderToPass, request, mutableRequest);
+        }
 
-                       builder.append("Receiving request with headers:" + NEW_LINE);
-                       log.debug("{}", request.getHeaderNames());
-                       @SuppressWarnings("unchecked")
-                       Enumeration<String> headerNames = request.getHeaderNames();
-                       if (headerNames != null) {
-                               while (headerNames.hasMoreElements()) {
-                                       String headerName = headerNames.nextElement();
-                                       String headerValue = request.getHeader(headerName);
-                                       builder.append("session " + sessionId + " header: name = " + headerName + ", value = " + headerValue + NEW_LINE);
-                               }
-                       }
+        // Print headers from original request for debug purposes
+        printHeaders(request);
 
-                       log.debug(builder.toString());
-               }
+        // In case using webseal, validate all mandatory headers (identificationHeaderFields) are included in the new request (mutableRequest).
+        // Via ecomp portal do not need to check the headers.
+        boolean allHeadersExist = true;
+        if (null != request.getHeader(Constants.WEBSEAL_USER_ID_HEADER)) {
+            allHeadersExist = checkHeaders(mutableRequest);
+        }
 
-       }
+        if (allHeadersExist) {
+            addCookies(response, mutableRequest, getMandatoryHeaders(request));
+            addCookies(response, mutableRequest, getOptionalHeaders(request));
+            RequestDispatcher rd = request.getRequestDispatcher("index.html");
+            rd.forward(mutableRequest, response);
+        } else {
+            response.sendError(HttpServletResponse.SC_USE_PROXY, MISSING_HEADERS_MSG);
+        }
+    }
 
-       /**
-        * Add cookies (that where set in the new request headers) in the response
-        * 
-        * @param response
-        * @param request
-        * @param headers
-        */
-       private void addCookies(HttpServletResponse response, HttpServletRequest request, String[] headers) {
-               for (int i = 0; i < headers.length; i++) {
-                       String currHeader = headers[i];
-                       String headerValue = request.getHeader(currHeader);
-                       if (headerValue != null) {
-                               response.addCookie(new Cookie(currHeader, headerValue));
-                       }
-               }
-       }
+    /**
+     * Print all request headers to the log
+     *
+     * @param request
+     */
+    private void printHeaders(HttpServletRequest request) {
 
-       /**
-        * Get mandatory headers (identificationHeaderFields) String array, and
-        * checks that each header exists in the new request
-        * 
-        * @param request
-        * @return boolean
-        */
-       private boolean checkHeaders(HttpServletRequest request) {
-               String[] mandatoryHeaders = getMandatoryHeaders(request);
+        if (log.isDebugEnabled()) {
+            StringBuilder builder = new StringBuilder();
+            String sessionId = "";
+            if (request.getSession() != null) {
+                String id = request.getSession().getId();
+                if (id != null) {
+                    sessionId = id;
+                }
+            }
 
-               boolean allHeadersExist = true;
-               for (int i = 0; i < mandatoryHeaders.length; i++) {
-                       String headerValue = request.getHeader(mandatoryHeaders[i]);
-                       if (headerValue == null) {
-                               allHeadersExist = false;
-                               break;
-                       }
-               }
-               return allHeadersExist;
-       }
+            builder.append("Receiving request with headers:" + NEW_LINE);
+            log.debug("{}", request.getHeaderNames());
+            @SuppressWarnings("unchecked")
+            Enumeration<String> headerNames = request.getHeaderNames();
+            if (headerNames != null) {
+                while (headerNames.hasMoreElements()) {
+                    String headerName = headerNames.nextElement();
+                    String headerValue = request.getHeader(headerName);
+                    builder.append("session " + sessionId + " header: name = " + headerName + ", value = " + headerValue + NEW_LINE);
+                }
+            }
 
-       /**
-        * Get mandatory headers (identificationHeaderFields) from
-        * configuration.yaml file and return String[]
-        * 
-        * @param request
-        * @return String[]
-        */
-       private String[] getMandatoryHeaders(HttpServletRequest request) {
-               Configuration configuration = getConfiguration(request);
-               List<List<String>> identificationHeaderFields = configuration.getIdentificationHeaderFields();
-               String[] mandatoryHeaders = new String[identificationHeaderFields.size()];
-               for (int i = 0; i < identificationHeaderFields.size(); i++) {
-                       mandatoryHeaders[i] = identificationHeaderFields.get(i).get(0);
-               }
-               return mandatoryHeaders;
-       }
+            log.debug(builder.toString());
+        }
 
-       /**
-        * Get optional headers (optionalHeaderFields) from configuration.yaml file
-        * and return String[]
-        * 
-        * @param request
-        * @return String[]
-        */
-       private String[] getOptionalHeaders(HttpServletRequest request) {
-               Configuration configuration = getConfiguration(request);
-               List<List<String>> optionalHeaderFields = configuration.getOptionalHeaderFields();
-               String[] optionalHeaders = new String[optionalHeaderFields.size()];
-               for (int i = 0; i < optionalHeaderFields.size(); i++) {
-                       optionalHeaders[i] = optionalHeaderFields.get(i).get(0);
-               }
-               return optionalHeaders;
-       }
+    }
 
-       /**
-        * Return Configuration object to read from configuration.yaml
-        * 
-        * @param request
-        * @return Configuration
-        */
-       private Configuration getConfiguration(HttpServletRequest request) {
-               ConfigurationManager configManager = (ConfigurationManager) request.getSession().getServletContext().getAttribute(org.openecomp.sdc.common.api.Constants.CONFIGURATION_MANAGER_ATTR);
-               return configManager.getConfiguration();
-       }
+    /**
+     * Add cookies (that where set in the new request headers) in the response
+     *
+     * @param response
+     * @param request
+     * @param headers
+     */
+    private void addCookies(HttpServletResponse response, HttpServletRequest request, String[] headers) {
+        for (int i = 0; i < headers.length; i++) {
+            String currHeader = headers[i];
+            String headerValue = request.getHeader(currHeader);
+            if (headerValue != null) {
+                response.addCookie(new Cookie(currHeader, headerValue));
+            }
+        }
+    }
 
-       private boolean setNewHeader(List<String> possibleOldHeaders, String newHeaderToSet, HttpServletRequest oldRequest, MutableHttpServletRequest newRequest) {
-               boolean newHeaderIsSet = false;
-               for (int i = 0; i < possibleOldHeaders.size() && !newHeaderIsSet; i++) {
-                       String headerValue = oldRequest.getHeader(possibleOldHeaders.get(i));
-                       if (headerValue != null) {
-                               newRequest.putHeader(newHeaderToSet, headerValue);
-                               newHeaderIsSet = true;
-                       }
-               }
-               return newHeaderIsSet;
-       }
-       
-       private static String getUserIdFromCookie(HttpServletRequest request) throws Exception {
-               String userId = "";
-               Cookie[] cookies = request.getCookies();
-               Cookie userIdcookie = null;
-               if (cookies != null)
-                       for (Cookie cookie : cookies)
-                               if (cookie.getName().equals(Constants.ECOMP_PORTAL_COOKIE))
-                                       userIdcookie = cookie;
-               if (userIdcookie != null) {
-                       userId = CipherUtil.decrypt(userIdcookie.getValue());
-                       //Todo Remove after smoke test & review
-                       /*userId = CipherUtil.decrypt(userIdcookie.getValue(),
-                                       PortalApiProperties.getProperty(PortalApiConstants.CSP_GATE_KEEPER_PROD_KEY));*/
-               }
-               return userId;
+    /**
+     * Get mandatory headers (identificationHeaderFields) String array, and
+     * checks that each header exists in the new request
+     *
+     * @param request
+     * @return boolean
+     */
+    private boolean checkHeaders(HttpServletRequest request) {
+        String[] mandatoryHeaders = getMandatoryHeaders(request);
 
-       }
+        boolean allHeadersExist = true;
+        for (int i = 0; i < mandatoryHeaders.length; i++) {
+            String headerValue = request.getHeader(mandatoryHeaders[i]);
+            if (headerValue == null) {
+                allHeadersExist = false;
+                break;
+            }
+        }
+        return allHeadersExist;
+    }
+
+    /**
+     * Get mandatory headers (identificationHeaderFields) from
+     * configuration.yaml file and return String[]
+     *
+     * @param request
+     * @return String[]
+     */
+    private String[] getMandatoryHeaders(HttpServletRequest request) {
+        Configuration configuration = getConfiguration(request);
+        List<List<String>> identificationHeaderFields = configuration.getIdentificationHeaderFields();
+        String[] mandatoryHeaders = new String[identificationHeaderFields.size()];
+        for (int i = 0; i < identificationHeaderFields.size(); i++) {
+            mandatoryHeaders[i] = identificationHeaderFields.get(i).get(0);
+        }
+        return mandatoryHeaders;
+    }
+
+    /**
+     * Get optional headers (optionalHeaderFields) from configuration.yaml file
+     * and return String[]
+     *
+     * @param request
+     * @return String[]
+     */
+    private String[] getOptionalHeaders(HttpServletRequest request) {
+        Configuration configuration = getConfiguration(request);
+        List<List<String>> optionalHeaderFields = configuration.getOptionalHeaderFields();
+        String[] optionalHeaders = new String[optionalHeaderFields.size()];
+        for (int i = 0; i < optionalHeaderFields.size(); i++) {
+            optionalHeaders[i] = optionalHeaderFields.get(i).get(0);
+        }
+        return optionalHeaders;
+    }
+
+    /**
+     * Return Configuration object to read from configuration.yaml
+     *
+     * @param request
+     * @return Configuration
+     */
+    private Configuration getConfiguration(HttpServletRequest request) {
+        ConfigurationManager configManager = (ConfigurationManager) request.getSession().getServletContext().getAttribute(org.openecomp.sdc.common.api.Constants.CONFIGURATION_MANAGER_ATTR);
+        return configManager.getConfiguration();
+    }
+
+    private boolean setNewHeader(List<String> possibleOldHeaders, String newHeaderToSet, HttpServletRequest oldRequest, MutableHttpServletRequest newRequest) {
+        boolean newHeaderIsSet = false;
+        for (int i = 0; i < possibleOldHeaders.size() && !newHeaderIsSet; i++) {
+            String headerValue = oldRequest.getHeader(possibleOldHeaders.get(i));
+            if (headerValue != null) {
+                newRequest.putHeader(newHeaderToSet, headerValue);
+                newHeaderIsSet = true;
+            }
+        }
+        return newHeaderIsSet;
+    }
+
+    private static String getUserIdFromCookie(HttpServletRequest request) throws Exception {
+        String userId = "";
+        Cookie[] cookies = request.getCookies();
+        Cookie userIdcookie = null;
+        if (cookies != null) {
+            for (Cookie cookie : cookies) {
+                if (cookie.getName().equals(Constants.ECOMP_PORTAL_COOKIE)) {
+                    userIdcookie = cookie;
+                }
+            }
+        }
+        if (userIdcookie != null) {
+            userId = CipherUtil.decrypt(userIdcookie.getValue());
+        }
+        return userId;
+
+    }
 }
index 182d198..25659dd 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
@@ -34,60 +34,41 @@ import javax.servlet.ServletException;
 
 public abstract class SSLProxyServlet extends ProxyServlet {
 
-       private static final long serialVersionUID = 1L;
-       private static Logger log = LoggerFactory.getLogger(SSLProxyServlet.class.getName());
+    private static final long serialVersionUID = 1L;
+    private static final int TIMEOUT = 600000;
+    private static Logger log = LoggerFactory.getLogger(SSLProxyServlet.class.getName());
 
-       //TODO If no problems will arise remove in next merge
-    /*@Override
-    protected void sendProxyRequest(HttpServletRequest clientRequest, HttpServletResponse proxyResponse, Request proxyRequest) {
-        // Add Missing Headers to proxy request
-        @SuppressWarnings("unchecked")
-        Enumeration<String> headerNames = clientRequest.getHeaderNames();
-        while (headerNames.hasMoreElements()) {
-            String headerName = headerNames.nextElement();
-            if (!proxyRequest.getHeaders().containsKey(headerName)) {
-                String headerVal = clientRequest.getHeader(headerName);
-                log.debug("Adding missing header to request,  header name: {} , header value: {}", headerName,
-                        headerVal);
-                proxyRequest.header(headerName, headerVal);
-            }
-        }
-        proxyRequest.getHeaders().remove(HttpHeader.HOST);
-
-        super.sendProxyRequest(clientRequest, proxyResponse, proxyRequest);
-    }*/
+    @Override
+    protected HttpClient createHttpClient() throws ServletException {
+        Configuration config = ((ConfigurationManager) getServletConfig().getServletContext()
+                .getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
+        boolean isSecureClient = !config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName());
+        HttpClient client = (isSecureClient) ? getSecureHttpClient() : super.createHttpClient();
+        setTimeout(TIMEOUT);
+        client.setIdleTimeout(TIMEOUT);
+        client.setStopTimeout(TIMEOUT);
 
-       @Override
-       protected HttpClient createHttpClient() throws ServletException {
-               Configuration config = ((ConfigurationManager) getServletConfig().getServletContext()
-                               .getAttribute(Constants.CONFIGURATION_MANAGER_ATTR)).getConfiguration();
-               boolean isSecureClient = !config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName());
-               HttpClient client = (isSecureClient) ? getSecureHttpClient() : super.createHttpClient();
-               setTimeout(600000);
-               client.setIdleTimeout(600000);
-               client.setStopTimeout(600000);
+        return client;
+    }
 
-               return client;
-       }
+    private HttpClient getSecureHttpClient() throws ServletException {
+        // Instantiate and configure the SslContextFactory
+        SslContextFactory sslContextFactory = new SslContextFactory(true);
 
-       private HttpClient getSecureHttpClient() throws ServletException {
-               // Instantiate and configure the SslContextFactory
-               SslContextFactory sslContextFactory = new SslContextFactory(true);
+        // Instantiate HttpClient with the SslContextFactory
+        HttpClient httpClient = new HttpClient(sslContextFactory);
 
-               // Instantiate HttpClient with the SslContextFactory
-               HttpClient httpClient = new HttpClient(sslContextFactory);
+        // Configure HttpClient, for example:
+        httpClient.setFollowRedirects(false);
 
-               // Configure HttpClient, for example:
-               httpClient.setFollowRedirects(false);
-
-               // Start HttpClient
-               try {
-                       httpClient.start();
-               } catch (Exception x) {
+        // Start HttpClient
+        try {
+            httpClient.start();
+        } catch (Exception x) {
             log.error("Exception thrown while starting httpClient {}", x);
-                       throw new ServletException(x);
-               }
+            throw new ServletException(x);
+        }
 
         return httpClient;
-       }
+    }
 }
index 4575f30..9257bd4 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed 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.
 package org.openecomp.sdc.fe.utils;
 
 public enum BeProtocol {
-               HTTP("http"), SSL("ssl");
-               private String protocolName;
+    HTTP("http"), SSL("ssl");
+    private String protocolName;
 
-               public String getProtocolName() {
-                       return protocolName;
-               }
+    public String getProtocolName() {
+        return protocolName;
+    }
 
-               BeProtocol(String protocolName) {
-                       this.protocolName = protocolName;
-               }
-       };
+    BeProtocol(String protocolName) {
+        this.protocolName = protocolName;
+    }
+};
index c83a6fa..b2a6be2 100644 (file)
@@ -22,6 +22,7 @@
 <!DOCTYPE suppressions PUBLIC
         "-//Checkstyle//DTD SuppressionFilter Configuration 1.0//EN"
         "https://checkstyle.org/dtds/suppressions_1_0.dtd">
+
 <suppressions>
     <suppress checks=".*" files="\.java" lines="1-20"/>
     <suppress checks=".*" files="\.properties"/>
diff --git a/pom.xml b/pom.xml
index 39fbd8e..5afbe0d 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -381,6 +381,15 @@ Modifications copyright (c) 2018-2019 Nokia
         </pluginManagement>
 
         <plugins>
+            <plugin>
+                <artifactId>maven-checkstyle-plugin</artifactId>
+                <version>2.17</version>
+                <configuration>
+                    <suppressionsLocation>checkstyle-suppressions.xml</suppressionsLocation>
+                    <suppressionsFileExpression>checkstyle.suppressions.file</suppressionsFileExpression>
+                </configuration>
+            </plugin>
+
             <!-- plugin for parsing the project version -->
             <plugin>
                 <groupId>org.codehaus.mojo</groupId>