diff options
author | Nelson, Thomas (arthurdent3) <nelson24@att.com> | 2019-05-14 20:23:59 +0000 |
---|---|---|
committer | Tschaen, Brendan <ctschaen@att.com> | 2019-05-16 12:59:46 -0400 |
commit | 66aac8e2b8f61f075b285f969c1f8a88fdb313bd (patch) | |
tree | 8ee4e4c06b6a95c6b596c503fa9a6b19936917f0 /src/main/java/org/onap/music/MusicApplication.java | |
parent | d6e7b63cc580e7b3822be61fe92a493ad5e222a3 (diff) |
CADI and a few small updates.
- Include CADI and remove Admin API and admin
code.
- A few Sonar Fixes.
- Properties File Clean up.
- Read/Write Locking API.
- Various whitespace fixes.
Issue-ID: MUSIC-394
Change-Id: I58e1b64b71796bb6bda1c97ea688f434a836d3c7
Signed-off-by: Nelson, Thomas (arthurdent3) <nelson24@att.com>
Diffstat (limited to 'src/main/java/org/onap/music/MusicApplication.java')
-rwxr-xr-x | src/main/java/org/onap/music/MusicApplication.java | 139 |
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 |