summaryrefslogtreecommitdiffstats
path: root/ms/gra/gra-app
diff options
context:
space:
mode:
authorDan Timoney <dtimoney@att.com>2021-04-30 14:24:50 -0400
committerDan Timoney <dtimoney@att.com>2021-04-30 14:24:50 -0400
commit2895f181a0cb648d2eb9b258ce86d4e38855c7e2 (patch)
treea1d3c56ca4d235a6d46c501775611cafff294ab5 /ms/gra/gra-app
parent4812dfbcf0c010cb05ec88505a6c473a96644284 (diff)
Support env variables for CADI settings
Update code to read CADI properties using EnvProperties class to resolve env variable references and then pass resolved values to CadiFilter, instead of passing file itself as cadi_prop_files property setting. Change-Id: Ia0da0b711a48a51c3fab06412bf01efdede542a2 Issue-ID: SDNC-1532 Signed-off-by: Dan Timoney <dtimoney@att.com>
Diffstat (limited to 'ms/gra/gra-app')
-rw-r--r--ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/FilterConfiguration.java44
1 files changed, 37 insertions, 7 deletions
diff --git a/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/FilterConfiguration.java b/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/FilterConfiguration.java
index f63dd97..c054a1b 100644
--- a/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/FilterConfiguration.java
+++ b/ms/gra/gra-app/src/main/java/org/onap/sdnc/apps/ms/gra/FilterConfiguration.java
@@ -1,9 +1,15 @@
package org.onap.sdnc.apps.ms.gra;
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.util.Properties;
+
import org.onap.aaf.cadi.filter.CadiFilter;
-import org.onap.ccsdk.apps.filters.ContentTypeFilter;
+import org.onap.ccsdk.sli.core.utils.common.EnvProperties;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
@@ -11,24 +17,48 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.core.annotation.Order;
@Configuration
-@ConditionalOnProperty("cadi_prop_files")
+@ConditionalOnProperty("cadi.properties.path")
public class FilterConfiguration {
private static final Logger log = LoggerFactory.getLogger(FilterConfiguration.class);
+ @Value( "${cadi.properties.path:none}" )
+ private String cadiPropFile;
+
@Bean
@Order(1)
public FilterRegistrationBean<CadiFilter> cadiFilter() {
CadiFilter filter = new CadiFilter();
-
+
FilterRegistrationBean<CadiFilter> registrationBean = new FilterRegistrationBean<>();
registrationBean.setFilter(filter);
- if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {
- log.info("cadi_prop_files undefined, AAF CADI disabled");
+ if ("none".equals(cadiPropFile)) {
+ log.info("cadi.properties.path undefined, AAF CADI disabled");
+ registrationBean.setEnabled(false);
registrationBean.addUrlPatterns("/xxxx/*");
} else {
- registrationBean.addUrlPatterns("/*");
- registrationBean.addInitParameter("cadi_prop_files", System.getProperty("cadi_prop_files"));
+ // Note: assume that cadi.properties.path specifies full path to properties file
+ File cadiFile = new File(cadiPropFile);
+ if (!cadiFile.exists()) {
+ log.info("cadi properties file {} not found, AAF CADI disabled", cadiPropFile);
+ registrationBean.setEnabled(false);
+ registrationBean.addUrlPatterns("/xxxx/*");
+ } else {
+ Properties cadiProperties = new EnvProperties();
+ try {
+ cadiProperties.load(new FileReader(cadiFile));
+ cadiProperties.forEach((k, v) -> {
+ registrationBean.addInitParameter((String) k, cadiProperties.getProperty((String) k));
+ });
+ registrationBean.addUrlPatterns("/*");
+ log.info("Installed and configured CADI filter");
+ } catch (IOException e) {
+ log.info("Caught exception loading cadi properties file {}, AAF CADI disabled", cadiPropFile, e);
+ registrationBean.setEnabled(false);
+ registrationBean.addUrlPatterns("/xxxx/*");
+ }
+ }
+
}
return registrationBean;