}
@Test
public void testExceptionTranslationFilterConfigValidation() throws Exception{
ExceptionTranslationFilterConfig config = new ExceptionTranslationFilterConfig();
config.setClassName(GeoServerExceptionTranslationFilter.class.getName());
config.setName("testEx");
FilterConfigValidator validator = new FilterConfigValidator(getSecurityManager());
config.setAuthenticationFilterName("unknown");
try {
validator.validateFilterConfig(config);
fail("invalid entry point should fail");
} catch (FilterConfigException ex){
assertEquals(FilterConfigException.INVALID_ENTRY_POINT,ex.getId());
assertEquals(1,ex.getArgs().length);
assertEquals("unknown",ex.getArgs()[0]);
}
config.setAuthenticationFilterName(GeoServerSecurityFilterChain.FILTER_SECURITY_INTERCEPTOR);
try {
validator.validateFilterConfig(config);
fail("no auth entry point should fail");
} catch (FilterConfigException ex){
assertEquals(FilterConfigException.NO_AUTH_ENTRY_POINT,ex.getId());
assertEquals(1,ex.getArgs().length);
assertEquals(GeoServerSecurityFilterChain.FILTER_SECURITY_INTERCEPTOR,ex.getArgs()[0]);
}
config.setAuthenticationFilterName(null);
validator.validateFilterConfig(config);
}