diff options
author | 2021-04-30 14:24:50 -0400 | |
---|---|---|
committer | 2021-04-30 14:24:50 -0400 | |
commit | 2895f181a0cb648d2eb9b258ce86d4e38855c7e2 (patch) | |
tree | a1d3c56ca4d235a6d46c501775611cafff294ab5 /ms/gra/gra-app | |
parent | 4812dfbcf0c010cb05ec88505a6c473a96644284 (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.java | 44 |
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;
|