rfConfig.setClassName(GeoServerRoleFilter.class.getName()); rfConfig.setName(filterName); rfConfig.setHttpResponseHeaderAttrForIncludedRoles( GeoServerRoleFilter.DEFAULT_HEADER_ATTRIBUTE); rfConfig.setRoleConverterName(GeoServerRoleFilter.DEFAULT_ROLE_CONVERTER);
@Test public void testFilterChainWithEnabled() throws Exception { GeoServerSecurityManager secMgr = getSecurityManager(); RoleFilterConfig config = new RoleFilterConfig(); config.setName("roleConverter"); config.setClassName(GeoServerRoleFilter.class.getName()); config.setRoleConverterName("roleConverter"); config.setHttpResponseHeaderAttrForIncludedRoles("ROLES"); secMgr.saveFilter(config); MockHttpServletRequest request = createRequest("/foo"); MockHttpServletResponse response = new MockHttpServletResponse(); Servlet servlet = EasyMock.createNiceMock(Servlet.class); MockFilterChain chain = new MockFilterChain(servlet, getSecurityManager().loadFilter("roleConverter")); GeoServerSecurityFilterChainProxy filterChainProxy = GeoServerExtensions.bean(GeoServerSecurityFilterChainProxy.class); filterChainProxy.doFilter(request, response, chain); assertEquals(GeoServerRole.ANONYMOUS_ROLE.getAuthority(), response.getHeader("ROLES")); }
@Test public void testRoleFilterConfigValidation() throws Exception { RoleFilterConfig config = new RoleFilterConfig(); config.setClassName(GeoServerRoleFilter.class.getName()); config.setName("testRoleFilter"); GeoServerSecurityManager secMgr = getSecurityManager(); FilterConfigValidator validator = new FilterConfigValidator(secMgr); try { validator.validateFilterConfig(config); fail("no header attribute should fail"); } catch (FilterConfigException ex) { assertEquals(FilterConfigException.HEADER_ATTRIBUTE_NAME_REQUIRED, ex.getId()); assertEquals(0, ex.getArgs().length); } config.setHttpResponseHeaderAttrForIncludedRoles("roles"); config.setRoleConverterName("unknown"); try { validator.validateFilterConfig(config); fail("unkonwn role converter should fail"); } catch (FilterConfigException ex) { assertEquals(FilterConfigException.UNKNOWN_ROLE_CONVERTER, ex.getId()); assertEquals(1, ex.getArgs().length); assertEquals("unknown", ex.getArgs()[0]); } config.setRoleConverterName(null); validator.validateFilterConfig(config); }