aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/music/MusicApplication.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/music/MusicApplication.java')
-rwxr-xr-xsrc/main/java/org/onap/music/MusicApplication.java139
1 files changed, 107 insertions, 32 deletions
diff --git a/src/main/java/org/onap/music/MusicApplication.java b/src/main/java/org/onap/music/MusicApplication.java
index e6fee58f..8f5f773e 100755
--- a/src/main/java/org/onap/music/MusicApplication.java
+++ b/src/main/java/org/onap/music/MusicApplication.java
@@ -22,7 +22,6 @@
package org.onap.music;
-
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
@@ -31,6 +30,9 @@ import javax.servlet.ServletResponse;
import org.onap.aaf.cadi.PropAccess;
import org.onap.music.authentication.CadiAuthFilter;
+import org.onap.music.authentication.MusicAuthorizationFilter;
+import org.onap.music.eelf.logging.EELFLoggerDelegate;
+import org.onap.music.eelf.logging.MusicLoggingServletFilter;
import org.onap.music.main.MusicUtil;
import org.onap.music.main.PropertiesLoader;
import org.springframework.beans.factory.annotation.Autowired;
@@ -49,31 +51,29 @@ import org.springframework.context.annotation.DependsOn;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.context.request.RequestContextListener;
-
-@SpringBootApplication(scanBasePackages = { "org.onap.music.rest"})
-@EnableAutoConfiguration(exclude={CassandraDataAutoConfiguration.class})
-@ComponentScan(value = {"org.onap.music"})
+@SpringBootApplication(scanBasePackages = { "org.onap.music.rest" })
+@EnableAutoConfiguration(exclude = { CassandraDataAutoConfiguration.class })
+@ComponentScan(value = { "org.onap.music" })
@EnableScheduling
public class MusicApplication extends SpringBootServletInitializer {
@Autowired
- PropertiesLoader propertyLoader;
-
-
+ private PropertiesLoader propertyLoader;
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(MusicApplication.class);
+
public static void main(String[] args) {
- System.setProperty("AFT_DME2_CLIENT_IGNORE_SSL_CONFIG","false");
- System.setProperty("AFT_DME2_CLIENT_KEYSTORE","/opt/app/music/etc/truststore2018.jks");
- System.setProperty("AFT_DME2_CLIENT_KEYSTORE_PASSWORD","changeit");
- System.setProperty("AFT_DME2_CLIENT_SSL_INCLUDE_PROTOCOLS","TLSv1.1,TLSv1.2");
+ System.setProperty("AFT_DME2_CLIENT_IGNORE_SSL_CONFIG", "false");
+ System.setProperty("AFT_DME2_CLIENT_KEYSTORE", "/opt/app/music/etc/truststore2018.jks");
+ System.setProperty("AFT_DME2_CLIENT_KEYSTORE_PASSWORD", "changeit");
+ System.setProperty("AFT_DME2_CLIENT_SSL_INCLUDE_PROTOCOLS", "TLSv1.1,TLSv1.2");
new MusicApplication().configure(new SpringApplicationBuilder(MusicApplication.class)).run(args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
-
+
return application.sources(MusicApplication.class);
}
-
@Bean("loadProperties")
public void loadProperties() {
@@ -82,57 +82,132 @@ public class MusicApplication extends SpringBootServletInitializer {
@Autowired
private ApplicationContext appContext;
-
+
@Bean
@DependsOn("loadProperties")
public PropAccess propAccess() {
- if(MusicUtil.getIsCadi())
- return new PropAccess(new String[] { "cadi_prop_files=/opt/app/music/etc/cadi.properties" });
- else
+ if (MusicUtil.getIsCadi()) {
+ return new PropAccess(new String[] {
+ "cadi_prop_files=/opt/app/music/etc/cadi.properties" });
+ } else {
return null;
+ }
}
-
+
@Bean(name = "cadiFilter")
@DependsOn("loadProperties")
public Filter cadiFilter() throws ServletException {
propertyLoader.loadProperties();
- if(MusicUtil.getIsCadi()) {
+ if (MusicUtil.getIsCadi()) {
PropAccess propAccess = propAccess();
CadiAuthFilter cadiFilter = new CadiAuthFilter(propAccess);
+
return cadiFilter;
- } else
+ } else {
return (ServletRequest request, ServletResponse response, FilterChain chain) -> {
- //do nothing for now.
+ // do nothing for now.
};
-
+ }
+ }
+
+ /**
+ * Added for capturing custom header values from client.
+ *
+ * order is set to 1 for this filter
+ *
+ * sp931a
+ *
+ * @return
+ * @throws ServletException
+ */
+ @Bean(name="logFilter")
+ @DependsOn("loadProperties")
+ public FilterRegistrationBean<Filter> loggingFilterRegistration() throws ServletException {
+ logger.info("loggingFilterRegistration called for log filter..");
+ propertyLoader.loadProperties();
+ FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>();
+ frb.setFilter(new MusicLoggingServletFilter());
+ frb.addUrlPatterns(
+ "/v2/keyspaces/*",
+ "/v2/locks/*",
+ "/v2/priorityq/*"
+ );
+ frb.setName("logFilter");
+ frb.setOrder(1);
+ return frb;
}
+
@Bean
@DependsOn("loadProperties")
public FilterRegistrationBean<Filter> cadiFilterRegistration() throws ServletException {
+ logger.info("cadiFilterRegistration called for cadi filter..");
FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>();
frb.setFilter(cadiFilter());
+
// The Following Patterns are used to control what APIs will be secure
// TODO: Make this a configurable item. Build this from an array?
- if(MusicUtil.getIsCadi()) {
+ if (MusicUtil.getIsCadi()) {
frb.addUrlPatterns(
- "/v2/keyspaces/*",
- "/v2/locks/*",
- "/v3/locks/*",
- "/v2/priorityq/*",
- "/v2/admin/*"
- );
+ "/v2/keyspaces/*",
+ "/v2/locks/*",
+ "/v2/priorityq/*"
+ );
} else {
frb.addUrlPatterns("/v0/test");
}
frb.setName("cadiFilter");
- frb.setOrder(0);
+ frb.setOrder(2);
return frb;
}
+
+ /**
+ * Added for Authorization using CADI
+ *
+ * sp931a
+ *
+ * @return
+ * @throws ServletException
+ */
+ @Bean
+ @DependsOn("loadProperties")
+ public FilterRegistrationBean<Filter> cadiFilterRegistrationForAuth() throws ServletException {
+ logger.info("cadiFilterRegistrationForAuth called for cadi auth filter..");
+ FilterRegistrationBean<Filter> frb = new FilterRegistrationBean<>();
+ frb.setFilter(cadiMusicAuthFilter());
+
+ if (MusicUtil.getIsCadi()) {
+ frb.addUrlPatterns(
+ "/v2/keyspaces/*",
+ "/v2/locks/*",
+ "/v2/priorityq/*"
+ );
+ } else {
+ frb.addUrlPatterns("/v0/test");
+ }
+ frb.setName("cadiMusicAuthFilter");
+ frb.setOrder(3);
+ return frb;
+ }
+
+ @Bean(name = "cadiMusicAuthFilter")
+ @DependsOn("loadProperties")
+ public Filter cadiMusicAuthFilter() throws ServletException {
+ propertyLoader.loadProperties();
+ if (MusicUtil.getIsCadi()) {
+ MusicAuthorizationFilter authFilter = new MusicAuthorizationFilter();
+ return authFilter;
+ } else {
+ return (ServletRequest request, ServletResponse response, FilterChain chain) -> {
+ // do nothing for now.
+ };
+ }
+ }
+
@Bean
@ConditionalOnMissingBean(RequestContextListener.class)
public RequestContextListener requestContextListener() {
return new RequestContextListener();
}
-}
+} \ No newline at end of file