You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2013/04/11 12:01:41 UTC
svn commit: r1466819 - in
/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc:
./ src/ src/main/ src/main/java/ src/main/java/demo/
src/main/java/demo/wssec/ src/main/java/demo/wssec/client/
src/main/java/demo/ws...
Author: coheigea
Date: Thu Apr 11 10:01:40 2013
New Revision: 1466819
URL: http://svn.apache.org/r1466819
Log:
Adding a new demo that shows how to use the StaX WS-Security approach
Added:
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/README.txt
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/logging.properties
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/pom.xml
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/Client.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/UTPasswordCallback.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/wssec.xml
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/ConciseFormatter.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/GreeterImpl.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/Server.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/UTPasswordCallback.java
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/wssec.xml
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Encrypt.properties
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Sign.properties
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_Decrypt.properties
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_SignVerf.properties
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-keystore.jks
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-truststore.jks
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-keystore.jks
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-truststore.jks
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/
cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/hello_world_wssec.wsdl
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/README.txt
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/README.txt?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/README.txt (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/README.txt Thu Apr 11 10:01:40 2013
@@ -0,0 +1,130 @@
+WS-Security Demo (Signature and Encryption)
+=================
+
+This demo shows how WS-Security support in Apache CXF may be enabled.
+
+WS-Security can be configured to the Client and Server endpoints by adding
+WSS4JInterceptors. Both Server and Client can be configured for outgoing and
+incoming interceptors. Various Actions like, Timestamp, UsernameToken,
+Signature, Encryption, etc., can be applied to the interceptors by passing
+appropriate configuration properties.
+
+This demo also shows how the DefaultCryptoCoverageChecker can be used to
+make sure that the correct Elements were signed and/or encrypted.
+
+The logging feature is used to log the inbound and outbound
+SOAP messages and display these to the console.
+
+In all other respects this demo is based on the basic hello_world sample.
+
+Please review the README in the samples directory before continuing.
+
+
+Prerequisite
+------------
+
+If your environment already includes cxf-manifest.jar on the CLASSPATH,
+and the JDK and ant bin directories on the PATH, it is not necessary to
+run the environment script described in the samples directory README.
+If your environment is not properly configured, or if you are planning
+on using wsdl2java, javac, and java to build and run the demos, you must
+set the environment by running the script.
+
+
+*** Requirements ***
+
+The samples in this directory use STRONG encryption. The default encryption algorithms
+included in a JRE is not adequate for these samples. The Java Cryptography Extension
+(JCE) Unlimited Strength Jurisdiction Policy Files available on Oracle's JDK download
+page[3] *must* be installed for the examples to work. If you get errors about invalid
+key lengths, the Unlimited Strength files are not installed.
+
+[3] http://www.oracle.com/technetwork/java/javase/downloads/index.html
+
+
+Building and running the demo using Maven
+---------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located), the maven pom.xml file can be used to build and run the demo.
+
+
+Using either UNIX or Windows:
+
+ mvn install (builds the demo)
+ mvn -Pserver (from one command line window)
+ mvn -Pclient (from a second command line window)
+
+On startup, the client makes a sequence of 4 two-way invocations.
+
+To remove the code generated from the WSDL file and the .class
+files, run "mvn clean".
+
+
+
+Building the demo using wsdl2java and javac
+-------------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) first create the target directory build/classes and then
+generate code from the WSDL file.
+
+
+For UNIX:
+ mkdir -p build/classes
+
+ wsdl2java -d build/classes -compile ./wsdl/hello_world_wssec.wsdl
+
+For Windows:
+ mkdir build\classes
+ Must use back slashes.
+
+ wsdl2java -d build\classes -compile .\wsdl\hello_world_wssec.wsdl
+ May use either forward or back slashes.
+
+Now compile the provided client and server applications with the commands:
+
+For UNIX:
+
+ export CLASSPATH=$CLASSPATH:$CXF_HOME/lib/cxf-manifest.jar:./build/classes
+ javac -d build/classes src/demo/wssec/common/*.java
+ javac -d build/classes src/demo/wssec/client/*.java
+ javac -d build/classes src/demo/wssec/server/*.java
+
+For Windows:
+ set classpath=%classpath%;%CXF_HOME%\lib\cxf-manifest.jar;.\build\classes
+ javac -d build\classes src\demo\wssec\common\*.java
+ javac -d build\classes src\demo\wssec\client\*.java
+ javac -d build\classes src\demo\wssec\server\*.java
+
+
+Running the demo using java
+---------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) run the commands, entered on a single command line:
+
+For UNIX (must use forward slashes):
+ java -Djava.util.logging.config.file=./logging.properties
+ demo.wssec.server.Server &
+
+ java -Djava.util.logging.config.file=./logging.properties
+ demo.wssec.client.Client ./wsdl/hello_world_wssec.wsdl
+
+The server process starts in the background.
+
+For Windows (may use either forward or back slashes):
+ start
+ java -Djava.util.logging.config.file=.\logging.properties
+ demo.wssec.server.Server
+
+ java -Djava.util.logging.config.file=.\logging.properties
+ demo.wssec.client.Client .\wsdl\hello_world_wssec.wsdl
+
+The server process starts in a new command window.
+
+After running the client, terminate the server process.
+
+To remove the code generated from the WSDL file and the .class
+files, delete the build directory and its contents.
+
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/logging.properties
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/logging.properties?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/logging.properties (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/logging.properties Thu Apr 11 10:01:40 2013
@@ -0,0 +1,80 @@
+# 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.
+
+############################################################
+# Default Logging Configuration File
+#
+# You can use a different file by specifying a filename
+# with the java.util.logging.config.file system property.
+# For example java -Djava.util.logging.config.file=myfile
+############################################################
+
+############################################################
+# Global properties
+############################################################
+
+# "handlers" specifies a comma separated list of log Handler
+# classes. These handlers will be installed during VM startup.
+# Note that these classes must be on the system classpath.
+# By default we only configure a ConsoleHandler, which will only
+# show messages at the WARNING and above levels.
+handlers= java.util.logging.ConsoleHandler
+
+# To also add the FileHandler, use the following line instead.
+#handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.formatter = demos.wssec.common.ConciseFormatter
+
+# Default global logging level.
+# This specifies which kinds of events are logged across
+# all loggers. For any given facility this global level
+# can be overriden by a facility specific level
+# Note that the ConsoleHandler also has a separate level
+# setting to limit messages printed to the console.
+.level= WARNING
+
+############################################################
+# Handler specific properties.
+# Describes specific configuration info for Handlers.
+############################################################
+
+# default file output is in user's home directory.
+java.util.logging.FileHandler.pattern = %h/java%u.log
+java.util.logging.FileHandler.limit = 50000
+java.util.logging.FileHandler.count = 1
+java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter
+
+# Limit the message that are printed on the console to WARNING and above.
+java.util.logging.ConsoleHandler.level = INFO
+#java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
+java.util.logging.ConsoleHandler.formatter = demos.wssec.common.ConciseFormatter
+
+
+############################################################
+# Facility specific properties.
+# Provides extra control for each logger.
+############################################################
+
+# For example, set the com.xyz.foo logger to only log SEVERE
+# messages:
+#com.xyz.foo.level = SEVERE
+
+# Set log levels so that we can observe the WSS4JIntercetpor
+
+org.apache.cxf.interceptor.LoggingInInterceptor.level=INFO
+org.apache.cxf.interceptor.LoggingOutInterceptor.level=INFO
+org.apache.cxf.ws.rm.security.wss4j.WSS4JInInterceptor.level=INFO
+org.apache.cxf.ws.rm.security.wss4j.WSS4JOutInterceptor.level=INFO
\ No newline at end of file
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/pom.xml
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/pom.xml?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/pom.xml (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/pom.xml Thu Apr 11 10:01:40 2013
@@ -0,0 +1,171 @@
+<!--
+ 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>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>wssec_stax_sign_enc</artifactId>
+ <name>CXF WS-Security StaX Sign Encoding Demo</name>
+ <description>CXF WS-Security StaX Sign Encoding Demo</description>
+ <version>2.8.0-SNAPSHOT</version>
+
+ <parent>
+ <groupId>org.apache.cxf.samples</groupId>
+ <artifactId>cxf-samples</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ <relativePath>../..</relativePath>
+ </parent>
+
+ <properties>
+ <cxf.version>${project.version}</cxf.version>
+ </properties>
+ <build>
+ <resources>
+ <resource>
+ <directory>src/main/java</directory>
+ <excludes>
+ <exclude>**/*.java</exclude>
+ </excludes>
+ </resource>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.6</source>
+ <target>1.6</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-codegen-plugin</artifactId>
+ <version>${project.version}</version>
+ <executions>
+ <execution>
+ <id>generate-sources</id>
+ <phase>generate-sources</phase>
+ <configuration>
+ <wsdlOptions>
+ <wsdlOption>
+ <wsdl>${basedir}/wsdl/hello_world_wssec.wsdl</wsdl>
+ </wsdlOption>
+ </wsdlOptions>
+ </configuration>
+ <goals>
+ <goal>wsdl2java</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <profiles>
+ <profile>
+ <id>server</id>
+ <build>
+ <defaultGoal>test</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <mainClass>demo.wssec.server.Server</mainClass>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ <profile>
+ <id>client</id>
+ <build>
+ <defaultGoal>test</defaultGoal>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>test</phase>
+ <goals>
+ <goal>java</goal>
+ </goals>
+ <configuration>
+ <mainClass>demo.wssec.client.Client</mainClass>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-frontend-jaxws</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <!-- Jetty is needed if you're using the CXFServlet -->
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-transports-http-jetty</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-rm</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-security</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-addr</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-ws-policy</artifactId>
+ <version>2.8.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring-context</artifactId>
+ </dependency>
+
+ </dependencies>
+</project>
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/Client.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/Client.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/Client.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/Client.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,160 @@
+/**
+ * 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 demo.wssec.client;
+
+import java.io.Closeable;
+import java.lang.reflect.UndeclaredThrowableException;
+import java.net.URL;
+import java.util.Properties;
+
+import javax.xml.namespace.QName;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.hello_world_soap_http.Greeter;
+import org.apache.cxf.hello_world_soap_http.GreeterService;
+import org.apache.cxf.ws.security.wss4j.WSS4JStaxInInterceptor;
+import org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor;
+import org.apache.wss4j.common.crypto.CryptoFactory;
+import org.apache.wss4j.stax.ext.WSSConstants;
+import org.apache.wss4j.stax.ext.WSSSecurityProperties;
+import org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants;
+import org.apache.xml.security.stax.ext.SecurePart;
+import org.apache.xml.security.stax.ext.XMLSecurityConstants;
+
+import demo.wssec.server.Server;
+import demo.wssec.server.UTPasswordCallback;
+
+
+public final class Client {
+
+ private Client() {
+ }
+
+ public static void main(String args[]) throws Exception {
+ try {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = Client.class.getResource("wssec.xml");
+ Bus bus = bf.createBus(busFile.toString());
+ BusFactory.setDefaultBus(bus);
+
+ Properties encCryptoProperties =
+ CryptoFactory.getProperties("etc/Client_Encrypt.properties", Server.class.getClassLoader());
+ Properties sigCryptoProperties =
+ CryptoFactory.getProperties("etc/Client_Sign.properties", Server.class.getClassLoader());
+
+ WSSSecurityProperties properties = new WSSSecurityProperties();
+ properties.setOutAction(
+ new XMLSecurityConstants.Action[] {
+ WSSConstants.USERNAMETOKEN, WSSConstants.TIMESTAMP, WSSConstants.SIGNATURE,
+ WSSConstants.ENCRYPT
+ }
+ );
+ properties.setUsernameTokenPasswordType(WSSConstants.UsernameTokenPasswordType.PASSWORD_DIGEST);
+ properties.setTokenUser("abcd");
+ properties.setSignatureUser("clientx509v1");
+ properties.setEncryptionUser("serverx509v1");
+
+ properties.setEncryptionCryptoProperties(encCryptoProperties);
+ properties.setEncryptionKeyIdentifier(
+ WSSecurityTokenConstants.KeyIdentifier_IssuerSerial
+ );
+ properties.setEncryptionKeyTransportAlgorithm(
+ "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"
+ );
+ properties.addEncryptionPart(
+ new SecurePart(new QName(WSSConstants.NS_WSU10, "Timestamp"), SecurePart.Modifier.Element)
+ );
+ properties.addEncryptionPart(
+ new SecurePart(new QName(WSSConstants.NS_SOAP11, "Body"), SecurePart.Modifier.Content)
+ );
+
+ properties.setSignatureCryptoProperties(sigCryptoProperties);
+ properties.setSignatureKeyIdentifier(
+ WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference
+ );
+ properties.setSignatureAlgorithm("http://www.w3.org/2000/09/xmldsig#rsa-sha1");
+ properties.addSignaturePart(
+ new SecurePart(new QName(WSSConstants.NS_WSU10, "Timestamp"), SecurePart.Modifier.Element)
+ );
+ properties.addSignaturePart(
+ new SecurePart(new QName(WSSConstants.NS_SOAP11, "Body"), SecurePart.Modifier.Element)
+ );
+ /*
+ * TODO
+ properties.addSignaturePart(
+ new SecurePart(new QName("http://www.w3.org/2005/08/addressing", "ReplyTo"), SecurePart.Modifier.Element)
+ );
+ */
+ properties.setCallbackHandler(new UTPasswordCallback());
+
+ WSS4JStaxOutInterceptor ohandler = new WSS4JStaxOutInterceptor(properties);
+ bus.getOutInterceptors().add(ohandler);
+
+ WSSSecurityProperties inProperties = new WSSSecurityProperties();
+ inProperties.setCallbackHandler(new UTPasswordCallback());
+ inProperties.setDecryptionCryptoProperties(sigCryptoProperties);
+ inProperties.setSignatureVerificationCryptoProperties(encCryptoProperties);
+
+ WSS4JStaxInInterceptor inhandler = new WSS4JStaxInInterceptor(inProperties);
+ bus.getInInterceptors().add(inhandler);
+
+ /*
+ * TODO
+ // Check to make sure that the SOAP Body and Timestamp were signed,
+ // and that the SOAP Body was encrypted
+ DefaultCryptoCoverageChecker coverageChecker = new DefaultCryptoCoverageChecker();
+ coverageChecker.setSignBody(true);
+ coverageChecker.setSignTimestamp(true);
+ coverageChecker.setEncryptBody(true);
+ bus.getInInterceptors().add(coverageChecker);
+ */
+
+ GreeterService service = new GreeterService();
+ Greeter port = service.getGreeterPort();
+
+ String[] names = new String[] {"Anne", "Bill", "Chris", "Sachin Tendulkar"};
+ // make a sequence of 4 invocations
+ for (int i = 0; i < 4; i++) {
+ System.out.println("Invoking greetMe...");
+ String response = port.greetMe(names[i]);
+ System.out.println("response: " + response + "\n");
+ }
+
+ // allow asynchronous resends to occur
+ Thread.sleep(30 * 1000);
+
+ if (port instanceof Closeable) {
+ ((Closeable)port).close();
+ }
+
+ bus.shutdown(true);
+
+ } catch (UndeclaredThrowableException ex) {
+ ex.getUndeclaredThrowable().printStackTrace();
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ } finally {
+ System.exit(0);
+ }
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/UTPasswordCallback.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/UTPasswordCallback.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/UTPasswordCallback.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/UTPasswordCallback.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,68 @@
+/**
+ * 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 demo.wssec.client;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.wss4j.common.ext.WSPasswordCallback;
+
+/**
+ */
+
+public class UTPasswordCallback implements CallbackHandler {
+
+ private Map<String, String> passwords =
+ new HashMap<String, String>();
+
+ public UTPasswordCallback() {
+ passwords.put("Alice", "ecilA");
+ passwords.put("abcd", "dcba");
+ passwords.put("clientx509v1", "storepassword");
+ passwords.put("serverx509v1", "storepassword");
+ }
+
+ /**
+ * Here, we attempt to get the password from the private
+ * alias/passwords map.
+ */
+ public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+ for (int i = 0; i < callbacks.length; i++) {
+ WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+ String pass = passwords.get(pc.getIdentifier());
+ if (pass != null) {
+ pc.setPassword(pass);
+ return;
+ }
+ }
+ }
+
+ /**
+ * Add an alias/password pair to the callback mechanism.
+ */
+ public void setAliasPassword(String alias, String password) {
+ passwords.put(alias, password);
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/wssec.xml
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/wssec.xml?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/wssec.xml (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/client/wssec.xml Thu Apr 11 10:01:40 2013
@@ -0,0 +1,45 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:cxf="http://cxf.apache.org/core"
+ xmlns:wsa="http://cxf.apache.org/ws/addressing"
+ xmlns:http="http://cxf.apache.org/transports/http/configuration"
+ xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+ xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager"
+ xsi:schemaLocation="
+ http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+ http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+ http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+ http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <cxf:bus>
+ <cxf:features>
+ <cxf:logging/>
+ <!--<wsa:addressing/>-->
+ </cxf:features>
+ </cxf:bus>
+
+ <http:conduit name="{http://cxf.apache.org/hello_world_soap_http}GreeterPort.http-conduit">
+ <http:client DecoupledEndpoint="http://localhost:9990/decoupled_endpoint"/>
+ </http:conduit>
+
+</beans>
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/ConciseFormatter.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/ConciseFormatter.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/ConciseFormatter.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/common/ConciseFormatter.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,33 @@
+/**
+ * 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 demo.wssec.common;
+
+import java.util.logging.LogRecord;
+import java.util.logging.SimpleFormatter;
+
+public class ConciseFormatter extends SimpleFormatter {
+ public synchronized String format(LogRecord record) {
+ String longForm = super.format(record);
+ String shortForm = longForm.indexOf("INFO: ") > 0
+ ? longForm.substring(longForm.indexOf("INFO: ") + 6)
+ : longForm;
+ return shortForm;
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/GreeterImpl.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/GreeterImpl.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/GreeterImpl.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/GreeterImpl.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,63 @@
+/**
+ * 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 demo.wssec.server;
+
+import java.util.logging.Logger;
+import org.apache.cxf.hello_world_soap_http.Greeter;
+
+@javax.jws.WebService(serviceName = "GreeterService",
+ portName = "GreeterPort",
+ endpointInterface = "org.apache.cxf.hello_world_soap_http.Greeter",
+ wsdlLocation = "file:./wsdl/hello_world_wssec.wsdl",
+ targetNamespace = "http://cxf.apache.org/hello_world_soap_http")
+
+public class GreeterImpl implements Greeter {
+
+ private static final Logger LOG =
+ Logger.getLogger(GreeterImpl.class.getPackage().getName());
+
+ /* (non-Javadoc)
+ * @see org.apache.cxf.hello_world_soap_http.Greeter#greetMe(java.lang.String)
+ */
+ public String greetMe(String me) {
+ LOG.info("Executing operation greetMe");
+ System.out.println("Executing operation greetMe");
+ System.out.println("Message received: " + me + "\n");
+ return "Hello " + me;
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cxf.hello_world_soap_http.Greeter#greetMeOneWay(java.lang.String)
+ */
+ public void greetMeOneWay(String me) {
+ LOG.info("Executing operation greetMeOneWay");
+ System.out.println("Executing operation greetMeOneWay\n");
+ System.out.println("Hello there " + me);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.cxf.hello_world_soap_http.Greeter#sayHi()
+ */
+ public String sayHi() {
+ LOG.info("Executing operation sayHi");
+ System.out.println("Executing operation sayHi\n");
+ return "Bonjour";
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/Server.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/Server.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/Server.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/Server.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,134 @@
+/**
+ * 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 demo.wssec.server;
+
+import java.net.URL;
+import java.util.Properties;
+
+import javax.xml.namespace.QName;
+import javax.xml.ws.Endpoint;
+
+import org.apache.cxf.Bus;
+import org.apache.cxf.BusFactory;
+import org.apache.cxf.bus.spring.SpringBusFactory;
+import org.apache.cxf.ws.security.wss4j.WSS4JStaxInInterceptor;
+import org.apache.cxf.ws.security.wss4j.WSS4JStaxOutInterceptor;
+import org.apache.wss4j.common.crypto.CryptoFactory;
+import org.apache.wss4j.stax.ext.WSSConstants;
+import org.apache.wss4j.stax.ext.WSSSecurityProperties;
+import org.apache.wss4j.stax.securityToken.WSSecurityTokenConstants;
+import org.apache.xml.security.stax.ext.SecurePart;
+import org.apache.xml.security.stax.ext.XMLSecurityConstants;
+
+public class Server {
+
+ protected Server() throws Exception {
+ System.out.println("Starting Server");
+
+
+ Object implementor = new GreeterImpl();
+ String address = "http://localhost:9000/SoapContext/GreeterPort";
+ Endpoint.publish(address, implementor);
+ }
+
+ public static void main(String args[]) throws Exception {
+
+ SpringBusFactory bf = new SpringBusFactory();
+ URL busFile = Server.class.getResource("wssec.xml");
+ Bus bus = bf.createBus(busFile.toString());
+
+ Properties decCryptoProperties =
+ CryptoFactory.getProperties("etc/Server_Decrypt.properties", Server.class.getClassLoader());
+ Properties sigVerCryptoProperties =
+ CryptoFactory.getProperties("etc/Server_SignVerf.properties", Server.class.getClassLoader());
+
+ WSSSecurityProperties properties = new WSSSecurityProperties();
+ properties.setOutAction(
+ new XMLSecurityConstants.Action[] {
+ WSSConstants.USERNAMETOKEN, WSSConstants.TIMESTAMP, WSSConstants.SIGNATURE,
+ WSSConstants.ENCRYPT
+ }
+ );
+ properties.setUsernameTokenPasswordType(WSSConstants.UsernameTokenPasswordType.PASSWORD_TEXT);
+ properties.setTokenUser("Alice");
+ properties.setSignatureUser("serverx509v1");
+ properties.setEncryptionUser("clientx509v1");
+
+ properties.setEncryptionCryptoProperties(sigVerCryptoProperties);
+ properties.setEncryptionKeyIdentifier(
+ WSSecurityTokenConstants.KeyIdentifier_IssuerSerial
+ );
+ properties.setEncryptionKeyTransportAlgorithm(
+ "http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p"
+ );
+ properties.addEncryptionPart(
+ new SecurePart(new QName(WSSConstants.NS_WSU10, "Timestamp"), SecurePart.Modifier.Element)
+ );
+ properties.addEncryptionPart(
+ new SecurePart(new QName(WSSConstants.NS_SOAP11, "Body"), SecurePart.Modifier.Content)
+ );
+
+ properties.setSignatureCryptoProperties(decCryptoProperties);
+ properties.setSignatureKeyIdentifier(
+ WSSecurityTokenConstants.KeyIdentifier_SecurityTokenDirectReference
+ );
+ properties.setSignatureAlgorithm("http://www.w3.org/2000/09/xmldsig#rsa-sha1");
+ properties.addSignaturePart(
+ new SecurePart(new QName(WSSConstants.NS_WSU10, "Timestamp"), SecurePart.Modifier.Element)
+ );
+ properties.addSignaturePart(
+ new SecurePart(new QName(WSSConstants.NS_SOAP11, "Body"), SecurePart.Modifier.Content)
+ );
+ properties.setCallbackHandler(new UTPasswordCallback());
+
+ WSS4JStaxOutInterceptor ohandler = new WSS4JStaxOutInterceptor(properties);
+ bus.getOutInterceptors().add(ohandler);
+
+ WSSSecurityProperties inProperties = new WSSSecurityProperties();
+ inProperties.setCallbackHandler(new UTPasswordCallback());
+ inProperties.setDecryptionCryptoProperties(decCryptoProperties);
+ inProperties.setSignatureVerificationCryptoProperties(sigVerCryptoProperties);
+
+ WSS4JStaxInInterceptor inhandler = new WSS4JStaxInInterceptor(inProperties);
+ bus.getInInterceptors().add(inhandler);
+
+ /*
+ * TODO
+ // Check to make sure that the SOAP Body and Timestamp were signed,
+ // and that the SOAP Body was encrypted
+ DefaultCryptoCoverageChecker coverageChecker = new DefaultCryptoCoverageChecker();
+ coverageChecker.setSignBody(true);
+ coverageChecker.setSignTimestamp(true);
+ coverageChecker.setEncryptBody(true);
+ bus.getInInterceptors().add(coverageChecker);
+ */
+
+ BusFactory.setDefaultBus(bus);
+
+ new Server();
+ System.out.println("Server ready...");
+
+ Thread.sleep(5 * 60 * 1000);
+
+ bus.shutdown(true);
+ System.out.println("Server exiting");
+ System.exit(0);
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/UTPasswordCallback.java
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/UTPasswordCallback.java?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/UTPasswordCallback.java (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/UTPasswordCallback.java Thu Apr 11 10:01:40 2013
@@ -0,0 +1,68 @@
+/**
+ * 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 demo.wssec.server;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.wss4j.common.ext.WSPasswordCallback;
+
+/**
+ */
+
+public class UTPasswordCallback implements CallbackHandler {
+
+ private Map<String, String> passwords =
+ new HashMap<String, String>();
+
+ public UTPasswordCallback() {
+ passwords.put("Alice", "ecilA");
+ passwords.put("abcd", "dcba");
+ passwords.put("clientx509v1", "storepassword");
+ passwords.put("serverx509v1", "storepassword");
+ }
+
+ /**
+ * Here, we attempt to get the password from the private
+ * alias/passwords map.
+ */
+ public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
+ for (int i = 0; i < callbacks.length; i++) {
+ WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
+
+ String pass = passwords.get(pc.getIdentifier());
+ if (pass != null) {
+ pc.setPassword(pass);
+ return;
+ }
+ }
+ }
+
+ /**
+ * Add an alias/password pair to the callback mechanism.
+ */
+ public void setAliasPassword(String alias, String password) {
+ passwords.put(alias, password);
+ }
+}
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/wssec.xml
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/wssec.xml?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/wssec.xml (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/java/demo/wssec/server/wssec.xml Thu Apr 11 10:01:40 2013
@@ -0,0 +1,45 @@
+<?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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:cxf="http://cxf.apache.org/core"
+ xmlns:wsa="http://cxf.apache.org/ws/addressing"
+ xmlns:http="http://cxf.apache.org/transports/http/configuration"
+ xmlns:wsrm-policy="http://schemas.xmlsoap.org/ws/2005/02/rm/policy"
+ xmlns:wsrm-mgr="http://cxf.apache.org/ws/rm/manager"
+ xsi:schemaLocation="
+ http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+ http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd
+ http://schemas.xmlsoap.org/ws/2005/02/rm/policy http://schemas.xmlsoap.org/ws/2005/02/rm/wsrm-policy.xsd
+ http://cxf.apache.org/ws/rm/manager http://cxf.apache.org/schemas/configuration/wsrm-manager.xsd
+ http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+ <cxf:bus>
+ <cxf:features>
+ <cxf:logging/>
+ <!--<wsa:addressing/>-->
+ </cxf:features>
+ </cxf:bus>
+
+ <http:conduit name="{http://cxf.apache.org/hello_world_soap_http}GreeterPort.http-conduit">
+ <http:client DecoupledEndpoint="http://localhost:9990/decoupled_endpoint"/>
+ </http:conduit>
+
+</beans>
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Encrypt.properties
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Encrypt.properties?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Encrypt.properties (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Encrypt.properties Thu Apr 11 10:01:40 2013
@@ -0,0 +1,5 @@
+org.apache.wss4j.crypto.provider=org.apache.wss4j.common.crypto.Merlin
+org.apache.wss4j.crypto.merlin.keystore.type=jks
+org.apache.wss4j.crypto.merlin.keystore.password=storepassword
+org.apache.wss4j.crypto.merlin.keystore.alias=serverx509v1
+org.apache.wss4j.crypto.merlin.keystore.file=keystore/client-truststore.jks
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Sign.properties
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Sign.properties?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Sign.properties (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Client_Sign.properties Thu Apr 11 10:01:40 2013
@@ -0,0 +1,6 @@
+org.apache.wss4j.crypto.provider=org.apache.wss4j.common.crypto.Merlin
+org.apache.wss4j.crypto.merlin.keystore.type=jks
+org.apache.wss4j.crypto.merlin.keystore.password=storepassword
+org.apache.wss4j.crypto.merlin.keystore.alias=clientx509v1
+org.apache.wss4j.crypto.merlin.keystore.file=keystore/client-keystore.jks
+
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_Decrypt.properties
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_Decrypt.properties?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_Decrypt.properties (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_Decrypt.properties Thu Apr 11 10:01:40 2013
@@ -0,0 +1,5 @@
+org.apache.wss4j.crypto.provider=org.apache.wss4j.common.crypto.Merlin
+org.apache.wss4j.crypto.merlin.keystore.type=jks
+org.apache.wss4j.crypto.merlin.keystore.password=storepassword
+org.apache.wss4j.crypto.merlin.keystore.alias=serverx509v1
+org.apache.wss4j.crypto.merlin.keystore.file=keystore/server-keystore.jks
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_SignVerf.properties
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_SignVerf.properties?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_SignVerf.properties (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/etc/Server_SignVerf.properties Thu Apr 11 10:01:40 2013
@@ -0,0 +1,5 @@
+org.apache.wss4j.crypto.provider=org.apache.wss4j.common.crypto.Merlin
+org.apache.wss4j.crypto.merlin.keystore.type=jks
+org.apache.wss4j.crypto.merlin.keystore.password=storepassword
+org.apache.wss4j.crypto.merlin.keystore.alias=clientx509v1
+org.apache.wss4j.crypto.merlin.keystore.file=keystore/server-truststore.jks
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-keystore.jks
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-keystore.jks?rev=1466819&view=auto
==============================================================================
Files cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-keystore.jks (added) and cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-keystore.jks Thu Apr 11 10:01:40 2013 differ
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-truststore.jks
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-truststore.jks?rev=1466819&view=auto
==============================================================================
Files cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-truststore.jks (added) and cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/client-truststore.jks Thu Apr 11 10:01:40 2013 differ
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-keystore.jks
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-keystore.jks?rev=1466819&view=auto
==============================================================================
Files cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-keystore.jks (added) and cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-keystore.jks Thu Apr 11 10:01:40 2013 differ
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-truststore.jks
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-truststore.jks?rev=1466819&view=auto
==============================================================================
Files cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-truststore.jks (added) and cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/src/main/resources/keystore/server-truststore.jks Thu Apr 11 10:01:40 2013 differ
Added: cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/hello_world_wssec.wsdl
URL: http://svn.apache.org/viewvc/cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/hello_world_wssec.wsdl?rev=1466819&view=auto
==============================================================================
--- cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/hello_world_wssec.wsdl (added)
+++ cxf/branches/wss4j2.0-port/distribution/src/main/release/samples/ws_security/stax_sign_enc/wsdl/hello_world_wssec.wsdl Thu Apr 11 10:01:40 2013
@@ -0,0 +1,135 @@
+<?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.
+-->
+<wsdl:definitions name="HelloWorld" targetNamespace="http://cxf.apache.org/hello_world_soap_http"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://cxf.apache.org/hello_world_soap_http"
+ xmlns:x1="http://cxf.apache.org/hello_world_soap_http/types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+ <schema targetNamespace="http://cxf.apache.org/hello_world_soap_http/types"
+ xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
+ <element name="sayHi">
+ <complexType/>
+ </element>
+ <element name="sayHiResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMe">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeOneWay">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+
+ <wsdl:message name="sayHiRequest">
+ <wsdl:part element="x1:sayHi" name="in"/>
+ </wsdl:message>
+ <wsdl:message name="sayHiResponse">
+ <wsdl:part element="x1:sayHiResponse" name="out"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeRequest">
+ <wsdl:part element="x1:greetMe" name="in"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeResponse">
+ <wsdl:part element="x1:greetMeResponse" name="out"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeOneWayRequest">
+ <wsdl:part element="x1:greetMeOneWay" name="in"/>
+ </wsdl:message>
+
+ <wsdl:portType name="Greeter">
+ <wsdl:operation name="sayHi">
+ <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+ <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMe">
+ <wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/>
+ <wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMeOneWay">
+ <wsdl:input message="tns:greetMeOneWayRequest" name="greetMeOneWayRequest"/>
+ </wsdl:operation>
+
+ </wsdl:portType>
+
+ <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+ <wsdl:operation name="sayHi">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="sayHiRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="sayHiResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMe">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="greetMeRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="greetMeResponse">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+
+ <wsdl:operation name="greetMeOneWay">
+ <soap:operation soapAction="" style="document"/>
+ <wsdl:input name="greetMeOneWayRequest">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ </wsdl:operation>
+ </wsdl:binding>
+
+ <wsdl:service name="GreeterService">
+ <wsdl:port binding="tns:Greeter_SOAPBinding" name="GreeterPort">
+ <soap:address location="http://localhost:9000/SoapContext/GreeterPort"/>
+ <wswa:UsingAddressing xmlns:wswa="http://www.w3.org/2005/02/addressing/wsdl"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
+