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;
}