1 package org.onap.ccsdk.apps.ms.sliboot;
4 import java.io.FileReader;
5 import java.io.IOException;
6 import java.util.Properties;
8 import org.onap.aaf.cadi.filter.CadiFilter;
9 import org.onap.ccsdk.sli.core.utils.common.EnvProperties;
10 import org.slf4j.Logger;
11 import org.slf4j.LoggerFactory;
12 import org.springframework.beans.factory.annotation.Value;
13 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
14 import org.springframework.boot.web.servlet.FilterRegistrationBean;
15 import org.springframework.context.annotation.Bean;
16 import org.springframework.context.annotation.Configuration;
17 import org.springframework.core.annotation.Order;
20 @ConditionalOnProperty("cadi.properties.path")
21 public class FilterConfiguration {
22 private static final Logger log = LoggerFactory.getLogger(FilterConfiguration.class);
24 @Value( "${cadi.properties.path:none}" )
25 private String cadiPropFile;
29 public FilterRegistrationBean<CadiFilter> cadiFilter() {
30 CadiFilter filter = new CadiFilter();
32 FilterRegistrationBean<CadiFilter> registrationBean = new FilterRegistrationBean<>();
33 registrationBean.setFilter(filter);
34 if ("none".equals(cadiPropFile)) {
35 log.info("cadi.properties.path undefined, AAF CADI disabled");
36 registrationBean.setEnabled(false);
37 registrationBean.addUrlPatterns("/xxxx/*");
39 // Note: assume that cadi.properties.path specifies full path to properties file
40 File cadiFile = new File(cadiPropFile);
41 if (!cadiFile.exists()) {
42 log.info("cadi properties file {} not found, AAF CADI disabled", cadiPropFile);
43 registrationBean.setEnabled(false);
44 registrationBean.addUrlPatterns("/xxxx/*");
46 Properties cadiProperties = new EnvProperties();
48 cadiProperties.load(new FileReader(cadiFile));
49 cadiProperties.forEach((k, v) -> {
50 registrationBean.addInitParameter((String) k, cadiProperties.getProperty((String) k));
52 registrationBean.addUrlPatterns("/*");
53 log.info("Installed and configured CADI filter");
54 } catch (IOException e) {
55 log.info("Caught exception loading cadi properties file {}, AAF CADI disabled", cadiPropFile, e);
56 registrationBean.setEnabled(false);
57 registrationBean.addUrlPatterns("/xxxx/*");
63 return registrationBean;