protected GeoServerPlainTextPasswordEncoder createPlainTextPasswordEncoder( GeoServerSecurityManager secMgr) throws IOException { GeoServerPlainTextPasswordEncoder plainPwe = new GeoServerPlainTextPasswordEncoder(); plainPwe.setBeanName("plainTextPasswordEncoder"); plainPwe.setPrefix("plain"); plainPwe.initialize(secMgr); return plainPwe; }
@Override public char[] decodeToCharArray(String encPass) throws UnsupportedOperationException { return decode(encPass).toCharArray(); }
@Override public String encode(CharSequence rawPassword) { return doEncodePassword(rawPassword.toString()); } }
@Test public void testActive() throws Exception { GeoServerSecurityManager secMgr = getSecurityManager(); UsernamePasswordAuthenticationProviderConfig config = new UsernamePasswordAuthenticationProviderConfig(); config.setName("custom"); config.setClassName(AuthProvider.class.getName()); secMgr.saveAuthenticationProvider(config); SecurityManagerConfig mgrConfig = secMgr.getSecurityConfig(); mgrConfig.getAuthProviderNames().add("custom"); mgrConfig.setConfigPasswordEncrypterName(getPlainTextPasswordEncoder().getName()); secMgr.saveSecurityConfig(mgrConfig); Authentication auth = new UsernamePasswordAuthenticationToken("foo", "bar"); auth = getSecurityManager().authenticationManager().authenticate(auth); assertTrue(auth.isAuthenticated()); }
getUserGroupConfg(serviceName, getPlainTextPasswordEncoder().getName()); config.setConfigPasswordEncrypterName(getPlainTextPasswordEncoder().getName()); String plainprefix = getPlainTextPasswordEncoder().getPrefix() + GeoServerPasswordEncoder.PREFIX_DELIMTER; getSecurityManager().saveSecurityConfig(config);
public String decode(String encPass) throws UnsupportedOperationException { return removePrefix(encPass); }
getUserGroupConfg(serviceName, getPlainTextPasswordEncoder().getName());
config.setPasswordEncoderName(getPlainTextPasswordEncoder().getName()); getSecurityManager().saveUserGroupService(config); service.initializeFromConfig(config); service.loadUserByUsername("u1") .getPassword() .startsWith(getPlainTextPasswordEncoder().getPrefix())); assertTrue( service.loadUserByUsername("u2") .getPassword() .startsWith(getPlainTextPasswordEncoder().getPrefix()));
@Override protected XMLUserGroupServiceConfig createConfigObject(String name) { XMLUserGroupServiceConfig config = new XMLUserGroupServiceConfig(); config.setName(name); config.setPasswordEncoderName(getPBEPasswordEncoder().getName()); config.setPasswordPolicyName(PasswordValidator.DEFAULT_NAME); config.setClassName(XMLUserGroupService.class.getName()); config.setCheckInterval(1000); config.setFileName("users.xml"); config.setValidating(true); config.setPasswordEncoderName(getPlainTextPasswordEncoder().getName()); config.setPasswordPolicyName(PasswordValidator.DEFAULT_NAME); return config; }
XMLUserGroupService.DEFAULT_NAME, XMLUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME, XMLConstants.FILE_UR); "test1", XMLUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME, "test1.xml"); "test5", XMLUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME, "abc.xml"); "test4", XMLUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME, invalidPath); expect(secMgr.loadPasswordEncoder(getPlainTextPasswordEncoder().getName())) .andReturn(getPlainTextPasswordEncoder()) .anyTimes(); "test2",
void setupFilterEntry(Pos pos, String relativeTo, boolean assertSecurityContext) throws Exception { GeoServerSecurityManager secMgr = getSecurityManager(); FilterConfig config = new FilterConfig(); config.setName("custom"); config.setClassName(Filter.class.getName()); config.setAssertAuth(assertSecurityContext); secMgr.saveFilter(config); SecurityManagerConfig mgrConfig = secMgr.getSecurityConfig(); mgrConfig.setConfigPasswordEncrypterName(getPlainTextPasswordEncoder().getName()); mgrConfig.getFilterChain().remove("custom"); if (pos == Pos.FIRST) mgrConfig.getFilterChain().insertFirst("/**", "custom"); if (pos == Pos.LAST) mgrConfig.getFilterChain().insertLast("/**", "custom"); if (pos == Pos.BEFORE) mgrConfig.getFilterChain().insertBefore("/**", "custom", relativeTo); if (pos == Pos.AFTER) mgrConfig.getFilterChain().insertAfter("/**", "custom", relativeTo); secMgr.saveSecurityConfig(mgrConfig); }
@Test public void testCopyFrom() throws Exception { // from crypt tp crytp GeoServerUserGroupService service1 = createUserGroupService("copyFrom"); GeoServerUserGroupService service2 = createUserGroupService("copyTo"); copyFrom(service1, service2); // from plain to plain service1 = createUserGroupService("copyFrom1", getPlainTextPasswordEncoder().getName()); service2 = createUserGroupService("copyTo1", getPlainTextPasswordEncoder().getName()); copyFrom(service1, service2); // cypt to digest service1 = createUserGroupService("copyFrom2"); service2 = createUserGroupService("copyTo2", getDigestPasswordEncoder().getName()); copyFrom(service1, service2); // digest to digest service1 = createUserGroupService("copyFrom3", getDigestPasswordEncoder().getName()); service2 = createUserGroupService("copyTo3", getDigestPasswordEncoder().getName()); copyFrom(service1, service2); // digest to crypt service1 = createUserGroupService("copyFrom4", getDigestPasswordEncoder().getName()); service2 = createUserGroupService("copyTo4"); copyFrom(service1, service2); }
"jdbc", JDBCUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME); "jdbc", JDBCUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME); configJNDI.setJndi(true); expect(secMgr.loadPasswordEncoder(pwEncoder.getName())).andReturn(pwEncoder).anyTimes(); expect(secMgr.listPasswordValidators()) .andReturn(new TreeSet<String>(Arrays.asList(PasswordValidator.DEFAULT_NAME)))
XMLUserGroupService.DEFAULT_NAME, GeoServerUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME)); fail("user group service already exists should fail"); "default2", GeoServerUserGroupService.class, getPlainTextPasswordEncoder().getName(), PasswordValidator.DEFAULT_NAME); try {