More work on CXF-5572
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/3085f0fb Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/3085f0fb Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/3085f0fb Branch: refs/heads/master Commit: 3085f0fb44f1b7655bcc83019be20890aa9337a3 Parents: 1823faf Author: Colm O hEigeartaigh <[email protected]> Authored: Thu Feb 20 17:01:52 2014 +0000 Committer: Colm O hEigeartaigh <[email protected]> Committed: Thu Feb 20 17:01:52 2014 +0000 ---------------------------------------------------------------------- .../cxf/ws/security/wss4j/WSS4JUtils.java | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/3085f0fb/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java index c4dca26..4f11167 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java @@ -19,6 +19,7 @@ package org.apache.cxf.ws.security.wss4j; import java.io.IOException; +import java.math.BigInteger; import java.net.URL; import java.security.Key; import java.util.Date; @@ -43,6 +44,7 @@ import org.apache.wss4j.common.cache.ReplayCacheFactory; import org.apache.wss4j.stax.ext.WSSConstants; import org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants; import org.apache.xml.security.exceptions.XMLSecurityException; +import org.apache.xml.security.utils.Base64; /** * Some common functionality that can be shared between the WSS4JInInterceptor and the @@ -92,12 +94,9 @@ public final class WSS4JUtils { if (replayCache == null) { String cacheKey = instanceKey; if (info.getName() != null) { - int hashcode = info.getName().toString().hashCode(); - if (hashcode < 0) { - cacheKey += info.getName().toString().hashCode(); - } else { - cacheKey += "-" + info.getName().toString().hashCode(); - } + int hashCode = info.getName().toString().hashCode(); + cacheKey += + "-" + Base64.encode(BigInteger.valueOf((long)hashCode)); } URL configFile = getConfigFileURL(message); @@ -160,12 +159,9 @@ public final class WSS4JUtils { TokenStoreFactory tokenStoreFactory = TokenStoreFactory.newInstance(); String cacheKey = SecurityConstants.TOKEN_STORE_CACHE_INSTANCE; if (info.getName() != null) { - int hashcode = info.getName().toString().hashCode(); - if (hashcode < 0) { - cacheKey += info.getName().toString().hashCode(); - } else { - cacheKey += "-" + info.getName().toString().hashCode(); - } + int hashCode = info.getName().toString().hashCode(); + cacheKey += + "-" + Base64.encode(BigInteger.valueOf((long)hashCode)); } tokenStore = tokenStoreFactory.newTokenStore(cacheKey, message); info.setProperty(SecurityConstants.TOKEN_STORE_CACHE_INSTANCE, tokenStore);
