package org.onap.sdnc.apps.ms.gra;\r
\r
+import java.io.File;\r
+import java.io.FileReader;\r
+import java.io.IOException;\r
+import java.util.Properties;\r
+\r
import org.onap.aaf.cadi.filter.CadiFilter;\r
-import org.onap.ccsdk.apps.filters.ContentTypeFilter;\r
+import org.onap.ccsdk.sli.core.utils.common.EnvProperties;\r
import org.slf4j.Logger;\r
import org.slf4j.LoggerFactory;\r
+import org.springframework.beans.factory.annotation.Value;\r
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;\r
import org.springframework.boot.web.servlet.FilterRegistrationBean;\r
import org.springframework.context.annotation.Bean;\r
import org.springframework.core.annotation.Order;\r
\r
@Configuration\r
-@ConditionalOnProperty("cadi_prop_files")\r
+@ConditionalOnProperty("cadi.properties.path")\r
public class FilterConfiguration {\r
\r
private static final Logger log = LoggerFactory.getLogger(FilterConfiguration.class);\r
\r
+ @Value( "${cadi.properties.path:none}" )\r
+ private String cadiPropFile;\r
+\r
@Bean\r
@Order(1)\r
public FilterRegistrationBean<CadiFilter> cadiFilter() {\r
CadiFilter filter = new CadiFilter();\r
-\r
+ \r
FilterRegistrationBean<CadiFilter> registrationBean = new FilterRegistrationBean<>();\r
registrationBean.setFilter(filter);\r
- if ("none".equals(System.getProperty("cadi_prop_files", "none"))) {\r
- log.info("cadi_prop_files undefined, AAF CADI disabled");\r
+ if ("none".equals(cadiPropFile)) {\r
+ log.info("cadi.properties.path undefined, AAF CADI disabled");\r
+ registrationBean.setEnabled(false);\r
registrationBean.addUrlPatterns("/xxxx/*");\r
} else {\r
- registrationBean.addUrlPatterns("/*");\r
- registrationBean.addInitParameter("cadi_prop_files", System.getProperty("cadi_prop_files"));\r
+ // Note: assume that cadi.properties.path specifies full path to properties file\r
+ File cadiFile = new File(cadiPropFile);\r
+ if (!cadiFile.exists()) {\r
+ log.info("cadi properties file {} not found, AAF CADI disabled", cadiPropFile);\r
+ registrationBean.setEnabled(false);\r
+ registrationBean.addUrlPatterns("/xxxx/*");\r
+ } else {\r
+ Properties cadiProperties = new EnvProperties();\r
+ try {\r
+ cadiProperties.load(new FileReader(cadiFile));\r
+ cadiProperties.forEach((k, v) -> {\r
+ registrationBean.addInitParameter((String) k, cadiProperties.getProperty((String) k));\r
+ });\r
+ registrationBean.addUrlPatterns("/*");\r
+ log.info("Installed and configured CADI filter");\r
+ } catch (IOException e) {\r
+ log.info("Caught exception loading cadi properties file {}, AAF CADI disabled", cadiPropFile, e);\r
+ registrationBean.setEnabled(false);\r
+ registrationBean.addUrlPatterns("/xxxx/*");\r
+ }\r
+ }\r
+\r
}\r
\r
return registrationBean;\r
--- /dev/null
+#\r
+# https://wiki.web.att.com/display/cadi/CADI+Deployment\r
+# This is a normal Java Properties File\r
+# Comments are with Pound Signs at beginning of lines,\r
+# and multi-line expression of properties can be obtained by backslash at end of line\r
+\r
+# CSP has Production mode (active users) or DEVL mode\r
+#csp_domain=DEVL\r
+csp_domain=PROD\r
+\r
+# Http app intended to be accessible only by the users on this machine\r
+#localhost_allow=false\r
+localhost_allow=TRUE\r
+\r
+# Deny all localhost activity.\r
+#localhost_deny=false\r
+#csp_devl_localhost=true\r
+\r
+# Report all AUTHN and AUTHZ activity\r
+cadi_loglevel=DEBUG\r
+basic_warn=TRUE\r
+\r
+# Use Certificates for authentication\r
+cadi_protocols=\r
+#cadi_prop_files=/opt/app/aafcertman/com.att.sdncp.dev.props\r
+\r
+# Basic Auth on HTTP without SSL shows warning\r
+# TRUE will warn everytime, FALSE will warn only once at beginning\r
+#basic_warn=FALSE\r
+\r
+# The realm reported on BasicAuth callbacks\r
+basic_realm=csp.att.com\r
+\r
+# Configure AAF\r
+aaf_locate_url=https://${AAF_HOST:-aafist-azure.test.att.com}\r
+aaf_url=https://${AAF_HOST:-aafist-azure.test.att.com}/locate/com.att.aaf.service:2.0\r
+aaf_id=${AAF_MECHID}@${AAF_NAMESPACE:-dev.sdncp.att.com}\r
+\r
+aaf_password=${AAF_MECHID_CRED}\r
+aaf_lur=com.att.cadi.aaf.v2_0.AAFLurPerm\r
+\r
+# User Expires for not Unit Test should be something like 900000 (15 mins) default is 10 mins\r
+# 15 seconds is so that Unit Tests don't delay compiles etc\r
+aaf_user_expires=600000\r
+# High count.Rough top number of objects held in Cache per cycle. If high is reached, more are\r
+# recycled next time. Depending on Memory usage, 2000 is probably decent. 1000 is default\r
+aaf_high_count=1000\r
+aaf_clean_interval=30000\r
+\r
+# copied values - should use real values\r
+cadi_latitude=${AAF_LATITUDE:-30.267}\r
+cadi_longitude=${AAF_LONGITUDE:--97.743}\r
+\r
+# cadi conversion file\r
+#cadi_bath_convert=/opt/sdnc/gra/config/bath_config.csv\r