John Blum created GEODE-9394: -------------------------------- Summary: Apache Geode does not properly cleanup it's SSL context between runs Key: GEODE-9394 URL: https://issues.apache.org/jira/browse/GEODE-9394 Project: Geode Issue Type: Bug Components: security Reporter: John Blum
Because Geode internally uses may statics to maintain state and to pass configuration between components in a non-Object Oriented fashion, I believe stale SSL configuration is being retained between Geode instance runs, leading to Exceptions thrown of the following nature: {code} Caused by: org.apache.geode.GemFireConfigException: Error configuring GemFire ssl at org.apache.geode.internal.net.SocketCreator.initialize(SocketCreator.java:249) at org.apache.geode.internal.net.SocketCreator.<init>(SocketCreator.java:180) at org.apache.geode.internal.net.SocketCreatorFactory.createSSLSocketCreator(SocketCreatorFactory.java:114) at org.apache.geode.internal.net.SocketCreatorFactory.getSSLSocketCreator(SocketCreatorFactory.java:88) at org.apache.geode.internal.net.SocketCreatorFactory.getOrCreateSocketCreatorForSSLEnabledComponent(SocketCreatorFactory.java:104) at org.apache.geode.internal.net.SocketCreatorFactory.getSocketCreatorForComponent(SocketCreatorFactory.java:74) at org.apache.geode.cache.client.internal.ConnectionFactoryImpl.<init>(ConnectionFactoryImpl.java:84) at org.apache.geode.cache.client.internal.PoolImpl.<init>(PoolImpl.java:261) at org.apache.geode.cache.client.internal.PoolImpl.create(PoolImpl.java:161) at org.apache.geode.internal.cache.PoolFactoryImpl.create(PoolFactoryImpl.java:374) at org.apache.geode.internal.cache.GemFireCacheImpl.determineDefaultPool(GemFireCacheImpl.java:2835) at org.apache.geode.internal.cache.GemFireCacheImpl.getDefaultPool(GemFireCacheImpl.java:1321) at org.apache.geode.cache.client.internal.ClientRegionFactoryImpl.getDefaultPool(ClientRegionFactoryImpl.java:101) at org.apache.geode.cache.client.internal.ClientRegionFactoryImpl.createRegionAttributes(ClientRegionFactoryImpl.java:249) at org.apache.geode.cache.client.internal.ClientRegionFactoryImpl.create(ClientRegionFactoryImpl.java:232) at org.springframework.data.gemfire.client.ClientRegionFactoryBean.newRegion(ClientRegionFactoryBean.java:193) at org.springframework.data.gemfire.client.ClientRegionFactoryBean.createRegion(ClientRegionFactoryBean.java:164) at org.springframework.data.gemfire.ResolvableRegionFactoryBean.afterPropertiesSet(ResolvableRegionFactoryBean.java:96) at org.springframework.data.gemfire.config.annotation.support.CacheTypeAwareRegionFactoryBean.newClientRegion(CacheTypeAwareRegionFactoryBean.java:181) at org.springframework.data.gemfire.config.annotation.support.CacheTypeAwareRegionFactoryBean.createRegion(CacheTypeAwareRegionFactoryBean.java:141) at org.springframework.data.gemfire.ResolvableRegionFactoryBean.afterPropertiesSet(ResolvableRegionFactoryBean.java:96) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1858) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1795) ... 69 more Caused by: java.security.UnrecoverableKeyException: Password must not be null at sun.security.provider.JavaKeyStore.engineGetKey(JavaKeyStore.java:134) at sun.security.provider.JavaKeyStore$JKS.engineGetKey(JavaKeyStore.java:57) at sun.security.provider.KeyStoreDelegator.engineGetKey(KeyStoreDelegator.java:96) at sun.security.provider.JavaKeyStore$DualFormatJKS.engineGetKey(JavaKeyStore.java:71) at java.security.KeyStore.getKey(KeyStore.java:1023) at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:145) at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:70) at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:256) at org.apache.geode.internal.net.SocketCreator.getKeyManagers(SocketCreator.java:422) at org.apache.geode.internal.net.SocketCreator.createAndConfigureSSLContext(SocketCreator.java:292) at org.apache.geode.internal.net.SocketCreator.initialize(SocketCreator.java:246) ... 91 more {code} In the StackTrace above, SSL was not even configured between the Geode client and server even though Geode thinks it was. -- This message was sent by Atlassian Jira (v8.3.4#803005)