@Override public SecurityConfigValidator createConfigurationValidator( GeoServerSecurityManager securityManager) { return new CasFilterConfigValidator(securityManager); }
/** * extract Cas cookies from all received cookies * * @param cookies * @param conn */ public void extractCASCookies(List<HttpCookie> cookies,HttpURLConnection conn) { warningCookie=getCookieNamed(cookies, "CASPRIVACY"); ticketGrantingCookie=getCookieNamed(cookies, "CASTGC"); } }
@Override public GeoServerSecurityFilter createFilter(SecurityNamedServiceConfig config) { return new GeoServerCasAuthenticationFilter(pgtStorage); }
@Override public void initializeFromConfig(SecurityNamedServiceConfig config) throws IOException { super.initializeFromConfig(config); CasAuthenticationFilterConfig authConfig = (CasAuthenticationFilterConfig) config; validator = new GeoServerCas20ProxyTicketValidator(authConfig.getCasServerUrlPrefix()); validator.setAcceptAnyProxy(true); validator.setProxyGrantingTicketStorage(pgtStorageFilter); validator.setRenew(authConfig.isSendRenew()); if (StringUtils.hasLength(authConfig.getProxyCallbackUrlPrefix())) validator.setProxyCallbackUrl(GeoServerCasConstants.createProxyCallBackURl(authConfig.getProxyCallbackUrlPrefix())); casLogoutURL=GeoServerCasConstants.createCasURl(authConfig.getCasServerUrlPrefix(), GeoServerCasConstants.LOGOUT_URI); if (StringUtils.hasLength(authConfig.getUrlInCasLogoutPage())) casLogoutURL+="?"+GeoServerCasConstants.LOGOUT_URL_PARAM+"="+URLEncoder.encode(authConfig.getUrlInCasLogoutPage(),"utf-8"); singleSignOut=authConfig.isSingleSignOut(); aep = new GeoServerCasAuthenticationEntryPoint(authConfig); }
protected HttpsServer createAndStartHttpsServer() throws Exception { HttpsServer httpsServer = ((LiveCasData) getTestData()).createSSLServer(); URL callbackUrl = new URL( GeoServerCasConstants.createProxyCallBackURl(proxyCallbackUrlPrefix.toString())); httpsServer.createContext(callbackUrl.getPath(), new HttpsProxyCallBackHandler()); httpsServer.createContext(createRequest("/j_spring_cas_security_check").getRequestURI(), new SingleSignOutHandler("/j_spring_cas_security_check")); httpsServer.createContext(createRequest("/wms").getRequestURI(), new SingleSignOutHandler( "/wms")); httpsServer.start(); return httpsServer; }
@Test public void testCasFilterConfigValidation() throws Exception{ CasAuthenticationFilterConfig config = new CasAuthenticationFilterConfig(); config.setClassName(GeoServerCasAuthenticationFilter.class.getName()); config.setName("testCAS"); check(config); validator.validateCASFilterConfig(config); }
@Override protected void onSetUp(org.geoserver.data.test.SystemTestData testData) throws Exception { super.onSetUp(testData); LiveCasData td = (LiveCasData) getTestData(); casServerURLPrefix = td.getServerURLPrefix(); loginUrl = td.getLoginURL(); serviceUrl = td.getServiceURL(); proxyCallbackUrlPrefix = td.getProxyCallbackURLPrefix(); if (httpsServer == null) httpsServer = createAndStartHttpsServer(); }
@Before public void setValidator() { validator=new CasFilterConfigValidator(getSecurityManager()); }
@Override public void validateFilterConfig(SecurityNamedServiceConfig config) throws FilterConfigException { if (config instanceof CasAuthenticationFilterConfig) { validateCASFilterConfig((CasAuthenticationFilterConfig)config); } else { super.validateFilterConfig(config); } }
/** * creates the proxy callback url using the call back url prefix * and {@link #CAS_PROXY_RECEPTOR_PATTERN} * * if the ulrPrefix is null, the return value is null * * @param urlPrefix * @return */ public static String createProxyCallBackURl(String urlPrefix) { return createCasURl(urlPrefix, CAS_PROXY_RECEPTOR_PATTERN); }
protected CasFilterConfigException createFilterException(String errorid, Object... args) { return new CasFilterConfigException(errorid, args); } }
protected boolean checkCookieForSend(HttpCookie cookie) { if (cookie == null) return false; if (cookie.hasExpired()) return false; if (isSecure() == false && cookie.getSecure()) { return false; } return true; }
public LiveCasData(File dataDirSourceDirectory ) throws IOException { super(dataDirSourceDirectory); this.fixture = lookupFixture(fixtureId); }
@Override protected SystemTestData createTestData() throws Exception { return new LiveCasData(AbstractSecurityServiceTest.unpackTestDataDir()); }
@Override public SecurityConfigValidator createConfigurationValidator( GeoServerSecurityManager securityManager) { return new CasFilterConfigValidator(securityManager); }
/** * extract Cas cookies from all received cookies * * @param cookies * @param conn */ public void extractCASCookies(List<HttpCookie> cookies, HttpURLConnection conn) { warningCookie = getCookieNamed(cookies, "CASPRIVACY"); ticketGrantingCookie = getCookieNamed(cookies, "CASTGC"); } }
@Override public GeoServerSecurityFilter createFilter(SecurityNamedServiceConfig config) { return new GeoServerCasAuthenticationFilter(pgtStorage); }
/** * creates the proxy callback url using the call back url prefix and {@link * #CAS_PROXY_RECEPTOR_PATTERN} * * <p>if the ulrPrefix is null, the return value is null * * @param urlPrefix */ public static String createProxyCallBackURl(String urlPrefix) { return createCasURl(urlPrefix, CAS_PROXY_RECEPTOR_PATTERN); }
protected CasFilterConfigException createFilterException (String errorid, Object ...args) { return new CasFilterConfigException(errorid,args); }
protected boolean checkCookieForSend(HttpCookie cookie) { if (cookie==null) return false; if (cookie.hasExpired()) return false; if (isSecure()==false && cookie.getSecure()) { return false; } return true; }