You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2015/02/26 15:46:20 UTC
svn commit: r1662464 - in
/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom:
WSDocInfo.java WSSecurityEngine.java
Author: coheigea
Date: Thu Feb 26 14:46:19 2015
New Revision: 1662464
URL: http://svn.apache.org/r1662464
Log:
Minor WSDocInfo refactor
Modified:
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java
webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java
Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java?rev=1662464&r1=1662463&r2=1662464&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSDocInfo.java Thu Feb 26 14:46:19 2015
@@ -31,6 +31,7 @@ package org.apache.wss4j.dom;
*/
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import javax.xml.crypto.dom.DOMCryptoContext;
@@ -45,8 +46,8 @@ import org.w3c.dom.Element;
public class WSDocInfo {
private Document doc;
private Crypto crypto;
- private List<Element> tokenList;
- private List<WSSecurityEngineResult> resultsList;
+ private final List<Element> tokenList = new ArrayList<>();
+ private final List<WSSecurityEngineResult> resultsList = new ArrayList<>();
private CallbackLookup callbackLookup;
private Element securityHeader;
@@ -68,15 +69,11 @@ public class WSDocInfo {
*/
public void clear() {
crypto = null;
- if (tokenList != null && tokenList.size() > 0) {
- tokenList.clear();
- }
- if (resultsList != null && resultsList.size() > 0) {
- resultsList.clear();
- }
-
- tokenList = null;
- resultsList = null;
+ doc = null;
+ callbackLookup = null;
+ securityHeader = null;
+ tokenList.clear();
+ resultsList.clear();
}
/**
@@ -95,20 +92,18 @@ public class WSDocInfo {
* @param checkMultipleElements check for a previously stored element with the same Id.
*/
public void addTokenElement(Element element, boolean checkMultipleElements) throws WSSecurityException {
- if (tokenList == null) {
- tokenList = new ArrayList<>();
- }
-
- if (checkMultipleElements) {
- for (Element elem : tokenList) {
- if (compareElementsById(element, elem)) {
- throw new WSSecurityException(
- WSSecurityException.ErrorCode.INVALID_SECURITY_TOKEN, "duplicateError"
- );
+ if (element != null) {
+ if (checkMultipleElements) {
+ for (Element elem : tokenList) {
+ if (compareElementsById(element, elem)) {
+ throw new WSSecurityException(
+ WSSecurityException.ErrorCode.INVALID_SECURITY_TOKEN, "duplicateError"
+ );
+ }
}
}
+ tokenList.add(element);
}
- tokenList.add(element);
}
private boolean compareElementsById(Element firstElement, Element secondElement) {
@@ -151,7 +146,7 @@ public class WSDocInfo {
} else if (id.charAt(0) == '#') {
id = id.substring(1);
}
- if (tokenList != null) {
+ if (!tokenList.isEmpty()) {
for (Element elem : tokenList) {
String cId = elem.getAttributeNS(WSConstants.WSU_NS, "Id");
String samlId = elem.getAttributeNS(null, "AssertionID");
@@ -183,10 +178,9 @@ public class WSDocInfo {
* @param result is the WSSecurityEngineResult to store
*/
public void addResult(WSSecurityEngineResult result) {
- if (resultsList == null) {
- resultsList = new ArrayList<>();
+ if (result != null) {
+ resultsList.add(result);
}
- resultsList.add(result);
}
/**
@@ -201,13 +195,11 @@ public class WSDocInfo {
} else if (id.charAt(0) == '#') {
id = id.substring(1);
}
- if (resultsList != null) {
+ if (!resultsList.isEmpty()) {
for (WSSecurityEngineResult result : resultsList) {
- if (result != null) {
- String cId = (String)result.get(WSSecurityEngineResult.TAG_ID);
- if (id.equals(cId)) {
- return result;
- }
+ String cId = (String)result.get(WSSecurityEngineResult.TAG_ID);
+ if (id.equals(cId)) {
+ return result;
}
}
}
@@ -218,15 +210,15 @@ public class WSDocInfo {
* Get a list of WSSecurityEngineResults of the given Integer tag
*/
public List<WSSecurityEngineResult> getResultsByTag(Integer tag) {
+ if (resultsList.isEmpty()) {
+ return Collections.emptyList();
+ }
+
List<WSSecurityEngineResult> foundResults = new ArrayList<>();
- if (resultsList != null) {
- for (WSSecurityEngineResult result : resultsList) {
- if (result != null) {
- Integer resultTag = (Integer)result.get(WSSecurityEngineResult.TAG_ACTION);
- if (tag.intValue() == resultTag.intValue()) {
- foundResults.add(result);
- }
- }
+ for (WSSecurityEngineResult result : resultsList) {
+ Integer resultTag = (Integer)result.get(WSSecurityEngineResult.TAG_ACTION);
+ if (tag.intValue() == resultTag.intValue()) {
+ foundResults.add(result);
}
}
return foundResults;
@@ -242,15 +234,12 @@ public class WSDocInfo {
} else if (id.charAt(0) == '#') {
id = id.substring(1);
}
- if (resultsList != null) {
- for (WSSecurityEngineResult result : resultsList) {
- if (result != null) {
- Integer resultTag = (Integer)result.get(WSSecurityEngineResult.TAG_ACTION);
- String cId = (String)result.get(WSSecurityEngineResult.TAG_ID);
- if (tag.intValue() == resultTag.intValue() && id.equals(cId)) {
- return result;
- }
- }
+
+ for (WSSecurityEngineResult result : resultsList) {
+ Integer resultTag = (Integer)result.get(WSSecurityEngineResult.TAG_ACTION);
+ String cId = (String)result.get(WSSecurityEngineResult.TAG_ID);
+ if (tag.intValue() == resultTag.intValue() && id.equals(cId)) {
+ return result;
}
}
return null;
Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java?rev=1662464&r1=1662463&r2=1662464&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java Thu Feb 26 14:46:19 2015
@@ -19,8 +19,8 @@
package org.apache.wss4j.dom;
-import java.util.ArrayList;
import java.util.Collections;
+import java.util.LinkedList;
import java.util.List;
import javax.security.auth.callback.CallbackHandler;
@@ -410,7 +410,7 @@ public class WSSecurityEngine {
final WSSConfig cfg = getWssConfig();
Node node = securityHeader.getFirstChild();
- List<WSSecurityEngineResult> returnResults = new ArrayList<>();
+ List<WSSecurityEngineResult> returnResults = new LinkedList<>();
boolean foundTimestamp = false;
while (node != null) {
Node nextSibling = node.getNextSibling();
@@ -463,6 +463,8 @@ public class WSSecurityEngine {
DOMSAMLUtil.validateSAMLResults(returnResults, requestData.getTlsCerts(), bodyElement);
}
+ wsDocInfo.clear();
+
return returnResults;
}
}