/* (c) 2014 Open Source Geospatial Foundation - all rights reserved * (c) 2001 - 2013 OpenPlans * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.security; import static org.junit.Assert.*; import org.geoserver.security.password.RandomPasswordProvider; import org.geoserver.test.GeoServerSystemTestSupport; import org.junit.Test; public class KeyStoreProviderTest extends GeoServerSystemTestSupport { @Test public void testKeyStoreProvider() throws Exception { //System.setProperty(MasterPasswordProvider.DEFAULT_PROPERTY_NAME, "mymasterpw"); KeyStoreProvider ksp = getSecurityManager().getKeyStoreProvider(); ksp.removeKey(KeyStoreProviderImpl.CONFIGPASSWORDKEY); ksp.removeKey(ksp.aliasForGroupService("default")); ksp.storeKeyStore(); ksp.reloadKeyStore(); assertFalse(ksp.hasConfigPasswordKey()); assertFalse(ksp.hasUserGroupKey("default")); ksp.setSecretKey( KeyStoreProviderImpl.CONFIGPASSWORDKEY, "configKey".toCharArray()); ksp.storeKeyStore(); assertTrue(ksp.hasConfigPasswordKey()); assertEquals("configKey",new String(ksp.getConfigPasswordKey())); assertFalse(ksp.hasUserGroupKey("default")); RandomPasswordProvider rpp = getSecurityManager().getRandomPassworddProvider(); char[] urlKey = rpp.getRandomPasswordWithDefaultLength(); //System.out.printf("Random password with length %d : %s\n",urlKey.length,new String(urlKey)); char[] urlKey2 = rpp.getRandomPasswordWithDefaultLength(); //System.out.printf("Random password with length %d : %s\n",urlKey2.length,new String(urlKey2)); assertFalse(urlKey.equals(urlKey2)); ksp.setSecretKey( KeyStoreProviderImpl.USERGROUP_PREFIX+"default"+ KeyStoreProviderImpl.USERGROUP_POSTFIX, "defaultKey".toCharArray()); ksp.storeKeyStore(); assertTrue(ksp.hasConfigPasswordKey()); assertEquals("configKey",new String(ksp.getConfigPasswordKey())); assertTrue(ksp.hasUserGroupKey("default")); assertEquals("defaultKey",new String(ksp.getUserGroupKey("default"))); assertTrue(ksp.isKeyStorePassword( getSecurityManager().getMasterPassword())); assertFalse(ksp.isKeyStorePassword( "blabla".toCharArray())); } }