Author: dvaleri
Date: Thu Apr 1 15:28:38 2010
New Revision: 930003
URL: http://svn.apache.org/viewvc?rev=930003&view=rev
Log:
Merged revisions 929993 via svnmerge from
https://svn.apache.org/repos/asf/cxf/trunk
........
r929993 | dvaleri | 2010-04-01 10:52:54 -0400 (Thu, 01 Apr 2010) | 1 line
[CXF-2639] Expose Cryptographic coverage checking code from
PolicyBasedWSS4JInInterceptor in a non-WS-Policy based interceptor
........
Added:
cxf/branches/2.2.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageChecker.java
- copied unchanged from r929993,
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageChecker.java
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
- copied, changed from r929993,
cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
Modified:
cxf/branches/2.2.x-fixes/ (props changed)
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWss4JInOutTest.java
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
svn:mergeinfo = /cxf/trunk:929993
Propchange: cxf/branches/2.2.x-fixes/
------------------------------------------------------------------------------
Binary property 'svnmerge-integrated' - no diff available.
Modified:
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java?rev=930003&r1=930002&r2=930003&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java
Thu Apr 1 15:28:38 2010
@@ -21,20 +21,30 @@ package org.apache.cxf.ws.security.wss4j
import java.io.IOException;
import java.io.InputStream;
+import javax.crypto.Cipher;
+import javax.crypto.SecretKey;
+import javax.crypto.spec.SecretKeySpec;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
+import javax.xml.soap.SOAPPart;
+import javax.xml.transform.dom.DOMSource;
import org.w3c.dom.Document;
import org.xml.sax.SAXException;
import org.apache.cxf.binding.soap.Soap11;
+import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.helpers.DOMUtils;
+import org.apache.cxf.message.Exchange;
+import org.apache.cxf.message.ExchangeImpl;
+import org.apache.cxf.message.MessageImpl;
import org.apache.cxf.test.AbstractCXFTest;
import org.apache.ws.security.WSConstants;
+
public abstract class AbstractSecurityTest extends AbstractCXFTest {
public AbstractSecurityTest() {
super();
@@ -47,16 +57,59 @@ public abstract class AbstractSecurityTe
addNamespace("wsu", WSConstants.WSU_NS);
}
+ /**
+ * Reads a classpath resource into a Document.
+ * @param name the name of the classpath resource
+ */
protected Document readDocument(String name) throws SAXException,
IOException,
ParserConfigurationException {
InputStream inStream = getClass().getResourceAsStream(name);
return DOMUtils.readXml(inStream);
}
-
+ /**
+ * Reads a classpath resource into a SAAJ structure.
+ * @param name the name of the classpath resource
+ */
protected SOAPMessage readSAAJDocument(String name) throws SAXException,
IOException,
ParserConfigurationException, SOAPException {
InputStream inStream = getClass().getResourceAsStream(name);
return MessageFactory.newInstance().createMessage(null, inStream);
}
+
+ /**
+ * Creates a {...@link SoapMessage} from the contents of a document.
+ * @param doc the document containing the SOAP content.
+ */
+ protected SoapMessage getSoapMessageForDom(Document doc) throws
SOAPException {
+ SOAPMessage saajMsg = MessageFactory.newInstance().createMessage();
+ SOAPPart part = saajMsg.getSOAPPart();
+ part.setContent(new DOMSource(doc));
+ saajMsg.saveChanges();
+
+ SoapMessage msg = new SoapMessage(new MessageImpl());
+ Exchange ex = new ExchangeImpl();
+ ex.setInMessage(msg);
+ msg.setContent(SOAPMessage.class, saajMsg);
+ return msg;
+ }
+
+ protected static boolean checkUnrestrictedPoliciesInstalled() {
+ try {
+ byte[] data = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
+
+ SecretKey key192 = new SecretKeySpec(
+ new byte[] {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17},
+ "AES");
+ Cipher c = Cipher.getInstance("AES");
+ c.init(Cipher.ENCRYPT_MODE, key192);
+ c.doFinal(data);
+ return true;
+ } catch (Exception e) {
+ //ignore
+ }
+ return false;
+ }
}
Copied:
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
(from r929993,
cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java)
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java?p2=cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java&p1=cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java&r1=929993&r2=930003&rev=930003&view=diff
==============================================================================
---
cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/CryptoCoverageCheckerTest.java
Thu Apr 1 15:28:38 2010
@@ -33,7 +33,6 @@ import org.apache.cxf.binding.soap.inter
import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.interceptor.Interceptor;
-import org.apache.cxf.message.Message;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseInterceptor;
import org.apache.cxf.phase.PhaseInterceptorChain;
@@ -53,8 +52,8 @@ public class CryptoCoverageCheckerTest e
SortedSet<Phase> phases = new TreeSet<Phase>();
phases.add(new Phase(Phase.PRE_PROTOCOL, 1));
- List<Interceptor<? extends Message>> lst =
- new ArrayList<Interceptor<? extends Message>>();
+ List<Interceptor> lst =
+ new ArrayList<Interceptor>();
lst.add(new MustUnderstandInterceptor());
lst.add(new WSS4JInInterceptor());
lst.add(new SAAJInInterceptor());
Modified:
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWss4JInOutTest.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWss4JInOutTest.java?rev=930003&r1=930002&r2=930003&view=diff
==============================================================================
---
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWss4JInOutTest.java
(original)
+++
cxf/branches/2.2.x-fixes/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWss4JInOutTest.java
Thu Apr 1 15:28:38 2010
@@ -16,7 +16,6 @@
* specific language governing permissions and limitations
* under the License.
*/
-
package org.apache.cxf.ws.security.wss4j;
@@ -27,15 +26,9 @@ import java.util.Map;
import java.util.Vector;
import java.util.concurrent.Executor;
-import javax.crypto.Cipher;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
import javax.xml.namespace.QName;
-import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
-import javax.xml.soap.SOAPPart;
-import javax.xml.transform.dom.DOMSource;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -46,10 +39,7 @@ import org.apache.cxf.binding.soap.SoapM
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.feature.AbstractFeature;
import org.apache.cxf.interceptor.AbstractAttributedInterceptorProvider;
-import org.apache.cxf.message.Exchange;
-import org.apache.cxf.message.ExchangeImpl;
import org.apache.cxf.message.Message;
-import org.apache.cxf.message.MessageImpl;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.model.BindingInfo;
import org.apache.cxf.service.model.EndpointInfo;
@@ -74,26 +64,7 @@ import org.junit.Test;
public class PolicyBasedWss4JInOutTest extends AbstractSecurityTest {
private PolicyBuilder policyBuilder;
-
- public static boolean checkUnrestrictedPoliciesInstalled() {
- try {
- byte[] data = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
- SecretKey key192 = new SecretKeySpec(
- new byte[] {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17},
- "AES");
- Cipher c = Cipher.getInstance("AES");
- c.init(Cipher.ENCRYPT_MODE, key192);
- c.doFinal(data);
- return true;
- } catch (Exception e) {
- //ignore
- }
- return false;
- }
-
@Test
public void testSignedElementsPolicyWithIncompleteCoverage() throws
Exception {
this.runInInterceptorAndValidate(
@@ -828,15 +799,8 @@ public class PolicyBasedWss4JInOutTest e
private SoapMessage getSoapMessageForDom(Document doc, AssertionInfoMap
aim)
throws SOAPException {
- SOAPMessage saajMsg = MessageFactory.newInstance().createMessage();
- SOAPPart part = saajMsg.getSOAPPart();
- part.setContent(new DOMSource(doc));
- saajMsg.saveChanges();
-
- SoapMessage msg = new SoapMessage(new MessageImpl());
- Exchange ex = new ExchangeImpl();
- ex.setInMessage(msg);
- msg.setContent(SOAPMessage.class, saajMsg);
+
+ SoapMessage msg = this.getSoapMessageForDom(doc);
if (aim != null) {
msg.put(AssertionInfoMap.class, aim);
}