@Override public GeoServerSecurityFilter createFilter(SecurityNamedServiceConfig config) { return new GeoServerBasicAuthenticationFilter(); } }
buff.append(getName()); String digestString = null; try {
private GeoServerBasicAuthenticationFilter createAuthenticationFilter() { GeoServerBasicAuthenticationFilter authenticationFilter = new GeoServerBasicAuthenticationFilter(); GeoServerSecurityManager sm = null; try { sm = new GeoServerSecurityManager(new GeoServerDataDirectory(new File("target"))); authenticationFilter.setSecurityManager(sm); BasicAuthenticationFilterConfig config = new BasicAuthenticationFilterConfig(); authenticationFilter.initializeFromConfig(config); } catch (Exception e) { throw new RuntimeException("Failed to initialize authentication authenticationFilter."); } return authenticationFilter; }
@Override public void initializeFromConfig(SecurityNamedServiceConfig config) throws IOException { super.initializeFromConfig(config); try { digest = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException e) { throw new IllegalStateException("No MD5 algorithm available!"); } aep = new BasicAuthenticationEntryPoint(); aep.setRealmName(GeoServerSecurityManager.REALM); try { aep.afterPropertiesSet(); } catch (Exception e) { throw new IOException(e); } BasicAuthenticationFilterConfig authConfig = (BasicAuthenticationFilterConfig) config; BasicAuthenticationFilter filter = new BasicAuthenticationFilter(getSecurityManager().authenticationManager(), aep); if (authConfig.isUseRememberMe()) { filter.setRememberMeServices(securityManager.getRememberMeService()); GeoServerWebAuthenticationDetailsSource s = new GeoServerWebAuthenticationDetailsSource(); filter.setAuthenticationDetailsSource(s); } filter.afterPropertiesSet(); getNestedFilters().add(filter); }
expect(basicFilter.applicableForServices()).andReturn(true).anyTimes(); expect(secMgr.loadFilter(GeoServerSecurityFilterChain.BASIC_AUTH_FILTER)) .andReturn(basicFilter)
@Override public Boolean call() throws Exception { MockHttpServletRequest request = createRequest(); String result = authenticationFilter.getCacheKey(request); Assert.assertEquals(expected, result); return true; } }
@Before public void setUp() throws Exception { authenticationFilter = createAuthenticationFilter(); StringBuffer buff = new StringBuffer(PASSWORD); buff.append(":"); buff.append(authenticationFilter.getName()); MessageDigest digest = MessageDigest.getInstance("MD5"); String digestString = new String(Hex.encode(digest.digest(buff.toString().getBytes("utf-8")))); expected = USERNAME + digestString; }