You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/03/24 20:19:39 UTC
svn commit: r757966 - in /cxf/branches/2.1.x-fixes: ./
rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java
rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
Author: dkulp
Date: Tue Mar 24 19:19:37 2009
New Revision: 757966
URL: http://svn.apache.org/viewvc?rev=757966&view=rev
Log:
Merged revisions 755365 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r755365 | dkulp | 2009-03-17 15:42:30 -0400 (Tue, 17 Mar 2009) | 2 lines
Updates to make sure streams close. Cache some properties.
........
Modified:
cxf/branches/2.1.x-fixes/ (props changed)
cxf/branches/2.1.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java
cxf/branches/2.1.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 24 19:19:37 2009
@@ -1 +1 @@
-/cxf/trunk:753380,753397,753421,754585
+/cxf/trunk:753380,753397,753421,754585,755365
Propchange: cxf/branches/2.1.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified: cxf/branches/2.1.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java?rev=757966&r1=757965&r2=757966&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java (original)
+++ cxf/branches/2.1.x-fixes/rt/ws/policy/src/main/java/org/apache/cxf/ws/policy/PolicyBuilderImpl.java Tue Mar 24 19:19:37 2009
@@ -100,10 +100,11 @@
if (!Constants.ELEM_POLICY_REF.equals(element.getLocalName())) {
throw new PolicyException(new Message("NOT_A_POLICYREF_ELEMENT_EXC", BUNDLE));
}
-
- PolicyReference reference = new PolicyReference();
- reference.setURI(element.getAttribute("URI"));
- return reference;
+ synchronized (element) {
+ PolicyReference reference = new PolicyReference();
+ reference.setURI(element.getAttribute("URI"));
+ return reference;
+ }
}
/**
@@ -141,67 +142,68 @@
}
private PolicyOperator processOperationElement(Element operationElement, PolicyOperator operator) {
-
- if (Constants.TYPE_POLICY == operator.getType()) {
- Policy policyOperator = (Policy)operator;
-
- QName key;
-
- NamedNodeMap nnm = operationElement.getAttributes();
- for (int i = 0; i < nnm.getLength(); i++) {
- Node n = nnm.item(i);
- if (Node.ATTRIBUTE_NODE == n.getNodeType()) {
- String namespace = n.getNamespaceURI();
- if (namespace == null) {
- key = new QName(n.getLocalName());
-
- } else if (n.getPrefix() == null) {
- key = new QName(namespace, n.getLocalName());
-
- } else {
- key = new QName(namespace, n.getLocalName(), n.getPrefix());
+ synchronized (operationElement) {
+ if (Constants.TYPE_POLICY == operator.getType()) {
+ Policy policyOperator = (Policy)operator;
+
+ QName key;
+
+ NamedNodeMap nnm = operationElement.getAttributes();
+ for (int i = 0; i < nnm.getLength(); i++) {
+ Node n = nnm.item(i);
+ if (Node.ATTRIBUTE_NODE == n.getNodeType()) {
+ String namespace = n.getNamespaceURI();
+ if (namespace == null) {
+ key = new QName(n.getLocalName());
+
+ } else if (n.getPrefix() == null) {
+ key = new QName(namespace, n.getLocalName());
+
+ } else {
+ key = new QName(namespace, n.getLocalName(), n.getPrefix());
+ }
+ policyOperator.addAttribute(key, n.getNodeValue());
}
- policyOperator.addAttribute(key, n.getNodeValue());
- }
- }
- }
-
- String policyNsURI =
- bus == null ? PolicyConstants.NAMESPACE_WS_POLICY
- : bus.getExtension(PolicyConstants.class).getNamespace();
-
- Element childElement;
- for (Node n = operationElement.getFirstChild(); n != null; n = n.getNextSibling()) {
- if (Node.ELEMENT_NODE != n.getNodeType()) {
- continue;
+ }
}
- childElement = (Element)n;
- String namespaceURI = childElement.getNamespaceURI();
- String localName = childElement.getLocalName();
-
- if (policyNsURI.equals(namespaceURI)) {
-
- if (Constants.ELEM_POLICY.equals(localName)) {
- operator.addPolicyComponent(getPolicyOperator(childElement));
-
- } else if (Constants.ELEM_EXACTLYONE.equals(localName)) {
- operator.addPolicyComponent(getExactlyOneOperator(childElement));
-
- } else if (Constants.ELEM_ALL.equals(localName)) {
- operator.addPolicyComponent(getAllOperator(childElement));
-
- } else if (Constants.ELEM_POLICY_REF.equals(localName)) {
- operator.addPolicyComponent(getPolicyReference(childElement));
+
+ String policyNsURI =
+ bus == null ? PolicyConstants.NAMESPACE_WS_POLICY
+ : bus.getExtension(PolicyConstants.class).getNamespace();
+
+ Element childElement;
+ for (Node n = operationElement.getFirstChild(); n != null; n = n.getNextSibling()) {
+ if (Node.ELEMENT_NODE != n.getNodeType()) {
+ continue;
}
-
- } else if (null != assertionBuilderRegistry) {
- PolicyAssertion a = assertionBuilderRegistry.build(childElement);
- if (null != a) {
- operator.addPolicyComponent(a);
+ childElement = (Element)n;
+ String namespaceURI = childElement.getNamespaceURI();
+ String localName = childElement.getLocalName();
+
+ if (policyNsURI.equals(namespaceURI)) {
+
+ if (Constants.ELEM_POLICY.equals(localName)) {
+ operator.addPolicyComponent(getPolicyOperator(childElement));
+
+ } else if (Constants.ELEM_EXACTLYONE.equals(localName)) {
+ operator.addPolicyComponent(getExactlyOneOperator(childElement));
+
+ } else if (Constants.ELEM_ALL.equals(localName)) {
+ operator.addPolicyComponent(getAllOperator(childElement));
+
+ } else if (Constants.ELEM_POLICY_REF.equals(localName)) {
+ operator.addPolicyComponent(getPolicyReference(childElement));
+ }
+
+ } else if (null != assertionBuilderRegistry) {
+ PolicyAssertion a = assertionBuilderRegistry.build(childElement);
+ if (null != a) {
+ operator.addPolicyComponent(a);
+ }
}
}
+ return operator;
}
- return operator;
}
}
Modified: cxf/branches/2.1.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.1.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java?rev=757966&r1=757965&r2=757966&view=diff
==============================================================================
--- cxf/branches/2.1.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java (original)
+++ cxf/branches/2.1.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java Tue Mar 24 19:19:37 2009
@@ -21,10 +21,10 @@
import java.net.URI;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import javax.xml.namespace.QName;
@@ -56,7 +56,7 @@
private Set<String> after = new HashSet<String>();
private String phase;
private String id;
- private Map<String, Crypto> cryptoTable = new Hashtable<String, Crypto>();
+ private Map<String, Crypto> cryptoTable = new ConcurrentHashMap<String, Crypto>();
public AbstractWSS4JInterceptor() {
super();
@@ -154,13 +154,13 @@
*/
String sigPropFile = getString(WSHandlerConstants.SIG_PROP_FILE,
reqData.getMsgContext());
+ String refId = null;
if (sigPropFile != null) {
- if (cryptoTable.get(sigPropFile) == null) {
+ crypto = cryptoTable.get(sigPropFile);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance(sigPropFile, this
.getClassLoader(reqData.getMsgContext()));
cryptoTable.put(sigPropFile, crypto);
- } else {
- crypto = cryptoTable.get(sigPropFile);
}
} else if (getString(WSHandlerConstants.SIG_PROP_REF_ID, reqData
.getMsgContext()) != null) {
@@ -168,19 +168,16 @@
* If the property file is missing then
* look for the Properties object
*/
- String refId = getString(WSHandlerConstants.SIG_PROP_REF_ID,
+ refId = getString(WSHandlerConstants.SIG_PROP_REF_ID,
reqData.getMsgContext());
if (refId != null) {
Object propObj = getProperty(reqData.getMsgContext(), refId);
if (propObj instanceof Properties) {
- if (cryptoTable.get(refId) == null) {
+ crypto = cryptoTable.get(refId);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance((Properties)propObj);
cryptoTable.put(refId, crypto);
- } else {
- crypto = cryptoTable.get(refId);
}
- } else {
- return crypto;
}
}
}
@@ -192,13 +189,13 @@
Crypto crypto = null;
String decPropFile = getString(WSHandlerConstants.DEC_PROP_FILE,
reqData.getMsgContext());
+ String refId = null;
if (decPropFile != null) {
- if (cryptoTable.get(decPropFile) == null) {
+ crypto = cryptoTable.get(decPropFile);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance(decPropFile, this
.getClassLoader(reqData.getMsgContext()));
cryptoTable.put(decPropFile, crypto);
- } else {
- crypto = cryptoTable.get(decPropFile);
}
} else if (getString(WSHandlerConstants.DEC_PROP_REF_ID, reqData
.getMsgContext()) != null) {
@@ -206,19 +203,16 @@
* If the property file is missing then
* look for the Properties object
*/
- String refId = getString(WSHandlerConstants.DEC_PROP_REF_ID,
+ refId = getString(WSHandlerConstants.DEC_PROP_REF_ID,
reqData.getMsgContext());
if (refId != null) {
Object propObj = getProperty(reqData.getMsgContext(), refId);
if (propObj instanceof Properties) {
- if (cryptoTable.get(refId) == null) {
+ crypto = cryptoTable.get(refId);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance((Properties)propObj);
cryptoTable.put(refId, crypto);
- } else {
- crypto = cryptoTable.get(refId);
}
- } else {
- return crypto;
}
}
}
@@ -234,13 +228,13 @@
*/
String encPropFile = getString(WSHandlerConstants.ENC_PROP_FILE,
reqData.getMsgContext());
+ String refId = null;
if (encPropFile != null) {
- if (cryptoTable.get(encPropFile) == null) {
+ crypto = cryptoTable.get(encPropFile);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance(encPropFile, this
.getClassLoader(reqData.getMsgContext()));
cryptoTable.put(encPropFile, crypto);
- } else {
- crypto = cryptoTable.get(encPropFile);
}
} else if (getString(WSHandlerConstants.ENC_PROP_REF_ID, reqData
.getMsgContext()) != null) {
@@ -248,19 +242,16 @@
* If the property file is missing then
* look for the Properties object
*/
- String refId = getString(WSHandlerConstants.ENC_PROP_REF_ID,
+ refId = getString(WSHandlerConstants.ENC_PROP_REF_ID,
reqData.getMsgContext());
if (refId != null) {
Object propObj = getProperty(reqData.getMsgContext(), refId);
if (propObj instanceof Properties) {
- if (cryptoTable.get(refId) == null) {
+ crypto = cryptoTable.get(refId);
+ if (crypto == null) {
crypto = CryptoFactory.getInstance((Properties)propObj);
cryptoTable.put(refId, crypto);
- } else {
- crypto = cryptoTable.get(encPropFile);
}
- } else {
- return crypto;
}
}
} else if (reqData.getSigCrypto() == null) {