Author: coheigea
Date: Fri Jun 10 09:30:31 2011
New Revision: 1134253

URL: http://svn.apache.org/viewvc?rev=1134253&view=rev
Log:
Added hashcode/equals for a SecurityContextToken.

Modified:
    
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/token/SecurityContextToken.java
    
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SecurityContextTokenTest.java

Modified: 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/token/SecurityContextToken.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/token/SecurityContextToken.java?rev=1134253&r1=1134252&r2=1134253&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/token/SecurityContextToken.java
 (original)
+++ 
webservices/wss4j/trunk/src/main/java/org/apache/ws/security/message/token/SecurityContextToken.java
 Fri Jun 10 09:30:31 2011
@@ -225,5 +225,36 @@ public class SecurityContextToken {
     public void setID(String id) {
         element.setAttributeNS(WSConstants.WSU_NS, WSConstants.WSU_PREFIX + 
":Id", id);
     }
+    
+    @Override
+    public int hashCode() {
+        int result = 17;
+        String identifier = getIdentifier();
+        if (identifier != null) {
+            result = 31 * result + identifier.hashCode();
+        }
+        return result;
+    }
+    
+    @Override
+    public boolean equals(Object object) {
+        if (!(object instanceof SecurityContextToken)) {
+            return false;
+        }
+        SecurityContextToken securityToken = (SecurityContextToken)object;
+        if (!compare(getIdentifier(), securityToken.getIdentifier())) {
+            return false;
+        }
+        return true;
+    }
+    
+    private boolean compare(String item1, String item2) {
+        if (item1 == null && item2 != null) { 
+            return false;
+        } else if (item1 != null && !item1.equals(item2)) {
+            return false;
+        }
+        return true;
+    }
 
 }

Modified: 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SecurityContextTokenTest.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SecurityContextTokenTest.java?rev=1134253&r1=1134252&r2=1134253&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SecurityContextTokenTest.java
 (original)
+++ 
webservices/wss4j/trunk/src/test/java/org/apache/ws/security/message/SecurityContextTokenTest.java
 Fri Jun 10 09:30:31 2011
@@ -19,15 +19,19 @@
 
 package org.apache.ws.security.message;
 
+import java.util.List;
+
 import javax.xml.crypto.dsig.SignatureMethod;
 
 import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.WSSecurityEngine;
+import org.apache.ws.security.WSSecurityEngineResult;
 import org.apache.ws.security.common.SecretKeyCallbackHandler;
 import org.apache.ws.security.common.SOAPUtil;
 import org.apache.ws.security.components.crypto.Crypto;
 import org.apache.ws.security.components.crypto.CryptoFactory;
 import org.apache.ws.security.conversation.ConversationConstants;
+import org.apache.ws.security.message.token.SecurityContextToken;
 import org.apache.ws.security.util.WSSecurityUtil;
 import org.w3c.dom.Document;
 
@@ -115,7 +119,18 @@ public class SecurityContextTokenTest ex
                 LOG.debug(out);
             }
 
-            verify(doc);
+            List<WSSecurityEngineResult> results = verify(doc);
+            
+            WSSecurityEngineResult actionResult =
+                WSSecurityUtil.fetchActionResult(results, WSConstants.SCT);
+            SecurityContextToken receivedToken = 
+                (SecurityContextToken) 
actionResult.get(WSSecurityEngineResult.TAG_SECURITY_CONTEXT_TOKEN);
+            assertTrue(receivedToken != null);
+            
+            SecurityContextToken clone = new 
SecurityContextToken(receivedToken.getElement());
+            assertTrue(clone.equals(receivedToken));
+            assertTrue(clone.hashCode() == receivedToken.hashCode());
+            
         } catch (Exception e) {
             e.printStackTrace();
             fail(e.getMessage());
@@ -340,11 +355,13 @@ public class SecurityContextTokenTest ex
      * @throws Exception
      *             Thrown when there is a problem in verification
      */
-    private void verify(Document doc) throws Exception {
-        secEngine.processSecurityHeader(doc, null, callbackHandler, crypto);
+    private List<WSSecurityEngineResult> verify(Document doc) throws Exception 
{
+        List<WSSecurityEngineResult> results = 
+            secEngine.processSecurityHeader(doc, null, callbackHandler, 
crypto);
         String outputString = 
             org.apache.ws.security.util.XMLUtils.PrettyDocumentToString(doc);
         assertTrue(outputString.indexOf("counter_port_type") > 0 ? true : 
false);
+        return results;
     }
 
 


Reply via email to