Never mind - I managed to introduce the changes slightly differently into 3.0.x. I did however submit a small patch to wss4j in aforementioned wss-503 that calls cacheManager.removeCache(cache.getName()) which is useful for cases where using a global cache manager.
But this code has also been added to the subclass close method with a comment that it can be removed if added to wss4j On Sun, Jun 15, 2014 at 2:06 PM, Jason Pell <[email protected]> wrote: > https://issues.apache.org/jira/browse/WSS-503 > > > > On Sun, Jun 15, 2014 at 1:58 PM, Jason Pell <[email protected]> wrote: > >> Colm, >> >> My solution does not work for CXF 3.0.x as the code I changed no longer >> exists. Its been moved into wss4j. Any chance I can contribute a patch >> for wss4j that would be released before CXF 3.0.1? >> >> >> https://fisheye6.atlassian.com/changelog/cxf?cs=5c3be52b14609cae3548f5f0cb24dac391b7de86 >> >> >> >> >> >> >> On Fri, Jun 13, 2014 at 11:10 AM, Jason Pell <[email protected]> wrote: >> >>> I am going to work on allowing ehcache to use a Shared Cache manager. >>> The separate cache instances should still remain, but we should not be >>> forcing the creating of a new cache manager itself if possible. >>> >>> https://issues.apache.org/jira/browse/CXF-5802 >>> >>> >>> >>> On Tue, May 27, 2014 at 7:49 AM, Jason Pell <[email protected]> wrote: >>> >>>> Sorry typo. I mean having a single global ehcache manager to manage all >>>> cache instances. >>>> On 27/05/2014 7:41 AM, "Jason Pell" <[email protected]> wrote: >>>> >>>>> I meant more sharing a single manager instance on a cache instance. >>>>> But it's not too urgent for me now that I have cxf using my ehcache config >>>>> file. >>>>> On 27/05/2014 2:15 AM, "Colm O hEigeartaigh" <[email protected]> >>>>> wrote: >>>>> >>>>>> I've merged a fix for the long filename issue: >>>>>> >>>>>> https://issues.apache.org/jira/browse/CXF-5766 >>>>>> >>>>>> With regards to sharing a single EhCache instance, the problem is >>>>>> that we >>>>>> have different interfaces for token caching vs replay detection. For >>>>>> token >>>>>> caching, we don't persist tokens to disk, due to the fact that >>>>>> SecurityTokens contain things that don't serialize (e.g. DOM >>>>>> Elements). >>>>>> There is no reason why you couldn't use a single cache for >>>>>> UsernameToken >>>>>> nonce + Signature/Timestamp caching though (ReplayCache) if you >>>>>> wanted. >>>>>> >>>>>> Colm. >>>>>> >>>>>> >>>>>> On Mon, May 26, 2014 at 4:10 AM, Jason Pell <[email protected]> >>>>>> wrote: >>>>>> >>>>>> > I realised sharing is not going to work, unless the shutdown >>>>>> sequence for a >>>>>> > manager is also disabled where it's a single global instance. I >>>>>> remember >>>>>> > finding a problem with cxf and ehcache when it inadvertently used a >>>>>> shared >>>>>> > instance. It actually shut down the single global instance when a >>>>>> service >>>>>> > was shut down. >>>>>> > >>>>>> > Colm - any reason why we can't share a single ehcache instance >>>>>> across the >>>>>> > whole of cxf? I am willing to get into the code and have a go at >>>>>> > refactoring to support a single instance, but its not much point if >>>>>> there >>>>>> > are reasons for creating separate instances I am not aware of. >>>>>> > >>>>>> > At the moment with the upgrade to 1.7.11 I am now getting: >>>>>> > >>>>>> > net.sf.ehcache.CacheException: java.io.FileNotFoundException: >>>>>> > >>>>>> > >>>>>> ../tmp/cxf1876821037/ws-security%002enonce%002ecache%002einstance-{http%003a%002f%002fcom%002evedaadvantage%002fdp3%002f%0045nterprise%002f%0053ystem2%002f%0042usiness3%002f%0047raceful%0044eployment%0042usiness%0053ervice}%0047raceful%0044eployment%0042usiness%0053ervice.data >>>>>> > (File name too long) >>>>>> > at >>>>>> > >>>>>> > >>>>>> net.sf.ehcache.store.disk.DiskStorageFactory.<init>(DiskStorageFactory.java:142) >>>>>> > at >>>>>> net.sf.ehcache.store.disk.DiskStore.create(DiskStore.java:155) >>>>>> > at >>>>>> > >>>>>> net.sf.ehcache.store.disk.DiskStore.createCacheStore(DiskStore.java:183) >>>>>> > at net.sf.ehcache.Cache.initialise(Cache.java:1154) >>>>>> > at >>>>>> > >>>>>> net.sf.ehcache.CacheManager.initializeEhcache(CacheManager.java:1336) >>>>>> > at >>>>>> > net.sf.ehcache.CacheManager.addCacheNoCheck(CacheManager.java:1396) >>>>>> > at >>>>>> > net.sf.ehcache.CacheManager.addCacheIfAbsent(CacheManager.java:1908) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.cache.EHCacheReplayCache.<init>(EHCacheReplayCache.java:59) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.cache.EHCacheReplayCacheFactory.newReplayCache(EHCacheReplayCacheFactory.java:34) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.WSS4JUtils.getReplayCache(WSS4JUtils.java:103) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.getReplayCache(WSS4JInInterceptor.java:822) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.configureReplayCaches(WSS4JInInterceptor.java:429) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:252) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:121) >>>>>> > at >>>>>> > >>>>>> > >>>>>> org.apache.cxf.ws.security.wss4j.PolicyBasedWSS4JInInterceptor.handleMessage(PolicyBasedWSS4JInInterceptor.java:106) >>>>>> > >>>>>> > >>>>>> > >>>>>> > >>>>>> > On Mon, May 26, 2014 at 12:52 PM, Jason Pell <[email protected]> >>>>>> wrote: >>>>>> > >>>>>> > > Hi, >>>>>> > > >>>>>> > > I already create a eh cache manager for caching spring security >>>>>> ldap user >>>>>> > > details. I would like to force CXF to use the very same eh cache >>>>>> manager >>>>>> > > rather than create a new one. >>>>>> > > >>>>>> > > I have the following spring bean: >>>>>> > > >>>>>> > > org.springframework.cache.ehcache.EhCacheManagerFactoryBean >>>>>> > > >>>>>> > > <bean id="ehCacheManager" >>>>>> > > >>>>>> > > >>>>>> class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> >>>>>> > > <property name="configLocation" >>>>>> > > value="file:${spring.config.dir}/ehcache.xml" /> >>>>>> > > <property name="shared" value="true" /> >>>>>> > > </bean> >>>>>> > > >>>>>> > > So I would like to put all of the configuration for ehcache into >>>>>> the >>>>>> > > ehcache.xml I use for hibernate and spring security. >>>>>> > > >>>>>> > > Any suggestions as to how I might do this? >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Colm O hEigeartaigh >>>>>> >>>>>> Talend Community Coder >>>>>> http://coders.talend.com >>>>>> >>>>> >>> >> >
