@Override public SecurityConfigValidator createConfigurationValidator( GeoServerSecurityManager securityManager) { return new CasFilterConfigValidator(securityManager); }
@Override public void validateFilterConfig(SecurityNamedServiceConfig config) throws FilterConfigException { if (config instanceof CasAuthenticationFilterConfig) { validateCASFilterConfig((CasAuthenticationFilterConfig)config); } else { super.validateFilterConfig(config); } }
new URL(casConfig.getUrlInCasLogoutPage()); } catch (MalformedURLException ex) { throw createFilterException(CasFilterConfigException.CAS_URL_IN_LOGOUT_PAGE_MALFORMED); throw createFilterException(CasFilterConfigException.CAS_SERVER_URL_REQUIRED); throw createFilterException(CasFilterConfigException.CAS_SERVER_URL_MALFORMED); callBackUrl=new URL(casConfig.getProxyCallbackUrlPrefix()); } catch (MalformedURLException ex) { throw createFilterException(CasFilterConfigException.CAS_PROXYCALLBACK_MALFORMED); throw createFilterException(CasFilterConfigException.CAS_PROXYCALLBACK_NOT_HTTPS);
public void validateCASFilterConfig(CasAuthenticationFilterConfig casConfig) throws FilterConfigException { if (StringUtils.hasLength(casConfig.getUrlInCasLogoutPage())) { try { new URL(casConfig.getUrlInCasLogoutPage()); } catch (MalformedURLException ex) { throw createFilterException( CasFilterConfigException.CAS_URL_IN_LOGOUT_PAGE_MALFORMED); } } super.validateFilterConfig((PreAuthenticatedUserNameFilterConfig) casConfig); if (StringUtils.hasLength(casConfig.getCasServerUrlPrefix()) == false) throw createFilterException(CasFilterConfigException.CAS_SERVER_URL_REQUIRED); try { new URL(casConfig.getCasServerUrlPrefix()); } catch (MalformedURLException ex) { throw createFilterException(CasFilterConfigException.CAS_SERVER_URL_MALFORMED); } if (StringUtils.hasLength(casConfig.getProxyCallbackUrlPrefix())) { URL callBackUrl = null; try { callBackUrl = new URL(casConfig.getProxyCallbackUrlPrefix()); } catch (MalformedURLException ex) { throw createFilterException(CasFilterConfigException.CAS_PROXYCALLBACK_MALFORMED); } if ("https".equalsIgnoreCase(callBackUrl.getProtocol()) == false) throw createFilterException(CasFilterConfigException.CAS_PROXYCALLBACK_NOT_HTTPS); } }
@Override public void validateFilterConfig(SecurityNamedServiceConfig config) throws FilterConfigException { if (config instanceof CasAuthenticationFilterConfig) { validateCASFilterConfig((CasAuthenticationFilterConfig) config); } else { super.validateFilterConfig(config); } }
@Override public SecurityConfigValidator createConfigurationValidator( GeoServerSecurityManager securityManager) { return new CasFilterConfigValidator(securityManager); }
@Test public void testCasFilterConfigValidation() throws Exception{ CasAuthenticationFilterConfig config = new CasAuthenticationFilterConfig(); config.setClassName(GeoServerCasAuthenticationFilter.class.getName()); config.setName("testCAS"); check(config); validator.validateCASFilterConfig(config); }
@Before public void setValidator() { validator=new CasFilterConfigValidator(getSecurityManager()); }
validator.validateCASFilterConfig(config); } catch (FilterConfigException ex){ assertEquals(FilterConfigException.ROLE_SOURCE_NEEDED,ex.getId()); failed = false; try { validator.validateCASFilterConfig(config); } catch (FilterConfigException ex){ assertEquals(FilterConfigException.USER_GROUP_SERVICE_NEEDED,ex.getId()); failed = false; try { validator.validateCASFilterConfig(config); } catch (FilterConfigException ex){ assertEquals(FilterConfigException.UNKNOWN_USER_GROUP_SERVICE,ex.getId()); failed = false; try { validator.validateCASFilterConfig(config); } catch (FilterConfigException ex){ assertEquals(FilterConfigException.UNKNOWN_ROLE_SERVICE,ex.getId()); failed = false; try { validator.validateCASFilterConfig(config); } catch (FilterConfigException ex){ assertEquals(FilterConfigException.ROLES_HEADER_ATTRIBUTE_NEEDED,ex.getId()); failed = false;