summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java116
-rw-r--r--catalog-fe/src/test/java/org/openecomp/sdc/servlets/FeProxyServletTest.java25
-rw-r--r--catalog-ui/configurations/dev.js2
-rw-r--r--catalog-ui/configurations/prod.js2
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/fe/config/PluginsConfiguration.java108
-rw-r--r--docs/configuration.rst6
-rw-r--r--sdc-os-chef/environments/plugins-configuration.yaml2
-rw-r--r--sdc-os-chef/kubernetes/sdc/templates/configmaps/sdc-environment-configmap.yaml4
8 files changed, 137 insertions, 128 deletions
diff --git a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java
index 1d7643fe40..1c7b174c57 100644
--- a/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java
+++ b/catalog-fe/src/main/java/org/openecomp/sdc/fe/servlets/FeProxyServlet.java
@@ -46,8 +46,9 @@ public class FeProxyServlet extends SSLProxyServlet {
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 SDC1_PLUGIN_REDIRECT = SDC1_FE_PROXY + "/plugin";
+ private static final String PLUGIN_ID_WORKFLOW = "WORKFLOW";
private static final Logger LOGGER = Logger.getLogger(FeProxyServlet.class);
private static final int EXPIRE_DURATION = 10;
@@ -153,24 +154,6 @@ public class FeProxyServlet extends SSLProxyServlet {
}
- /****
- * scan all the plugins from the configuration against the URL and the redicert path
- * @param request
- * @return
- */
- private Plugin getPluginProxyForRequest(HttpServletRequest request) {
- return getPluginConfiguration(request).getPluginsList()
- .stream()
- .filter(plugin -> {
- if (plugin.getPluginProxyRedirectPath() != null && !plugin.getPluginProxyRedirectPath().isEmpty()) {
- return request.getRequestURI().contains(SDC1_PLUGIN_REDIRECT + plugin.getPluginProxyRedirectPath());
- } else {
- return false;
- }
- })
- .findFirst().orElse(null);
- }
-
private String getModifiedUrl(HttpServletRequest request) throws MalformedURLException {
Configuration config = getConfiguration(request);
if (config == null) {
@@ -178,77 +161,50 @@ public class FeProxyServlet extends SSLProxyServlet {
throw new RuntimeException("failed to read FE configuration");
}
String uri = request.getRequestURI();
-
- // the modify logic is as follows:
- // - proxy ONBOARDING to the onboarding context. this is not a plugin and hardcoded
- // - proxy DCAE to the correct context. also - not a plugin but hardcoded
- // - proxy to the plugin according to configuration if the path is found in the plugin patterns
- // - proxy to the catalog backend if no other proxy was found
-
+ String protocol;
+ String host;
+ String port;
if (uri.contains(ONBOARDING_CONTEXT)) {
uri = uri.replace(SDC1_FE_PROXY + ONBOARDING_CONTEXT, ONBOARDING_CONTEXT);
- return getModifiedUrlString(
- request,
- uri,
- config.getOnboarding().getHostBe(),
- config.getOnboarding().getPortBe().toString(),
- config.getOnboarding().getProtocolBe());
- }
- if (uri.contains(DCAED_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);
- return getModifiedUrlString(
- request,
- uri,
- config.getBeHost(),
- getCatalogBePort(config),
- config.getBeProtocol());
- }
-
- if (uri.contains(SDC1_PLUGIN_REDIRECT)) {
- Plugin proxyPlugin = getPluginProxyForRequest(request);
- if (proxyPlugin != null) {
- String proxyUrlStr = (proxyPlugin.getPluginFeProxyUrl() != null) ? proxyPlugin.getPluginFeProxyUrl() : proxyPlugin.getPluginSourceUrl();
- URL proxyUrl = new URL(proxyUrlStr);
- uri = uri.replace(SDC1_PLUGIN_REDIRECT + proxyPlugin.getPluginProxyRedirectPath(), proxyUrl.getPath());
- return getModifiedUrlString(request, uri, proxyUrl);
+ protocol = config.getBeProtocol();
+ host = config.getBeHost();
+ if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
+ port = config.getBeHttpPort().toString();
+ } else {
+ port = config.getBeSslPort().toString();
}
- }
-
- Plugin proxyPlugin = getPluginProxyForRequest(request);
- if (proxyPlugin != null) {
- String proxyUrlStr = (proxyPlugin.getPluginFeProxyUrl() != null) ? proxyPlugin.getPluginFeProxyUrl() : proxyPlugin.getPluginSourceUrl();
- URL proxyUrl = new URL(proxyUrlStr);
- uri = uri.replace(SDC1_FE_PROXY + proxyPlugin.getPluginProxyRedirectPath(), proxyUrl.getPath());
- return getModifiedUrlString(request, uri, proxyUrl);
- }
-
- uri = uri.replace(SDC1_FE_PROXY, "/sdc2");
- return getModifiedUrlString(
- request,
- uri,
- config.getBeHost(),
- getCatalogBePort(config),
- config.getBeProtocol());
- }
-
-
- private String getCatalogBePort(Configuration config) {
- if (config.getBeProtocol().equals(BeProtocol.HTTP.getProtocolName())) {
- return config.getBeHttpPort().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 {
- return config.getBeSslPort().toString();
+ 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();
+ }
}
- }
- private String getModifiedUrlString(HttpServletRequest request, String uri, URL url) {
- String queryString = getQueryString(request);
- return String.format(URL, url.getProtocol(), url.getAuthority(), uri, queryString);
- }
-
- private String getModifiedUrlString(HttpServletRequest request, String uri, String host, String port, String protocol) {
String authority = getAuthority(host, port);
String queryString = getQueryString(request);
return String.format(URL, protocol, authority, uri, queryString);
+
}
private PluginsConfiguration getPluginConfiguration(HttpServletRequest request) {
diff --git a/catalog-fe/src/test/java/org/openecomp/sdc/servlets/FeProxyServletTest.java b/catalog-fe/src/test/java/org/openecomp/sdc/servlets/FeProxyServletTest.java
index 81e939b929..4915936b1d 100644
--- a/catalog-fe/src/test/java/org/openecomp/sdc/servlets/FeProxyServletTest.java
+++ b/catalog-fe/src/test/java/org/openecomp/sdc/servlets/FeProxyServletTest.java
@@ -113,12 +113,7 @@ public class FeProxyServletTest {
when(plugin.getPluginId()).thenReturn("WORKFLOW");
when(plugin.getPluginSourceUrl()).thenReturn(WF_PROTOCOL + "://" + WF_HOST + ":" + WF_PORT);
when(plugin.getPluginDiscoveryUrl()).thenReturn(WF_PROTOCOL + "://" + WF_HOST + ":" + WF_PORT + "/workflows");
- when(plugin.getPluginFeProxyUrl()).thenReturn(WF_PROTOCOL + "://" + WF_HOST + ":" + WF_PORT + "/workflows/wf/");
- when(plugin.getPluginProxyRedirectPath()).thenReturn("/wf/");
pluginList.add(plugin);
- PluginsConfiguration.Plugin noConfigPlugin = new PluginsConfiguration.Plugin();
- noConfigPlugin.setPluginId("NO_CONFIG");
- pluginList.add(noConfigPlugin);
when(configurationManager.getPluginsConfiguration()).thenReturn(pluginsConfiguration);
when(pluginsConfiguration.getPluginsList()).thenReturn(pluginList);
@@ -187,31 +182,17 @@ public class FeProxyServletTest {
@Test
public void testRewriteURIWithWFAPIRequest() {
- when(servletRequest.getRequestURI()).thenReturn("/sdc1/feProxy/plugin/wf/workflows");
- String requestResourceUrl = "http://localhost:8080/sdc1/feProxy/plugin/wf/workflows";
- String expectedChangedUrl = WF_PROTOCOL + "://" + WF_HOST + ":" + WF_PORT + "/workflows/wf/workflows";
- when(servletRequest.getRequestURL()).thenReturn(new StringBuffer(requestResourceUrl));
-
- when(servletRequest.getContextPath()).thenReturn("/sdc1");
- when(servletRequest.getServletPath()).thenReturn("/feProxy/plugin/wf/workflows");
-
- String rewriteURI = feProxy.rewriteTarget(servletRequest);
-
- assertEquals(expectedChangedUrl, rewriteURI);
-
- // now test in case it did not go through the plugin
when(servletRequest.getRequestURI()).thenReturn("/sdc1/feProxy/wf/workflows");
- requestResourceUrl = "http://localhost:8080/sdc1/feProxy/wf/workflows";
- expectedChangedUrl = BE_PROTOCOL + "://" + BE_HOST + ":" + BE_PORT + "/sdc2/wf/workflows";
+ String requestResourceUrl = "http://localhost:8080/sdc1/feProxy/wf/workflows";
+ String expectedChangedUrl = WF_PROTOCOL + "://" + WF_HOST + ":" + WF_PORT + "/workflows/wf/workflows";
when(servletRequest.getRequestURL()).thenReturn(new StringBuffer(requestResourceUrl));
when(servletRequest.getContextPath()).thenReturn("/sdc1");
when(servletRequest.getServletPath()).thenReturn("/feProxy/wf/workflows");
- rewriteURI = feProxy.rewriteTarget(servletRequest);
+ String rewriteURI = feProxy.rewriteTarget(servletRequest);
assertEquals(expectedChangedUrl, rewriteURI);
-
}
/**
diff --git a/catalog-ui/configurations/dev.js b/catalog-ui/configurations/dev.js
index be1f52a787..bca591296a 100644
--- a/catalog-ui/configurations/dev.js
+++ b/catalog-ui/configurations/dev.js
@@ -49,7 +49,7 @@ const SDC_CONFIG = {
"GET_lifecycle_state_UNDOCHECKOUT":"lifecycleState/UNDOCHECKOUT",
"root": "/sdc1/feProxy/rest",
"no_proxy_root": "/sdc1/rest",
- "workflow_root": "/sdc1/feProxy/plugin/wf",
+ "workflow_root": "/sdc1/feProxy/wf",
"POST_workflow_artifact": "sdc/v1/catalog",
"PUT_service": "/v1/catalog/services/:id/metadata",
"GET_download_artifact": "/v1/catalog/",
diff --git a/catalog-ui/configurations/prod.js b/catalog-ui/configurations/prod.js
index 32c9ae2a2b..496c5760a6 100644
--- a/catalog-ui/configurations/prod.js
+++ b/catalog-ui/configurations/prod.js
@@ -49,7 +49,7 @@ const SDC_CONFIG = {
"GET_lifecycle_state_UNDOCHECKOUT":"lifecycleState/UNDOCHECKOUT",
"root": "/sdc1/feProxy/rest",
"no_proxy_root": "/sdc1/rest",
- "workflow_root": "/sdc1/feProxy/plugin/wf",
+ "workflow_root": "/sdc1/feProxy/wf",
"POST_workflow_artifact": "sdc/v1/catalog",
"PUT_service": "/v1/catalog/services/:id/metadata",
"GET_download_artifact": "/v1/catalog/",
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/fe/config/PluginsConfiguration.java b/common-app-api/src/main/java/org/openecomp/sdc/fe/config/PluginsConfiguration.java
index 55b0ea0db9..449c9eaccc 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/fe/config/PluginsConfiguration.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/fe/config/PluginsConfiguration.java
@@ -20,50 +20,132 @@
package org.openecomp.sdc.fe.config;
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
import org.openecomp.sdc.common.api.BasicConfiguration;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
-@Getter
-@Setter
-@ToString
public class PluginsConfiguration extends BasicConfiguration {
private List<Plugin> pluginsList;
private Integer connectionTimeout;
+ public List<Plugin> getPluginsList() {
+ return pluginsList;
+ }
+
+ public void setPluginsList(List<Plugin> pluginsList) {
+ this.pluginsList = pluginsList;
+ }
+
+ public Integer getConnectionTimeout() {
+ return connectionTimeout;
+ }
+
+ public void setConnectionTimeout(Integer connectionTimeout) {
+ this.connectionTimeout = connectionTimeout;
+ }
+
public PluginsConfiguration() {
this.pluginsList = new ArrayList<>();
}
- @Getter
- @Setter
public static class Plugin {
+
private String pluginId;
private String pluginDiscoveryUrl;
private String pluginSourceUrl;
private String pluginStateUrl;
- private String pluginFeProxyUrl; // this is optional in case it is different from the source url.
- private String pluginProxyRedirectPath;
private Map<String, PluginDisplayOptions> pluginDisplayOptions;
private boolean isOnline;
+ public String getPluginId() {
+ return pluginId;
+ }
+
+ public void setPluginId(String pluginId) {
+ this.pluginId = pluginId;
+ }
+
+ public String getPluginDiscoveryUrl() {
+ return pluginDiscoveryUrl;
+ }
+
+ public void setPluginDiscoveryUrl(String pluginDiscoveryUrl) {
+ this.pluginDiscoveryUrl = pluginDiscoveryUrl;
+ }
+
+ public String getPluginSourceUrl() {
+ return pluginSourceUrl;
+ }
+
+ public void setPluginSourceUrl(String pluginSourceUrl) {
+ this.pluginSourceUrl = pluginSourceUrl;
+ }
+
+ public String getPluginStateUrl() {
+ return pluginStateUrl;
+ }
+
+ public void setPluginStateUrl(String pluginStateUrl) {
+ this.pluginStateUrl = pluginStateUrl;
+ }
+
+ public Map<String, PluginDisplayOptions> getPluginDisplayOptions() {
+ return pluginDisplayOptions;
+ }
+
+ public void setPluginDisplayOptions(Map<String, PluginDisplayOptions> pluginDisplayOptions) {
+ this.pluginDisplayOptions = pluginDisplayOptions;
+ }
+
}
- @Getter
- @Setter
- @ToString
public static class PluginDisplayOptions {
+
private String displayName;
private List<String> displayContext;
private List<String> displayRoles;
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public List<String> getDisplayContext() {
+ return displayContext;
+ }
+
+ public void setDisplayContext(List<String> displayContext) {
+ this.displayContext = displayContext;
+ }
+
+ public List<String> getDisplayRoles() {
+ return displayRoles;
+ }
+
+ public void setDisplayRoles(List<String> displayRoles) {
+ this.displayRoles = displayRoles;
+ }
+
+ @Override
+ public String toString() {
+ return "PluginDisplayOptions["
+ + "displayName='" + displayName
+ + ", displayContext=" + displayContext
+ + ", displayRoles=" + displayRoles
+ + ']';
+ }
}
+ @Override
+ public String toString() {
+ return "PluginsConfiguration[" + "pluginsList=" + pluginsList + ", connectionTimeout=" + connectionTimeout + ']';
+ }
}
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 5156f6ee95..59f571d6ca 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -1382,10 +1382,6 @@ FE-plugins-configuration.yaml
# definition of the plugins that exist in sdc
# we have a pre-defined list of plugins that are connected to the system.
# the plugins define where they are shown, to whom and on what elements
- # in addition, the catalog can proxy to the plugin as well if the following 2 keys are set:
- # pluginFeProxyUrl - the pattern of the url that should be proxied after the sdc1/feProxy/plugin prefix
- # pluginProxyRedirectPath - the redirect path to the plugin (full url including protool/host and port)
-
pluginsList:
# the DCAE-DS is the SDC monitoring design studio this entry defines there use as part of the service level context
- pluginId: DCAED
@@ -1418,8 +1414,6 @@ FE-plugins-configuration.yaml
- pluginId: WORKFLOW
pluginDiscoveryUrl: <%= @workflow_discovery_url %>
pluginSourceUrl: <%= @workflow_source_url %>
- pluginFeProxyUrl: <%= @workflow_fe_proxy_url %>
- pluginProxyRedirectPath: <%= @workflow_redirect_path %>
pluginStateUrl: "workflowDesigner"
pluginDisplayOptions:
tab:
diff --git a/sdc-os-chef/environments/plugins-configuration.yaml b/sdc-os-chef/environments/plugins-configuration.yaml
index 1135cbb54e..21de74636f 100644
--- a/sdc-os-chef/environments/plugins-configuration.yaml
+++ b/sdc-os-chef/environments/plugins-configuration.yaml
@@ -19,8 +19,6 @@ pluginsList:
- pluginId: WORKFLOW
pluginDiscoveryUrl: <%= @workflow_discovery_url %>
pluginSourceUrl: <%= @workflow_source_url %>
- pluginFeProxyUrl: <%= @workflow_fe_proxy_url %>
- pluginProxyRedirectPath: <%= @workflow_redirect_path %>
pluginStateUrl: "workflowDesigner"
pluginDisplayOptions:
tab:
diff --git a/sdc-os-chef/kubernetes/sdc/templates/configmaps/sdc-environment-configmap.yaml b/sdc-os-chef/kubernetes/sdc/templates/configmaps/sdc-environment-configmap.yaml
index e332729526..0eb5289c64 100644
--- a/sdc-os-chef/kubernetes/sdc/templates/configmaps/sdc-environment-configmap.yaml
+++ b/sdc-os-chef/kubernetes/sdc/templates/configmaps/sdc-environment-configmap.yaml
@@ -57,9 +57,7 @@ data:
},
"WORKFLOW": {
"workflow_discovery_url": "10.0.2.15",
- "workflow_source_url": "10.0.2.15",
- "workflow_fe_proxy_url": "10.0.2.15",
- "workflow_redirect_path": "/wf"
+ "workflow_source_url": "10.0.2.15"
}
},
"VnfRepo": {