import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.FileInputStream;
import java.io.IOException;
+import java.util.Properties;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
try {
String cadiPropertiesFile = dmaapConfig.getProperty(CADI_PROPERTIES);
if(cadiPropertiesFile != null && !cadiPropertiesFile.isEmpty()) {
- cadiFilter = new CadiFilter(new PropAccess(cadiPropertiesFile));
+ cadiFilter = new CadiFilter(loadCadiProperties(cadiPropertiesFile));
} else {
throw new ServletException("Cannot initialize CADI filter.CADI properties not available.");
}
}
}
+ private PropAccess loadCadiProperties(String propertiesFilePath) throws ServletException {
+ try {
+ Properties props = new Properties();
+ props.load(new FileInputStream(propertiesFilePath));
+ return new PropAccess(props);
+ } catch (IOException e) {
+ String msg = "Could not load CADI properties file: " + propertiesFilePath;
+ LOGGER.error(msg, e);
+ throw new ServletException(msg);
+ }
+ }
+
DmaapConfig getConfig() {
return (DmaapConfig) DmaapConfig.getConfig();
}
}
@Test
- public void init_shouldInitializeCADI_whenAafIsUsed_andCadiPropertiesSet() throws Exception {
+ public void init_shouldFail_whenAafIsUsed_andInvalidCadiPropertiesSet() throws Exception {
//given
+ String invalidFilePath = "src/test/resources/notExisting.properties";
doReturn("true").when(dmaapConfig).getProperty(eq(AAFAuthenticationFilter.AAF_AUTHN_FLAG), anyString());
- doReturn("cadi.properties").when(dmaapConfig).getProperty(AAFAuthenticationFilter.CADI_PROPERTIES);
+ doReturn(invalidFilePath).when(dmaapConfig).getProperty(AAFAuthenticationFilter.CADI_PROPERTIES);
+
+ //then
+ thrown.expect(ServletException.class);
+ thrown.expectMessage("Could not load CADI properties file: "+invalidFilePath);
+
+ //when
+ filter.init(filterConfig);
+ }
+
+ @Test
+ public void init_shouldInitializeCADI_whenAafIsUsed_andValidCadiPropertiesSet() throws Exception {
+ //given
+ doReturn("true").when(dmaapConfig).getProperty(eq(AAFAuthenticationFilter.AAF_AUTHN_FLAG), anyString());
+ doReturn("src/test/resources/cadi.properties").when(dmaapConfig).getProperty(AAFAuthenticationFilter.CADI_PROPERTIES);
//when
filter.init(filterConfig);
private void initCADIFilter() throws Exception{
doReturn("true").when(dmaapConfig).getProperty(eq(AAFAuthenticationFilter.AAF_AUTHN_FLAG), anyString());
- doReturn("cadi.properties").when(dmaapConfig).getProperty(AAFAuthenticationFilter.CADI_PROPERTIES);
+ doReturn("src/test/resources/cadi.properties").when(dmaapConfig).getProperty(AAFAuthenticationFilter.CADI_PROPERTIES);
filter.init(filterConfig);
filter.setCadiFilter(cadiFilterMock);
}