You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by da...@apache.org on 2007/03/19 06:17:46 UTC

svn commit: r519845 [1/3] - in /incubator/cxf/trunk: api/src/main/java/org/apache/cxf/ws/ buildtools/src/main/resources/ rt/ rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/ rt/frontend/simple/src/main/java/org/apache/cxf/fronten...

Author: dandiep
Date: Sun Mar 18 22:17:43 2007
New Revision: 519845

URL: http://svn.apache.org/viewvc?view=rev&rev=519845
Log:
o Add some basic WSS4J security interceptors which are capable of doing
  WS-Security processing. They still need a decent config mechanism...
o Create an AbstractWSFeature class. The hope is that this can help
  WS-* features become easier to configure. I took the term from the JAX-WS
  2.1 spec. I can't find a copy of the spec right now to see how they're
  going to overlap, so this might change in the future. The basic idea
  is we can create a spring config like this:
  
  <jaxws:endpoint implementor="EchoImpl">
    <jaxws:features>
      <wss:security ../>
      <wsrm:reliability ../>
    </jaxws:features>
  </jaxws:endpoint>

  And similarly for the Client side.
o Committed the start of a WSS4JSecurityFeature class, but it's not near 
  completion yet.
o Change the checkstyle to allow Vector as WSS4J forces it upon us.
  

Added:
    incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java   (with props)
    incubator/cxf/trunk/rt/ws/security/
    incubator/cxf/trunk/rt/ws/security/pom.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/
    incubator/cxf/trunk/rt/ws/security/src/main/
    incubator/cxf/trunk/rt/ws/security/src/main/java/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/resources/
    incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/
    incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/cxf/
    incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/
    incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb   (with props)
    incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xsd   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/
    incubator/cxf/trunk/rt/ws/security/src/test/java/
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/client.properties   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/insecurity.properties   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/key.rsa   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/outsecurity.properties   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/privatestore.jks   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/publicstore.jks   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/request.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/service_enc.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/META-INF/cxf/service_sgn.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/logging.properties   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/AbstractSecurityTest.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/Echo.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/EchoImpl.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/RoundTripTest.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/TestPwdCallback.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JInOutTest.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptorTest.java   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/in_enc.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/signed.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/signed_invalid.xml   (with props)
    incubator/cxf/trunk/rt/ws/security/src/test/java/org/apache/cxf/ws/security/wss4j/wsse-request-clean.xml   (with props)
Modified:
    incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml
    incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
    incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
    incubator/cxf/trunk/rt/pom.xml

Added: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java (added)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,37 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Client;
+import org.apache.cxf.endpoint.Server;
+
+public abstract class AbstractWSFeature {
+    public void initialize(Server server) {
+        
+    }
+    
+    public void initialize(Client client) {
+        
+    }
+    
+    public void initialize(Bus bus) {
+        
+    }
+}

Propchange: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/ws/AbstractWSFeature.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml (original)
+++ incubator/cxf/trunk/buildtools/src/main/resources/cxf-checkstyle.xml Sun Mar 18 22:17:43 2007
@@ -204,6 +204,7 @@
         
         <module name="IllegalType">
             <property name="format" value="^xxx$"/>
+            <property name="illegalClassNames" value="java.util.GregorianCalendar, java.util.Hashtable, java.util.HashSet, java.util.HashMap, java.util.ArrayList, java.util.LinkedList, java.util.LinkedHashMap, java.util.LinkedHashSet, java.util.TreeSet, java.util.TreeMap"/>
         </module>
         <module name="DeclarationOrder"/>
         <!--<module name="ParameterAssignment"/>-->

Modified: incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java (original)
+++ incubator/cxf/trunk/rt/bindings/soap/src/main/java/org/apache/cxf/binding/soap/interceptor/MustUnderstandInterceptor.java Sun Mar 18 22:17:43 2007
@@ -86,8 +86,14 @@
         for (Interceptor interceptorInstance : soapMessage.getInterceptorChain()) {
             if (interceptorInstance instanceof SoapInterceptor) {
                 SoapInterceptor si = (SoapInterceptor) interceptorInstance;
-                serviceRoles.addAll(si.getRoles());
-                mustUnderstandQNames.addAll(si.getUnderstoodHeaders());
+                Set<URI> roles = si.getRoles();
+                if (roles != null) {
+                    serviceRoles.addAll(roles);
+                }
+                Set<QName> understoodHeaders = si.getUnderstoodHeaders();
+                if (understoodHeaders != null) {
+                    mustUnderstandQNames.addAll(understoodHeaders);
+                }
             }
         }
     }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/AbstractEndpointFactory.java Sun Mar 18 22:17:43 2007
@@ -18,6 +18,7 @@
  */
 package org.apache.cxf.frontend;
 
+import java.util.List;
 import java.util.Map;
 
 import javax.xml.namespace.QName;
@@ -25,7 +26,6 @@
 import org.apache.cxf.Bus;
 import org.apache.cxf.BusException;
 import org.apache.cxf.BusFactory;
-import org.apache.cxf.binding.soap.SoapBindingInfoFactoryBean;
 import org.apache.cxf.binding.soap.model.SoapBindingInfo;
 import org.apache.cxf.endpoint.Endpoint;
 import org.apache.cxf.endpoint.EndpointException;
@@ -36,6 +36,7 @@
 import org.apache.cxf.service.model.EndpointInfo;
 import org.apache.cxf.transport.DestinationFactory;
 import org.apache.cxf.transport.DestinationFactoryManager;
+import org.apache.cxf.ws.AbstractWSFeature;
 import org.apache.cxf.wsdl11.WSDLEndpointFactory;
 
 public abstract class AbstractEndpointFactory {
@@ -49,6 +50,7 @@
     private ReflectionServiceFactoryBean serviceFactory;
     private QName endpointName;
     private Map<String, Object> properties;
+    private List<AbstractWSFeature> features;
     
     protected Endpoint createEndpoint() throws BusException, EndpointException {
         Service service = serviceFactory.getService();
@@ -110,15 +112,16 @@
         
         // Get the Service from the ServiceFactory if specified
         Service service = serviceFactory.getService();
-        BindingInfo bindingInfo = createBindingInfo();
-        service.getServiceInfo().addBinding(bindingInfo);
         
         // SOAP nonsense
+        BindingInfo bindingInfo = createBindingInfo();
         if (bindingInfo instanceof SoapBindingInfo) {
-            ((SoapBindingInfoFactoryBean) getBindingFactory()).setTransportURI(transportId);
+            ((SoapBindingInfo) bindingInfo).setTransportURI(transportId);
             transportId = "http://schemas.xmlsoap.org/wsdl/soap/";
         }
         
+        service.getServiceInfo().addBinding(bindingInfo);
+
         setTransportId(transportId);
         
         if (destinationFactory == null) {
@@ -130,7 +133,7 @@
         ei.setName(endpointName);
         ei.setAddress(getAddress());
         ei.setBinding(bindingInfo);
-        
+
         if (destinationFactory instanceof WSDLEndpointFactory) {
             WSDLEndpointFactory we = (WSDLEndpointFactory) destinationFactory;
             
@@ -236,4 +239,13 @@
     public void setProperties(Map<String, Object> properties) {
         this.properties = properties;
     }
+
+    public List<AbstractWSFeature> getFeatures() {
+        return features;
+    }
+
+    public void setFeatures(List<AbstractWSFeature> features) {
+        this.features = features;
+    }
+    
 }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ClientFactoryBean.java Sun Mar 18 22:17:43 2007
@@ -26,6 +26,7 @@
 import org.apache.cxf.endpoint.EndpointException;
 import org.apache.cxf.service.factory.ReflectionServiceFactoryBean;
 import org.apache.cxf.service.factory.ServiceConstructionException;
+import org.apache.cxf.ws.AbstractWSFeature;
 
 public class ClientFactoryBean extends AbstractEndpointFactory {
     private Client client;
@@ -47,9 +48,19 @@
             throw new ServiceConstructionException(e);
         }
         
+        applyFeatures();
+        
         return client;
     }
 
+    protected void applyFeatures() {
+        if (getFeatures() != null) {
+            for (AbstractWSFeature feature : getFeatures()) {
+                feature.initialize(client);
+            }
+        }
+    }
+    
     public Client getClient() {
         return client;
     }

Modified: incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java (original)
+++ incubator/cxf/trunk/rt/frontend/simple/src/main/java/org/apache/cxf/frontend/ServerFactoryBean.java Sun Mar 18 22:17:43 2007
@@ -31,6 +31,7 @@
 import org.apache.cxf.service.invoker.BeanInvoker;
 import org.apache.cxf.service.invoker.Invoker;
 import org.apache.cxf.transport.ChainInitiationObserver;
+import org.apache.cxf.ws.AbstractWSFeature;
 
 /**
  * This class helps take a {@link org.apache.cxf.service.Service} and 
@@ -104,7 +105,17 @@
             throw new ServiceConstructionException(e);
         }
         
+        applyFeatures();
+        
         return server;
+    }
+
+    protected void applyFeatures() {
+        if (getFeatures() != null) {
+            for (AbstractWSFeature feature : getFeatures()) {
+                feature.initialize(server);
+            }
+        }
     }
 
     protected Invoker createInvoker() {

Modified: incubator/cxf/trunk/rt/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/pom.xml?view=diff&rev=519845&r1=519844&r2=519845
==============================================================================
--- incubator/cxf/trunk/rt/pom.xml (original)
+++ incubator/cxf/trunk/rt/pom.xml Sun Mar 18 22:17:43 2007
@@ -45,6 +45,7 @@
         <module>ws/policy</module>
         <module>ws/addr</module>
         <module>ws/rm</module>
+        <module>ws/security</module>
         <module>management</module>
     </modules>
 

Added: incubator/cxf/trunk/rt/ws/security/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/pom.xml?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/pom.xml (added)
+++ incubator/cxf/trunk/rt/ws/security/pom.xml Sun Mar 18 22:17:43 2007
@@ -0,0 +1,197 @@
+<!--
+	Licensed to the Apache Software Foundation (ASF) under one
+	or more contributor license agreements. See the NOTICE file
+	distributed with this work for additional information
+	regarding copyright ownership. The ASF licenses this file
+	to you under the Apache License, Version 2.0 (the
+	"License"); you may not use this file except in compliance
+	with the License. You may obtain a copy of the License at
+	
+	http://www.apache.org/licenses/LICENSE-2.0
+	
+	Unless required by applicable law or agreed to in writing,
+	software distributed under the License is distributed on an
+	"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+	KIND, either express or implied. See the License for the
+	specific language governing permissions and limitations
+	under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<artifactId>cxf-rt-ws-security</artifactId>
+	<packaging>jar</packaging>
+	<name>Apache CXF Runtime WS Security</name>
+	<url>http://cwiki.apache.org/CXF</url>
+
+	<parent>
+		<groupId>org.apache.cxf</groupId>
+		<artifactId>cxf-parent</artifactId>
+		<version>2.0-incubator-RC-SNAPSHOT</version>
+		<relativePath>../../../parent/pom.xml</relativePath>
+	</parent>
+
+
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.easymock</groupId>
+			<artifactId>easymockclassextension</artifactId>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-api</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-common-utilities</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-bindings-soap</artifactId>
+			<version>${project.version}</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-frontend-jaxws</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-rt-transports-local</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.cxf</groupId>
+			<artifactId>cxf-testutils</artifactId>
+			<version>${project.version}</version>
+			<scope>test</scope>
+		</dependency>
+
+		<dependency>
+			<groupId>com.sun.xml.messaging.saaj</groupId>
+			<artifactId>saaj-impl</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.geronimo.specs</groupId>
+			<artifactId>geronimo-activation_1.1_spec</artifactId>
+		</dependency>
+
+		<dependency>
+			<groupId>xerces</groupId>
+			<artifactId>xercesImpl</artifactId>
+			<version>2.7.1</version>
+		</dependency>
+		<dependency>
+			<groupId>xml-apis</groupId>
+			<artifactId>xml-apis</artifactId>
+			<version>1.0.b2</version>
+		</dependency>
+		<dependency>
+			<groupId>xml-security</groupId>
+			<artifactId>xmlsec</artifactId>
+			<version>1.3.0</version>
+		</dependency>
+		<dependency>
+			<groupId>wss4j</groupId>
+			<artifactId>wss4j</artifactId>
+			<version>1.5.1</version>
+		</dependency>
+		<dependency>
+			<groupId>com.sun.xml.messaging.saaj</groupId>
+			<artifactId>saaj-impl</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>xalan</groupId>
+			<artifactId>xalan</artifactId>
+			<version>2.7.0</version>
+		</dependency>
+		<!-- We should get these properly uploaded -->
+		<dependency>
+			<groupId>xfire</groupId>
+			<artifactId>opensaml</artifactId>
+			<version>1.0.1</version>
+		</dependency>
+		<dependency>
+			<groupId>org.codehaus.xfire</groupId>
+			<artifactId>bcprov-jdk15</artifactId>
+			<version>133</version>
+		</dependency>
+	</dependencies>
+
+	<scm>
+		<connection>
+			scm:svn:http://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/ws/security
+		</connection>
+		<developerConnection>
+			scm:svn:https://svn.apache.org/repos/asf/incubator/cxf/trunk/rt/ws/security
+		</developerConnection>
+	</scm>
+	<build>
+		<plugins>
+			<!--			<plugin>-->
+			<!--				<groupId>org.apache.cxf</groupId>-->
+			<!--				<artifactId>cxf-common-xsd</artifactId>-->
+			<!--				<version>${project.version}</version>-->
+			<!--				<executions>-->
+			<!--					<execution>-->
+			<!--						<id>generate-sources</id>-->
+			<!--						<phase>generate-sources</phase>-->
+			<!--						<configuration>-->
+			<!--							<sourceRoot>-->
+			<!--								${basedir}/target/generated/src/main/java-->
+			<!--							</sourceRoot>-->
+			<!--							<xsdOptions>-->
+			<!--								<xsdOption>-->
+			<!--									<xsd>-->
+			<!--										${basedir}/src/main/resources/schemas/ws-security-policy.xsd-->
+			<!--									</xsd>-->
+			<!--									<bindingFile>-->
+			<!--										${basedir}/src/main/resources/schemas/ws-security-policy.xjb-->
+			<!--									</bindingFile>-->
+			<!--									<catalog>-->
+			<!--										${basedir}/src/main/resources/schemas/catalog.cat-->
+			<!--									</catalog>-->
+			<!--									<deleteDirs>-->
+			<!--										<deleteDir>-->
+			<!--											${basedir}/target/generated/src/main/java/org/apache/cxf/ws/security/policy-->
+			<!--										</deleteDir>-->
+			<!--									</deleteDirs>-->
+			<!--								</xsdOption>-->
+			<!--							</xsdOptions>-->
+			<!--						</configuration>-->
+			<!--						<goals>-->
+			<!--							<goal>xsdtojava</goal>-->
+			<!--						</goals>-->
+			<!--					</execution>-->
+			<!--				</executions>-->
+			<!--				<dependencies>-->
+			<!--					<dependency>-->
+			<!--						<groupId>org.apache.cxf</groupId>-->
+			<!--						<artifactId>cxf-tools-xjc-dv</artifactId>-->
+			<!--						<version>${project.version}</version>-->
+			<!--					</dependency>-->
+			<!--					<dependency>-->
+			<!--						<groupId>org.apache.cxf</groupId>-->
+			<!--						<artifactId>cxf-common-utilities</artifactId>-->
+			<!--						<version>${project.version}</version>-->
+			<!--					</dependency>-->
+			<!--				</dependencies>-->
+			<!--			</plugin>-->
+		</plugins>
+	</build>
+</project>

Propchange: incubator/cxf/trunk/rt/ws/security/pom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/pom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/ws/security/pom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,42 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security;
+
+import org.apache.cxf.ws.AbstractWSFeature;
+
+public class AbstractWSSecurityFeature extends AbstractWSFeature {
+    private SecurityInfo inFlow;
+    private SecurityInfo outFlow;
+
+    public SecurityInfo getInFlow() {
+        return inFlow;
+    }
+    
+    public void setInFlow(SecurityInfo inFlow) {
+        this.inFlow = inFlow;
+    }
+    
+    public SecurityInfo getOutFlow() {
+        return outFlow;
+    }
+    
+    public void setOutFlow(SecurityInfo outFlow) {
+        this.outFlow = outFlow;
+    }
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/AbstractWSSecurityFeature.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,23 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security;
+
+public class KeyStoreFactoryBean {
+
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/KeyStoreFactoryBean.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,77 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security;
+
+import java.security.KeyStore;
+
+public class SecurityInfo {
+    private boolean doUsernameToken;
+    private boolean doEncryption;
+    private boolean doSignature;
+    private boolean doTimestamp;
+
+    private KeyStore keyStore;
+    private KeyStore trustStore;
+    private KeyStore symmetricStore;
+    
+    public boolean isDoEncryption() {
+        return doEncryption;
+    }
+    public void setDoEncryption(boolean doEncryption) {
+        this.doEncryption = doEncryption;
+    }
+    public boolean isDoSignature() {
+        return doSignature;
+    }
+    public void setDoSignature(boolean doSignature) {
+        this.doSignature = doSignature;
+    }
+    public boolean isDoTimestamp() {
+        return doTimestamp;
+    }
+    public void setDoTimestamp(boolean doTimestamp) {
+        this.doTimestamp = doTimestamp;
+    }
+    public boolean isDoUsernameToken() {
+        return doUsernameToken;
+    }
+    public void setDoUsernameToken(boolean doUsernameToken) {
+        this.doUsernameToken = doUsernameToken;
+    }
+    public KeyStore getKeyStore() {
+        return keyStore;
+    }
+    public void setKeyStore(KeyStore keyStore) {
+        this.keyStore = keyStore;
+    }
+    public KeyStore getSymmetricStore() {
+        return symmetricStore;
+    }
+    public void setSymmetricStore(KeyStore symmetricStore) {
+        this.symmetricStore = symmetricStore;
+    }
+    public KeyStore getTrustStore() {
+        return trustStore;
+    }
+    public void setTrustStore(KeyStore trustStore) {
+        this.trustStore = trustStore;
+    }
+    
+    
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityInfo.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,139 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security.wss4j;
+
+import java.net.URI;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.interceptor.SoapInterceptor;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.PhaseInterceptor;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.handler.WSHandler;
+
+public abstract class AbstractWSS4JInterceptor extends WSHandler implements SoapInterceptor, 
+    PhaseInterceptor<SoapMessage> {
+    
+    private static final Set<QName> HEADERS = new HashSet<QName>();
+    static {
+        HEADERS.add(new QName(WSConstants.WSSE_NS, "Security"));
+        HEADERS.add(new QName(WSConstants.WSSE11_NS, "Security"));
+        HEADERS.add(new QName("http://www.w3.org/2001/04/xmlenc", "EncryptedData"));
+    }
+
+    private Map<String, String> properties = new HashMap<String, String>();
+    private Set<String> before = new HashSet<String>();
+    private Set<String> after = new HashSet<String>();
+    private String phase;
+    private String id;
+    
+    public AbstractWSS4JInterceptor() {
+        super();
+        id = getClass().getName();
+    }
+
+    public Set<URI> getRoles() {
+        return null;
+    }
+
+    public void handleFault(SoapMessage message) {
+    }
+
+    public void postHandleMessage(SoapMessage message) throws Fault {
+    }
+
+    public String getPhase() {
+        return phase;
+    }
+
+    public void setPhase(String phase) {
+        this.phase = phase;
+    }
+
+    public Object getOption(String key) {
+        return properties.get(key);
+    }
+
+    public void setProperty(String key, String value) {
+        properties.put(key, value);
+    }
+
+    public String getPassword(Object msgContext) {
+        return (String)((Message)msgContext).getContextualProperty("password");
+    }
+
+    public Object getProperty(Object msgContext, String key) {
+        Object obj = ((Message)msgContext).getContextualProperty(key);
+        if (obj == null) {
+            obj = getOption(key);
+        }
+        return obj;
+    }
+
+    public void setPassword(Object msgContext, String password) {
+        ((Message)msgContext).put("password", password);
+    }
+
+    public void setProperty(Object msgContext, String key, Object value) {
+        ((Message)msgContext).put(key, value);
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public Set<QName> getUnderstoodHeaders() {
+        return HEADERS;
+    }
+
+    public Map getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Map<String, String> properties) {
+        this.properties = properties;
+    }
+
+    public Set<String> getAfter() {
+        return after;
+    }
+
+    public void setAfter(Set<String> after) {
+        this.after = after;
+    }
+
+    public Set<String> getBefore() {
+        return before;
+    }
+
+    public void setBefore(Set<String> before) {
+        this.before = before;
+    }
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/AbstractWSS4JInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties Sun Mar 18 22:17:43 2007
@@ -0,0 +1,8 @@
+NO_SAAJ_DOC: No SOAPMessage DOM was found. Please enable the SAAJInInterceptor.
+ACTION_MISMATCH: Security processing failed (actions mismatch)
+INVALID_TIMESTAMP: The timestamp could not be validated.
+UNTRUSTED_CERT: The certificate used for the signature is not trusted.
+NO_SECURITY: Request does not contain required Security header.
+SECURITY_FAILED: Security processing failed.
+NO_ACTION: No security action was defined.
+NO_USERNAME: Empty username for specified action.
\ No newline at end of file

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/Messages.properties
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,284 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security.wss4j;
+
+import java.security.cert.X509Certificate;
+import java.util.Map;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.security.auth.callback.CallbackHandler;
+import javax.xml.soap.SOAPBody;
+import javax.xml.soap.SOAPException;
+import javax.xml.soap.SOAPMessage;
+import javax.xml.stream.XMLStreamConstants;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.transform.dom.DOMSource;
+
+import org.apache.cxf.binding.soap.SoapFault;
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.SoapVersion;
+import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.phase.Phase;
+import org.apache.cxf.staxutils.StaxUtils;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSecurityEngineResult;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.handler.RequestData;
+import org.apache.ws.security.handler.WSHandlerConstants;
+import org.apache.ws.security.handler.WSHandlerResult;
+import org.apache.ws.security.message.token.Timestamp;
+import org.apache.ws.security.util.WSSecurityUtil;
+
+/**
+ * Performs WS-Security inbound actions.
+ * 
+ * @author <a href="mailto:tsztelak@gmail.com">Tomasz Sztelak</a>
+ */
+public class WSS4JInInterceptor extends AbstractWSS4JInterceptor {
+    private static final Logger LOG = Logger.getLogger(WSS4JInInterceptor.class.getName());
+    private static final Logger TIME_LOG = Logger.getLogger(WSS4JInInterceptor.class.getName() + "-Time");
+
+    public WSS4JInInterceptor() {
+        super();
+
+        setPhase(Phase.PRE_PROTOCOL);
+        getAfter().add(SAAJInInterceptor.class.getName());
+    }
+
+    public WSS4JInInterceptor(Map<String, String> properties) {
+        this();
+        setProperties(properties);
+    }
+
+    @SuppressWarnings("unchecked")
+    public void handleMessage(SoapMessage msg) throws Fault {
+        boolean doDebug = LOG.isLoggable(Level.FINE);
+        boolean doTimeLog = TIME_LOG.isLoggable(Level.FINE);
+
+        SoapVersion version = msg.getVersion();
+        if (doDebug) {
+            LOG.fine("WSS4JInSecurityHandler: enter invoke()");
+        }
+
+        long t0 = 0;
+        long t1 = 0;
+        long t2 = 0;
+        long t3 = 0;
+        long t4 = 0;
+
+        if (doTimeLog) {
+            t0 = System.currentTimeMillis();
+        }
+
+        RequestData reqData = new RequestData();
+        /*
+         * The overall try, just to have a finally at the end to perform some
+         * housekeeping.
+         */
+        try {
+            reqData.setMsgContext(msg);
+
+            Vector actions = new Vector();
+            String action = getAction(msg, version);
+
+            int doAction = WSSecurityUtil.decodeAction(action, actions);
+
+            String actor = (String)getOption(WSHandlerConstants.ACTOR);
+
+            SOAPMessage doc = msg.getContent(SOAPMessage.class);
+
+            if (doc == null) {
+                throw new SoapFault(new Message("NO_SAAJ_DOC", LOG), version.getReceiver());
+            }
+
+            CallbackHandler cbHandler = getCallback(reqData, doAction);
+
+            /*
+             * Get and check the Signature specific parameters first because
+             * they may be used for encryption too.
+             */
+            doReceiverAction(doAction, reqData);
+
+            Vector wsResult = null;
+            if (doTimeLog) {
+                t1 = System.currentTimeMillis();
+            }
+
+            try {
+                wsResult = secEngine.processSecurityHeader(doc.getSOAPPart(), actor, cbHandler, reqData
+                    .getSigCrypto(), reqData.getDecCrypto());
+            } catch (WSSecurityException ex) {
+                LOG.log(Level.WARNING, "", ex);
+                throw new SoapFault(new Message("SECURITY_FAILED", LOG), ex, version.getSender());
+            }
+
+            if (doTimeLog) {
+                t2 = System.currentTimeMillis();
+            }
+
+            if (wsResult == null) { // no security header found
+                if (doAction == WSConstants.NO_SECURITY) {
+                    return;
+                } else {
+                    LOG.warning("Request does not contain required Security header");
+                    throw new SoapFault(new Message("NO_SECURITY", LOG), version.getSender());
+                }
+            }
+
+            if (reqData.getWssConfig().isEnableSignatureConfirmation()) {
+                checkSignatureConfirmation(reqData, wsResult);
+            }
+
+            /*
+             * Now we can check the certificate used to sign the message. In the
+             * following implementation the certificate is only trusted if
+             * either it itself or the certificate of the issuer is installed in
+             * the keystore. Note: the method verifyTrust(X509Certificate)
+             * allows custom implementations with other validation algorithms
+             * for subclasses.
+             */
+
+            // Extract the signature action result from the action vector
+            WSSecurityEngineResult actionResult = WSSecurityUtil
+                .fetchActionResult(wsResult, WSConstants.SIGN);
+
+            if (actionResult != null) {
+                X509Certificate returnCert = actionResult.getCertificate();
+
+                if (returnCert != null && !verifyTrust(returnCert, reqData)) {
+                    LOG.warning("WThe certificate used for the signature is not trusted");
+                    throw new SoapFault(new Message("UNTRUSTED_CERT", LOG), version.getSender());
+                }
+            }
+
+            /*
+             * Perform further checks on the timestamp that was transmitted in
+             * the header. In the following implementation the timestamp is
+             * valid if it was created after (now-ttl), where ttl is set on
+             * server side, not by the client. Note: the method
+             * verifyTimestamp(Timestamp) allows custom implementations with
+             * other validation algorithms for subclasses.
+             */
+
+            // Extract the timestamp action result from the action vector
+            actionResult = WSSecurityUtil.fetchActionResult(wsResult, WSConstants.TS);
+
+            if (actionResult != null) {
+                Timestamp timestamp = actionResult.getTimestamp();
+
+                if (timestamp != null && !verifyTimestamp(timestamp, decodeTimeToLive(reqData))) {
+                    LOG.warning("The timestamp could not be validated");
+                    throw new SoapFault(new Message("INVALID_TIMESTAMP", LOG), version.getSender());
+                }
+            }
+
+            /*
+             * now check the security actions: do they match, in right order?
+             */
+            if (!checkReceiverResults(wsResult, actions)) {
+                LOG.warning("Security processing failed (actions mismatch)");
+                throw new SoapFault(new Message("ACTION_MISMATCH", LOG), version.getSender());
+
+            }
+
+            doResults(msg, actor, doc, wsResult);
+
+            if (doTimeLog) {
+                t4 = System.currentTimeMillis();
+                TIME_LOG.fine("Receive request: total= " + (t4 - t0) + " request preparation= " + (t1 - t0)
+                              + " request processing= " + (t2 - t1) + " request to CXF= " + (t3 - t2)
+                              + " header, cert verify, timestamp= " + (t4 - t3) + "\n");
+            }
+
+            if (doDebug) {
+                LOG.fine("WSS4JInHandler: exit invoke()");
+            }
+
+        } catch (WSSecurityException e) {
+            LOG.log(Level.WARNING, "", e);
+            // TODO: what should we be doing?
+        } catch (XMLStreamException e) {
+            throw new SoapFault(new Message("STAX_EX", LOG), version.getSender());
+        } catch (SOAPException e) {
+            throw new SoapFault(new Message("SAAJ_EX", LOG), version.getSender());
+        } finally {
+            reqData.clear();
+            reqData = null;
+        }
+    }
+
+    @SuppressWarnings("unchecked")
+    private void doResults(SoapMessage msg, String actor, SOAPMessage doc, Vector wsResult)
+        throws SOAPException, XMLStreamException {
+        /*
+         * All ok up to this point. Now construct and setup the security result
+         * structure. The service may fetch this and check it.
+         */
+        Vector<Object> results = (Vector<Object>)msg.get(WSHandlerConstants.RECV_RESULTS);
+        if (results == null) {
+            results = new Vector<Object>();
+            msg.put(WSHandlerConstants.RECV_RESULTS, results);
+        }
+        WSHandlerResult rResult = new WSHandlerResult(actor, wsResult);
+        results.add(0, rResult);
+
+        SOAPBody body = doc.getSOAPBody();
+
+        XMLStreamReader reader = StaxUtils.createXMLStreamReader(new DOMSource(body));
+        // advance just past body
+        int evt = reader.next();
+        int i = 0;
+        while (reader.hasNext() && i < 1
+               && (evt != XMLStreamConstants.END_ELEMENT || evt != XMLStreamConstants.START_ELEMENT)) {
+            reader.next();
+            i++;
+        }
+
+        msg.setContent(XMLStreamReader.class, reader);
+    }
+
+    private String getAction(SoapMessage msg, SoapVersion version) {
+        String action = (String)getOption(WSHandlerConstants.ACTION);
+        if (action == null) {
+            action = (String)msg.get(WSHandlerConstants.ACTION);
+        }
+        if (action == null) {
+            LOG.warning("No security action was defined!");
+            throw new SoapFault("No securityaction was defined!", version.getReceiver());
+        }
+        return action;
+    }
+
+    private CallbackHandler getCallback(RequestData reqData, int doAction) throws WSSecurityException {
+        /*
+         * To check a UsernameToken or to decrypt an encrypted message we need a
+         * password.
+         */
+        CallbackHandler cbHandler = null;
+        if ((doAction & (WSConstants.ENCR | WSConstants.UT)) != 0) {
+            cbHandler = getPasswordCB(reqData);
+        }
+        return cbHandler;
+    }
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,183 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security.wss4j;
+
+import java.util.Map;
+import java.util.Vector;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.xml.soap.SOAPMessage;
+
+import org.w3c.dom.Document;
+
+import org.apache.cxf.binding.soap.SoapFault;
+import org.apache.cxf.binding.soap.SoapMessage;
+import org.apache.cxf.binding.soap.SoapVersion;
+import org.apache.cxf.common.i18n.Message;
+import org.apache.cxf.interceptor.Fault;
+import org.apache.cxf.phase.Phase;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.handler.RequestData;
+import org.apache.ws.security.handler.WSHandlerConstants;
+import org.apache.ws.security.util.WSSecurityUtil;
+
+
+public class WSS4JOutInterceptor extends AbstractWSS4JInterceptor {
+    private static final Logger LOG = Logger.getLogger(WSS4JOutInterceptor.class.getName());
+    private static final Logger TIME_LOG = Logger.getLogger(WSS4JOutInterceptor.class.getName() + "-Time");
+
+    public WSS4JOutInterceptor() {
+        super();
+
+        setPhase(Phase.POST_PROTOCOL);
+    }
+
+    public WSS4JOutInterceptor(Map<String, String> props) {
+        this();
+        setProperties(props);
+    }
+
+    public void handleMessage(SoapMessage mc) throws Fault {
+        boolean doDebug = LOG.isLoggable(Level.FINE);
+        boolean doTimeDebug = TIME_LOG.isLoggable(Level.FINE);
+        SoapVersion version = mc.getVersion();
+
+        long t0 = 0;
+        long t1 = 0;
+        long t2 = 0;
+        long t3 = 0;
+
+        if (doTimeDebug) {
+            t0 = System.currentTimeMillis();
+        }
+
+        if (doDebug) {
+            LOG.fine("WSDoAllSender: enter invoke()");
+        }
+
+        RequestData reqData = new RequestData();
+
+        reqData.setMsgContext(mc);
+        /*
+         * The overall try, just to have a finally at the end to perform some
+         * housekeeping.
+         */
+        try {
+            /*
+             * Get the action first.
+             */
+            Vector actions = new Vector();
+            String action = getString(WSHandlerConstants.ACTION, mc);
+            if (action == null) {
+                throw new SoapFault(new Message("NO_ACTION", LOG), version.getReceiver());
+            }
+
+            int doAction = WSSecurityUtil.decodeAction(action, actions);
+            if (doAction == WSConstants.NO_SECURITY) {
+                return;
+            }
+
+            /*
+             * For every action we need a username, so get this now. The
+             * username defined in the deployment descriptor takes precedence.
+             */
+            reqData.setUsername((String)getOption(WSHandlerConstants.USER));
+            if (reqData.getUsername() == null || reqData.getUsername().equals("")) {
+                String username = (String)getProperty(reqData.getMsgContext(), WSHandlerConstants.USER);
+                if (username != null) {
+                    reqData.setUsername(username);
+                }
+            }
+
+            /*
+             * Now we perform some set-up for UsernameToken and Signature
+             * functions. No need to do it for encryption only. Check if
+             * username is available and then get a passowrd.
+             */
+            if ((doAction & (WSConstants.SIGN | WSConstants.UT | WSConstants.UT_SIGN)) != 0
+                && reqData.getUsername() == null || reqData.getUsername().equals("")) {
+                /*
+                 * We need a username - if none throw an SoapFault. For
+                 * encryption there is a specific parameter to get a username.
+                 */
+                throw new SoapFault(new Message("NO_USERNAME", LOG), version.getReceiver());
+            }
+            if (doDebug) {
+                LOG.fine("Action: " + doAction);
+                LOG.fine("Actor: " + reqData.getActor());
+            }
+            /*
+             * Now get the SOAP part from the request message and convert it
+             * into a Document. This forces CXF to serialize the SOAP request
+             * into FORM_STRING. This string is converted into a document.
+             * During the FORM_STRING serialization CXF performs multi-ref of
+             * complex data types (if requested), generates and inserts
+             * references for attachements and so on. The resulting Document
+             * MUST be the complete and final SOAP request as CXF would send it
+             * over the wire. Therefore this must shall be the last (or only)
+             * handler in a chain. Now we can perform our security operations on
+             * this request.
+             */
+            SOAPMessage saaj = mc.getContent(SOAPMessage.class);
+
+            if (saaj == null) {
+                LOG.warning("SAAJOutHandler must be enabled for WS-Security!");
+                throw new SoapFault(new Message("NO_SAAJ_DOC", LOG), version.getReceiver());
+            }
+
+            Document doc = saaj.getSOAPPart();
+            /**
+             * There is nothing to send...Usually happens when the provider
+             * needs to send a HTTP 202 message (with no content)
+             */
+            if (mc == null) {
+                return;
+            }
+
+            if (doTimeDebug) {
+                t1 = System.currentTimeMillis();
+            }
+
+            doSenderAction(doAction, doc, reqData, actions, !Boolean.TRUE
+                .equals(org.apache.cxf.message.Message.REQUESTOR_ROLE));
+
+            if (doTimeDebug) {
+                t2 = System.currentTimeMillis();
+            }
+
+            if (doTimeDebug) {
+                t3 = System.currentTimeMillis();
+                TIME_LOG
+                    .fine("Send request: total= " + (t3 - t0) + " request preparation= " + (t1 - t0)
+                          + " request processing= " + (t2 - t1) + " request to CXF= " + (t3 - t2) + "\n");
+            }
+
+            if (doDebug) {
+                LOG.fine("WSDoAllSender: exit invoke()");
+            }
+        } catch (WSSecurityException e) {
+            throw new SoapFault(new Message("SECURITY_FAILED", LOG), e, version.getSender());
+        } finally {
+            reqData.clear();
+            reqData = null;
+        }
+    }
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JOutInterceptor.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java Sun Mar 18 22:17:43 2007
@@ -0,0 +1,49 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.ws.security.wss4j;
+
+import org.apache.cxf.binding.soap.saaj.SAAJInInterceptor;
+import org.apache.cxf.binding.soap.saaj.SAAJOutInterceptor;
+import org.apache.cxf.endpoint.Endpoint;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.interceptor.InterceptorProvider;
+import org.apache.cxf.ws.security.AbstractWSSecurityFeature;
+
+public class WSS4JSecurityFeature extends AbstractWSSecurityFeature {
+    
+    @Override
+    public void initialize(Server service) {
+        Endpoint endpoint = service.getEndpoint();
+        initialize(endpoint);
+        
+    }
+
+    private void initialize(InterceptorProvider endpoint) {
+        endpoint.getInInterceptors().add(new SAAJInInterceptor());
+        endpoint.getOutInterceptors().add(new SAAJOutInterceptor());
+        
+        // TODO: Configure interceptors with properties
+        
+        WSS4JInInterceptor wsin = new WSS4JInInterceptor();
+        endpoint.getInInterceptors().add(wsin);
+        
+        WSS4JOutInterceptor wsout = new WSS4JOutInterceptor();
+        endpoint.getOutInterceptors().add(wsout);
+    }    
+}

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JSecurityFeature.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE Sun Mar 18 22:17:43 2007
@@ -0,0 +1,71 @@
+   =========================================================================
+   ==  NOTICE file corresponding to the section 4 d of                    ==
+   ==  the Apache License, Version 2.0,                                   ==
+   ==  in this case for the Apache CXF distribution.               ==
+   =========================================================================
+
+   This product includes software developed by
+   The Apache Software Foundation (http://www.apache.org/).
+
+   This product also includes schemas and specification developed by:
+      - the W3C consortium (http://www.w3c.org) ,
+
+   This product also includes software developed by Spring Framework
+   Project (http://www.springframework.org)
+
+   This product also includes XMLSchema developed at the apache 
+   software foundation. The original software is available from
+   (http://www.apache.org/dyn/closer.cgi/ws/commons/XmlSchema)
+
+   This product also includes Wsdl4j (The Web Services Description 
+   Language for Java Toolkit) developed at Sourceforge. The original 
+   software is available from (http://sourceforge.net/projects/wsdl4j)
+
+   This product also inclues SAAJ (The SOAP with Attachments API for Java)
+   The original software is availabe from (http://saaj.dev.java.net/)
+
+   This product also includes JavaMail api developed by Sun MicroSystems, Inc.
+   The original software is avaiable from (http://glassfish.dev.java.net/)
+
+   This product also includes JSR 181 API developed by Java Community Process.
+   The original software is avaliable from (http://glassfish.dev.java.net/)
+
+   This product also includes JSR 250 API developed by Java Community Process.
+   The original software is available from (http://glassfish.dev.java.net/)
+
+   This product also includes Java API for XML Web Service developed by
+   Java Community Process and Sun MicroSystems, Inc. The original software
+   is available from (http://glassfish.dev.java.net/)
+
+   This product also includes Java Architecture for XML Binding developed by Java
+   Community Process and Sun MicroSystems, Inc. The original software is
+   available from (http://jaxb.dev.java.net)
+
+   This product also includes JavaBeans Activation Framework developed by
+   Java Community Process and Sun MicroSystems, Inc. The original software is 
+   available from (http://jcp.org/aboutJava/communityprocess/mrel/jsr925/index.html
+
+   This product also includes software developed by Mort Bay Consulting
+   Pty (http://jetty.mortbay.org)
+
+   This product also includes software developed by Codehause
+   (http://woodstox.codehaus.org/)
+
+   This product also includes WS-* schemas developed by International
+   Business Machines Corporation, Microsoft Corporation, BEA Systems, 
+   TIBCO Software, SAP AG, Sonic Software, and VeriSign
+   (http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd)
+   (http://schemas.xmlsoap.org/ws/2004/08/addressing/)
+   (http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm.xsd)
+   (http://schemas.xmlsoap.org/ws/2004/09/policy/ws-policy.xsd)
+   
+   This Product also includes schemas developed by OASIS
+   (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd)
+   (http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd) 
+
+   Java classes (source and binary) under org.apache.cxf.jaxws.javaee
+   are generated from schema available here:
+   (http://java.sun.com/xml/ns/javaee/javaee_5.xsd)
+
+   Additional copyright notices and license terms applicable are
+   present in the licenses directory of this distribution.

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:executable = *

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/resources/META-INF/NOTICE
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat Sun Mar 18 22:17:43 2007
@@ -0,0 +1,23 @@
+
+--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+--
+
+
+SYSTEM "http://schemas.xmlsoap.org/ws/2004/08/addressing" "../../../../../../../common/schemas/src/main/resources/schemas/wsdl/addressing.xsd"
+

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/catalog.cat
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb?view=auto&rev=519845
==============================================================================
--- incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb (added)
+++ incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb Sun Mar 18 22:17:43 2007
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you under the Apache License, Version 2.0 (the
+  "License"); you may not use this file except in compliance
+  with the License. You may obtain a copy of the License at
+ 
+  http://www.apache.org/licenses/LICENSE-2.0
+ 
+  Unless required by applicable law or agreed to in writing,
+  software distributed under the License is distributed on an
+  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+  KIND, either express or implied. See the License for the
+  specific language governing permissions and limitations
+  under the License.
+-->
+<jaxb:bindings version="1.0" 
+  xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
+  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+  xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
+  jaxb:extensionBindingPrefixes="xjc">
+    <jaxb:bindings schemaLocation="ws-security-policy.xsd" node="/xs:schema">
+        <jaxb:schemaBindings>
+            <jaxb:package name="org.apache.cxf.ws.security.policy"/>
+        </jaxb:schemaBindings>
+        <jaxb:globalBindings generateIsSetMethod="true"/>
+    </jaxb:bindings>
+</jaxb:bindings>

Propchange: incubator/cxf/trunk/rt/ws/security/src/main/resources/schemas/ws-security-policy.xjb
------------------------------------------------------------------------------
    svn:executable = *