Merge changes from trunk.
diff --git a/release-docs/LICENSE.txt b/LICENSE
similarity index 100%
rename from release-docs/LICENSE.txt
rename to LICENSE
diff --git a/release-docs/NOTICE.txt b/NOTICE
similarity index 100%
rename from release-docs/NOTICE.txt
rename to NOTICE
diff --git a/release-docs/README.txt b/README
similarity index 100%
rename from release-docs/README.txt
rename to README
diff --git a/apidocs/pom.xml b/apidocs/pom.xml
new file mode 100644
index 0000000..8a7a60c
--- /dev/null
+++ b/apidocs/pom.xml
@@ -0,0 +1,117 @@
+<?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.
+ -->
+<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>
+ <parent>
+ <groupId>org.apache.rampart</groupId>
+ <artifactId>rampart-project</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>apidocs</artifactId>
+ <name>Javadoc</name>
+ <packaging>pom</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-policy</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-trust</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>site-javadoc</id>
+ <phase>site</phase>
+ <goals>
+ <goal>javadoc-no-fork</goal>
+ </goals>
+ <configuration>
+ <reportOutputDirectory>${project.reporting.outputDirectory}</reportOutputDirectory>
+ <destDir>.</destDir>
+ </configuration>
+ </execution>
+ <execution>
+ <id>dist-javadoc</id>
+ <phase>prepare-package</phase>
+ <goals>
+ <goal>javadoc-no-fork</goal>
+ </goals>
+ <configuration>
+ <reportOutputDirectory>${project.build.directory}/apidocs</reportOutputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <includeDependencySources>true</includeDependencySources>
+ <dependencySourceIncludes>
+ <dependencySourceInclude>${project.groupId}:*</dependencySourceInclude>
+ </dependencySourceIncludes>
+ <!-- There are no other modules that generate Javadoc we can link to -->
+ <detectOfflineLinks>false</detectOfflineLinks>
+ <breakiterator>true</breakiterator>
+ <!-- The notimestamp, windowtitle and bottom parameters are chosen to minimize the number
+ of changes between releases (to avoid mass changes when committing the site for a new release) -->
+ <notimestamp>true</notimestamp>
+ <windowtitle>Apache Rampart</windowtitle>
+ <bottom><![CDATA[Copyright © {organizationName}. All Rights Reserved.]]></bottom>
+ <!-- doctitle only appears in the summary and we should include the version there -->
+ <doctitle>Apache Rampart ${project.version}</doctitle>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>src/main/assembly/apidocs.xml</descriptor>
+ </descriptors>
+ <appendAssemblyId>false</appendAssemblyId>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/apidocs/src/main/assembly/apidocs.xml b/apidocs/src/main/assembly/apidocs.xml
new file mode 100644
index 0000000..4c4b6f1
--- /dev/null
+++ b/apidocs/src/main/assembly/apidocs.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0"?>
+<!--
+ ~ 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.
+ -->
+<assembly>
+ <id>javadoc</id>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <fileSets>
+ <fileSet>
+ <directory>${project.build.directory}/apidocs</directory>
+ <outputDirectory>.</outputDirectory>
+ </fileSet>
+ </fileSets>
+</assembly>
diff --git a/build.xml b/build.xml
deleted file mode 100644
index e599718..0000000
--- a/build.xml
+++ /dev/null
@@ -1,181 +0,0 @@
-<?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.
- -->
-
-<project name="Apache Rampart release build" default="dist">
-
- <property name="rampart.version" value="SNAPSHOT"/>
- <property name="rampart.bin.dist" value="rampart"/>
- <property name="rampart.src.dist" value="rampart-src"/>
- <property name="rampart.docs.dist" value="rampart-docs"/>
-
- <property name="dir.dist" value="dist"/>
- <property name="dir.dist.bin" value="${dir.dist}/bin/${rampart.bin.dist}-${rampart.version}"/>
- <property name="dir.dist.src" value="${dir.dist}/src/${rampart.src.dist}-${rampart.version}"/>
- <property name="dir.dist.docs" value="${dir.dist}/docs/${rampart.docs.dist}-${rampart.version}"/>
-
- <property name="dir.mvn2.repo" value="${user.home}/.m2/repository"/>
-
- <property name="version.bcprov13" value="132"/>
- <property name="version.bcprov15" value="132"/>
-
- <property name="version.xmlsec" value="1.4.0"/>
- <property name="version.opensaml" value="1.1"/>
- <property name="version.wss4j" value="SNAPSHOT"/>
-
-
- <condition property="jdk14.present">
- <equals arg1="${ant.java.version}" arg2="1.4"/>
- </condition>
-
- <target name="init">
- <mkdir dir="${dir.dist}"/>
- </target>
-
- <target name="dist" depends="clean, bin-dist, src-dist, docs-dist">
- <copy todir="${dir.dist}" file="modules/rampart-mar/target/rampart-${rampart.version}.mar"/>
- <copy todir="${dir.dist}" file="modules/rampart-trust-mar/target/rahas-${rampart.version}.mar"/>
- <copy todir="${dir.dist}" file="modules/rampart-core/target/rampart-core-${rampart.version}.jar"/>
- <copy todir="${dir.dist}" file="modules/rampart-policy/target/rampart-policy-${rampart.version}.jar"/>
- <copy todir="${dir.dist}" file="modules/rampart-trust/target/rampart-trust-${rampart.version}.jar"/>
- </target>
-
- <target name="bin-dist" depends="init">
-
- <mkdir dir="${dir.dist.bin}"/>
-
- <copy todir="${dir.dist.bin}">
- <fileset dir="release-docs">
- </fileset>
- </copy>
-
- <!-- Modules -->
- <echo>Copying mars in to modules</echo>
- <copy todir="${dir.dist.bin}" file="modules/rampart-mar/target/rampart-${rampart.version}.mar"/>
- <copy todir="${dir.dist.bin}" file="modules/rampart-trust-mar/target/rahas-${rampart.version}.mar"/>
-
- <!-- All dep jars -->
- <echo>Copying dependencies into lib</echo>
- <mkdir dir="${dir.dist.bin}/lib"/>
-
- <copy todir="${dir.dist.bin}/lib" file="modules/rampart-core/target/rampart-core-${rampart.version}.jar"/>
- <copy todir="${dir.dist.bin}/lib" file="modules/rampart-policy/target/rampart-policy-${rampart.version}.jar"/>
- <copy todir="${dir.dist.bin}/lib" file="modules/rampart-trust/target/rampart-trust-${rampart.version}.jar"/>
- <copy todir="${dir.dist.bin}/lib" file="${dir.mvn2.repo}/org/apache/santuario/xmlsec/${version.xmlsec}/xmlsec-${version.xmlsec}.jar"/>
- <copy todir="${dir.dist.bin}/lib" file="${dir.mvn2.repo}/opensaml/opensaml/${version.opensaml}/opensaml-${version.opensaml}.jar"/>
- <copy todir="${dir.dist.bin}/lib" file="${dir.mvn2.repo}/org/apache/ws/security/wss4j/${version.wss4j}/wss4j-${version.wss4j}.jar"/>
- <antcall target="copy-bc-jar-14" />
- <antcall target="copy-bc-jar-15" />
-
- <echo>Copying samples</echo>
- <!-- copy samples -->
- <mkdir dir="${dir.dist.bin}/samples"/>
-
- <copy todir="${dir.dist.bin}/samples">
- <fileset dir="modules/rampart-samples/">
- </fileset>
- </copy>
-
- <zip destfile="${dir.dist}/${rampart.bin.dist}-${rampart.version}.zip">
- <zipfileset dir="${dir.dist.bin}/../"/>
- </zip>
-
- <delete dir="${dir.dist.bin}/../"/>
-
- </target>
-
- <target name="copy-bc-jar-14" if="${jdk14.present}">
- <copy todir="${dir.dist.bin}/lib" file="${dir.mvn2.repo}/bouncycastle/bcprov-jdk13/${version.bcprov13}/bcprov-jdk13-${version.bcprov13}.jar"/>
- </target>
-
- <target name="copy-bc-jar-15" unless="${jdk14.present}">
- <copy todir="${dir.dist.bin}/lib" file="${dir.mvn2.repo}/bouncycastle/bcprov-jdk15/${version.bcprov15}/bcprov-jdk15-${version.bcprov15}.jar"/>
- </target>
-
- <target name="src-dist" depends="init">
-
- <mkdir dir="${dir.dist.src}"/>
-
- <copy todir="${dir.dist.src}">
- <fileset dir="release-docs">
- <exclude name="build.xml"/>
- <exclude name="README.txt"/>
- </fileset>
- </copy>
-
- <copy todir="${dir.dist.src}">
- <fileset dir="modules">
- <include name="rampart-core/**/*"/>
- <include name="rampart-policy/**/*"/>
- <include name="rampart-trust/**/*"/>
- <include name="rampart-samples/**/*"/>
- <exclude name=".svn"/>
- </fileset>
- </copy>
-
- <zip destfile="${dir.dist}/${rampart.src.dist}-${rampart.version}.zip">
- <zipfileset dir="${dir.dist.src}/../"/>
- </zip>
-
- <delete dir="${dir.dist.src}/../"/>
- </target>
-
- <target name="docs-dist">
-
- <mkdir dir="${dir.dist.docs}"/>
-
- <copy todir="${dir.dist.docs}">
- <fileset dir="release-docs">
- <exclude name="build.xml"/>
- <exclude name="README.txt"/>
- </fileset>
- </copy>
-
- <mkdir dir="${dir.dist.docs}/core"/>
- <mkdir dir="${dir.dist.docs}/policy"/>
- <mkdir dir="${dir.dist.docs}/trust"/>
-
- <copy todir="${dir.dist.docs}/core">
- <fileset dir="modules/rampart-core/target/site/apidocs/">
- </fileset>
- </copy>
-
- <copy todir="${dir.dist.docs}/policy">
- <fileset dir="modules/rampart-policy/target/site/apidocs/">
- </fileset>
- </copy>
-
- <copy todir="${dir.dist.docs}/trust">
- <fileset dir="modules/rampart-trust/target/site/apidocs/">
- </fileset>
- </copy>
-
- <zip destfile="${dir.dist}/${rampart.docs.dist}-${rampart.version}.zip">
- <zipfileset dir="${dir.dist.docs}/../"/>
- </zip>
-
- <delete dir="${dir.dist.docs}/../"/>
- </target>
-
- <target name="clean">
- <delete dir="${dir.dist}"/>
- </target>
-
-</project>
diff --git a/code-coverage/pom.xml b/code-coverage/pom.xml
new file mode 100644
index 0000000..568e9fc
--- /dev/null
+++ b/code-coverage/pom.xml
@@ -0,0 +1,207 @@
+<?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.
+ -->
+<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>
+ <parent>
+ <groupId>org.apache.rampart</groupId>
+ <artifactId>rampart-project</artifactId>
+ <version>1.8.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+ <artifactId>code-coverage</artifactId>
+ <name>Code Coverage Report</name>
+ <packaging>pom</packaging>
+ <dependencies>
+ <!--
+ For each project that should appear in the coverage report, add the main artifact and the source JAR as dependency.
+ For each project that contributes code coverage, add a dependency to the jacoco.exec file
+ (i.e. classifier=jacoco and type=exec).
+ -->
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-core</artifactId>
+ <version>${project.version}</version>
+ <classifier>sources</classifier>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-core</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-policy</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-policy</artifactId>
+ <version>${project.version}</version>
+ <classifier>sources</classifier>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-policy</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-trust</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-trust</artifactId>
+ <version>${project.version}</version>
+ <classifier>sources</classifier>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-trust</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-integration</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-tests</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-sample</artifactId>
+ <version>${project.version}</version>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-jacoco-exec</id>
+ <phase>site</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/jacoco/exec</outputDirectory>
+ <includeClassifiers>jacoco</includeClassifiers>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-sources</id>
+ <phase>site</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/jacoco/sources</outputDirectory>
+ <includeClassifiers>sources</includeClassifiers>
+ </configuration>
+ </execution>
+ <execution>
+ <id>copy-classes</id>
+ <phase>site</phase>
+ <goals>
+ <goal>unpack-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/jacoco/classes</outputDirectory>
+ <includeTypes>jar</includeTypes>
+ <excludeClassifiers>sources</excludeClassifiers>
+ <excludeTransitive>true</excludeTransitive>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>jacoco-report</id>
+ <phase>site</phase>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ <configuration>
+ <target>
+ <taskdef name="report" classname="org.jacoco.ant.ReportTask" />
+ <report>
+ <executiondata>
+ <fileset dir="${project.build.directory}/jacoco/exec" />
+ </executiondata>
+ <structure name="Coverage Report">
+ <classfiles>
+ <fileset dir="${project.build.directory}/jacoco/classes" />
+ </classfiles>
+ <sourcefiles>
+ <fileset dir="${project.build.directory}/jacoco/sources" />
+ </sourcefiles>
+ </structure>
+ <html destdir="${project.reporting.outputDirectory}" />
+ </report>
+ </target>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.jacoco</groupId>
+ <artifactId>org.jacoco.ant</artifactId>
+ <version>${jacoco.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
diff --git a/etc/dist.py b/etc/dist.py
new file mode 100644
index 0000000..2f17490
--- /dev/null
+++ b/etc/dist.py
@@ -0,0 +1,45 @@
+#
+# 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.
+#
+
+from os import *
+from os.path import *
+from shutil import copyfile
+from shutil import rmtree
+from subprocess import call
+from xml.etree.ElementTree import parse
+
+root_dir = realpath(join(dirname(__file__), ".."))
+pom = parse(join(root_dir, "pom.xml"))
+release = pom.getroot().find("{http://maven.apache.org/POM/4.0.0}version").text
+dist_root = join(root_dir, "target", "dist")
+dist_dir = join(dist_root, release)
+
+if exists(dist_root):
+ rmtree(dist_root)
+call(["svn", "checkout", "https://dist.apache.org/repos/dist/dev/axis/axis2/java/rampart/", dist_root])
+mkdir(dist_dir)
+for classifier in [ "bin", "src" ]:
+ for suffix in [ "zip", "zip.asc", "zip.md5", "zip.sha1" ]:
+ file = "rampart-dist-" + release + "-" + classifier + "." + suffix
+ copyfile(join(root_dir, "modules", "distribution", "target", file), join(dist_dir, file))
+call(["svn", "add", dist_dir])
+if release.endswith("-SNAPSHOT"):
+ print "Skipping commit because version is a snapshot."
+else:
+ call(["svn", "commit", dist_dir])
diff --git a/modules/distribution/bin.xml b/modules/distribution/bin.xml
index be4c560..eb9be75 100644
--- a/modules/distribution/bin.xml
+++ b/modules/distribution/bin.xml
@@ -1,23 +1,23 @@
<assembly>
<id>bin</id>
- <includeBaseDirectory>false</includeBaseDirectory>
+ <baseDirectory>rampart-${version}</baseDirectory>
<formats>
<format>zip</format>
</formats>
<dependencySets>
<dependencySet>
- <outputDirectory>${dist.dir}/modules</outputDirectory>
+ <outputDirectory>modules</outputDirectory>
<includes>
<include>org.apache.rampart:rampart:mar</include>
<include>org.apache.rampart:rahas:mar</include>
</includes>
</dependencySet>
<dependencySet>
- <outputDirectory>${dist.dir}/lib</outputDirectory>
+ <outputDirectory>lib</outputDirectory>
<includes>
<include>org.apache.santuario:xmlsec:jar</include>
<include>org.apache.ws.security:wss4j:jar</include>
- <include>bouncycastle:bcprov-jdk15:jar</include>
+ <include>org.bouncycastle:bcprov-jdk15on:jar</include>
<include>org.apache.rampart:rampart-core:jar</include>
<include>org.apache.rampart:rampart-policy:jar</include>
<include>org.apache.rampart:rampart-trust:jar</include>
@@ -37,46 +37,48 @@
<include>org.owasp.esapi:esapi:jar</include>
</includes>
</dependencySet>
+ <dependencySet>
+ <outputDirectory>docs/apidocs</outputDirectory>
+ <includes>
+ <include>*:apidocs:zip</include>
+ </includes>
+ <useProjectArtifact>false</useProjectArtifact>
+ <unpack>true</unpack>
+ </dependencySet>
</dependencySets>
<fileSets>
<fileSet>
- <directory>target/apidocs</directory>
- <outputDirectory>${dist.dir}/docs/apidocs</outputDirectory>
- </fileSet>
- <fileSet>
- <directory>../documentation/target/site</directory>
- <outputDirectory>${dist.dir}/docs</outputDirectory>
- </fileSet>
- <fileSet>
<directory>../rampart-samples</directory>
- <outputDirectory>${dist.dir}/samples</outputDirectory>
+ <outputDirectory>samples</outputDirectory>
+ <excludes>
+ <exclude>pom.xml</exclude>
+ <exclude>target/**</exclude>
+ </excludes>
</fileSet>
<fileSet>
<directory>../../legal</directory>
- <outputDirectory>${dist.dir}/lib</outputDirectory>
+ <outputDirectory>lib</outputDirectory>
+ </fileSet>
+ <fileSet>
+ <directory>src/main/files</directory>
+ <outputDirectory>.</outputDirectory>
</fileSet>
</fileSets>
<files>
<file>
- <source>../../release-docs/README.txt</source>
- <outputDirectory>${dist.dir}</outputDirectory>
- <destName>README</destName>
+ <source>../../README</source>
<filtered>true</filtered>
</file>
<file>
- <source>../../release-docs/LICENSE.txt</source>
- <outputDirectory>${dist.dir}</outputDirectory>
- <destName>LICENSE</destName>
+ <source>../../LICENSE</source>
</file>
<file>
- <source>../../release-docs/NOTICE.txt</source>
- <outputDirectory>${dist.dir}</outputDirectory>
- <destName>NOTICE</destName>
+ <source>../../NOTICE</source>
</file>
<file>
- <source>../../release-docs/release-notes.html</source>
- <outputDirectory>${dist.dir}</outputDirectory>
+ <source>../../src/site/markdown/release-notes/${release_version}.md</source>
+ <destName>RELEASE-NOTE</destName>
</file>
</files>
diff --git a/modules/distribution/pom.xml b/modules/distribution/pom.xml
index c4120ab..5cad000 100644
--- a/modules/distribution/pom.xml
+++ b/modules/distribution/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<modelVersion>4.0.0</modelVersion>
@@ -36,42 +36,8 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
- <executions>
- <execution>
- <id>build-javadoc</id>
- <phase>package</phase>
- <configuration>
- <tasks>
- <javadoc packagenames="org.apache.rampart.*,org.apache.rahas.*" destdir="target/apidocs" author="true" breakiterator="true" version="true" use="true" windowtitle="Apache Rampart API">
-
- <sourcepath>
- <dirset dir="../..">
- <include name="**/rampart-core/src/main/java" />
- <include name="**/rampart-policy/src/main/java" />
- <include name="**/rampart-trust/src/main/java" />
- </dirset>
- </sourcepath>
-
- <classpath refid="maven.dependency.classpath" />
- <classpath refid="maven.compile.classpath" />
- <classpath refid="maven.runtime.classpath" />
-
- </javadoc>
- </tasks>
- </configuration>
- <goals>
- <goal>run</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <groupId>org.codehaus.gmaven</groupId>
- <artifactId>gmaven-plugin</artifactId>
- <version>1.2</version>
+ <groupId>org.codehaus.gmavenplus</groupId>
+ <artifactId>gmavenplus-plugin</artifactId>
<executions>
<execution>
<id>generate-timestamp</id>
@@ -80,11 +46,14 @@
<goal>execute</goal>
</goals>
<configuration>
- <source>
- import java.util.Date
- import java.text.MessageFormat
- project.properties['buildTimestamp'] = MessageFormat.format("{0,date,MMM dd, yyyy}", new Date())
- </source>
+ <scripts>
+ <script>
+ import java.util.Date
+ import java.text.MessageFormat
+ project.properties['buildTimestamp'] = MessageFormat.format("{0,date,MMM dd, yyyy}", new Date())
+ project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
+ </script>
+ </scripts>
</configuration>
</execution>
</executions>
@@ -108,6 +77,24 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>net.ju-n.maven.plugins</groupId>
+ <artifactId>checksum-maven-plugin</artifactId>
+ <version>1.2</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>artifacts</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
</plugins>
</build>
@@ -140,14 +127,20 @@
<version>${project.version}</version>
</dependency>
<dependency>
- <groupId>bouncycastle</groupId>
- <artifactId>bcprov-jdk15</artifactId>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
<version>${bcprov.jdk15.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jcl</artifactId>
</dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>apidocs</artifactId>
+ <version>${project.version}</version>
+ <type>zip</type>
+ </dependency>
</dependencies>
</project>
diff --git a/modules/distribution/src.xml b/modules/distribution/src.xml
index 9c3575c..215f6a5 100644
--- a/modules/distribution/src.xml
+++ b/modules/distribution/src.xml
@@ -1,6 +1,6 @@
<assembly>
<id>src</id>
- <includeBaseDirectory>false</includeBaseDirectory>
+ <baseDirectory>rampart-src-${project.version}</baseDirectory>
<formats>
<format>zip</format>
</formats>
@@ -8,36 +8,56 @@
<fileSets>
<fileSet>
<directory>../..</directory>
- <outputDirectory>rampart-src-${project.version}</outputDirectory>
- <includes>
- <include>**/modules/**/*</include>
- <include>**/pom.xml</include>
- <include>src</include>
- <include>release-docs/*</include>
- </includes>
+ <useDefaultExcludes>true</useDefaultExcludes>
<excludes>
- <exclude>**/target</exclude>
- <exclude>**/target/**/*</exclude>
- <exclude>**/build</exclude>
- <exclude>**/build/**/*</exclude>
- <exclude>**/.settings</exclude>
- <exclude>**/.classpath</exclude>
- <exclude>**/.project</exclude>
- <exclude>**/.wtpmodules</exclude>
- <exclude>**/*.iml</exclude>
- <exclude>**/.settings</exclude>
- <exclude>**/.settings/**/*</exclude>
- <exclude>**/.svn/**</exclude>
- <exclude>release-docs/README.txt</exclude>
+ <!-- build output -->
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/).*${project.build.directory}.*]</exclude>
+
+ <!-- NOTE: Most of the following excludes should not be required
+ if the standard release process is followed. This is because the
+ release plugin checks out project sources into a location like
+ target/checkout, then runs the build from there. The result is
+ a source-release archive that comes from a pretty clean directory
+ structure.
+
+ HOWEVER, if the release plugin is configured to run extra goals
+ or generate a project website, it's definitely possible that some
+ of these files will be present. So, it's safer to exclude them.
+ -->
+
+ <!-- IDEs -->
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?maven-eclipse\.xml]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.project]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.classpath]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iws]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.idea(/.*)?]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?out(/.*)?]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.ipr]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?[^/]*\.iml]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.settings(/.*)?]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.externalToolBuilders(/.*)?]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.deployables(/.*)?]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?\.wtpmodules(/.*)?]</exclude>
+
+ <!-- misc -->
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?cobertura\.ser]</exclude>
+
+ <!-- release-plugin temp files -->
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?pom\.xml\.releaseBackup]</exclude>
+ <exclude>%regex[(?!((?!${project.build.directory}/)[^/]+/)*src/)(.*/)?release\.properties]</exclude>
+
+ <exclude>README</exclude>
</excludes>
</fileSet>
- <fileSet>
- <directory>../..</directory>
- <outputDirectory>rampart-src-${project.version}</outputDirectory>
- <filtered>true</filtered>
- <includes>
- <include>release-docs/README.txt</include>
- </includes>
- </fileSet>
</fileSets>
+ <files>
+ <file>
+ <source>../../README</source>
+ <filtered>true</filtered>
+ </file>
+ <file>
+ <source>../../src/site/markdown/release-notes/${release_version}.md</source>
+ <destName>RELEASE-NOTE</destName>
+ </file>
+ </files>
</assembly>
diff --git a/release-docs/build.xml b/modules/distribution/src/main/files/build.xml
similarity index 96%
rename from release-docs/build.xml
rename to modules/distribution/src/main/files/build.xml
index 7a2dbd5..4740d70 100644
--- a/release-docs/build.xml
+++ b/modules/distribution/src/main/files/build.xml
@@ -19,7 +19,7 @@
<project basedir="." default="setup">
<property name="lib.dir" value="lib"/>
- <property name="modules.dir" value="."/>
+ <property name="modules.dir" value="modules"/>
<property environment="env"/>
diff --git a/modules/documentation/pom.xml b/modules/documentation/pom.xml
deleted file mode 100644
index dba341c..0000000
--- a/modules/documentation/pom.xml
+++ /dev/null
@@ -1,52 +0,0 @@
-<?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.
- -->
-
-<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">
-
- <parent>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
- <relativePath>../../pom.xml</relativePath>
- </parent>
- <modelVersion>4.0.0</modelVersion>
- <artifactId>rampart-documentation</artifactId>
- <packaging>pom</packaging>
- <name>Rampart - Documentation</name>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <inherited>false</inherited>
- <executions>
- <execution>
- <phase>install</phase>
- <goals>
- <goal>site</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
-</project>
diff --git a/modules/documentation/src/site/resources/css/maven-base.css b/modules/documentation/src/site/resources/css/maven-base.css
deleted file mode 100755
index b47862a..0000000
--- a/modules/documentation/src/site/resources/css/maven-base.css
+++ /dev/null
@@ -1,143 +0,0 @@
-body {
- margin: 0px;
- padding: 0px;
-}
-img {
- border:none;
-}
-table {
- padding:0px;
- width: 100%;
- margin-left: -2px;
- margin-right: -2px;
-}
-acronym {
- cursor: help;
- border-bottom: 1px dotted #feb;
-}
-table.bodyTable th, table.bodyTable td {
- padding: 2px 4px 2px 4px;
- vertical-align: top;
-}
-div.clear{
- clear:both;
- visibility: hidden;
-}
-div.clear hr{
- display: none;
-}
-#bannerLeft, #bannerRight {
- font-size: xx-large;
- font-weight: bold;
-}
-#bannerLeft img, #bannerRight img {
- margin: 0px;
-}
-.xleft, #bannerLeft img {
- float:left;
-}
-.xright, #bannerRight {
- float:right;
-}
-#banner {
- padding: 0px;
-}
-#banner img {
- border: none;
-}
-#breadcrumbs {
- padding: 3px 10px 3px 10px;
-}
-#leftColumn {
- width: 170px;
- float:left;
- overflow: auto;
-}
-#bodyColumn {
- margin-right: 1.5em;
- margin-left: 197px;
-}
-#legend {
- padding: 8px 0 8px 0;
-}
-#navcolumn {
- padding: 8px 4px 0 8px;
-}
-#navcolumn h5 {
- margin: 0;
- padding: 0;
- font-size: small;
-}
-#navcolumn ul {
- margin: 0;
- padding: 0;
- font-size: small;
-}
-#navcolumn li {
- list-style-type: none;
- background-image: none;
- background-repeat: no-repeat;
- background-position: 0 0.4em;
- padding-left: 16px;
- list-style-position: outside;
- line-height: 1.2em;
- font-size: smaller;
-}
-#navcolumn li.expanded {
- background-image: url(../images/expanded.gif);
-}
-#navcolumn li.collapsed {
- background-image: url(../images/collapsed.gif);
-}
-#poweredBy {
- text-align: center;
-}
-#navcolumn img {
- margin-top: 10px;
- margin-bottom: 3px;
-}
-#poweredBy img {
- display:block;
- margin: 20px 0 20px 17px;
-}
-#search img {
- margin: 0px;
- display: block;
-}
-#search #q, #search #btnG {
- border: 1px solid #999;
- margin-bottom:10px;
-}
-#search form {
- margin: 0px;
-}
-#lastPublished {
- font-size: x-small;
-}
-.navSection {
- margin-bottom: 2px;
- padding: 8px;
-}
-.navSectionHead {
- font-weight: bold;
- font-size: x-small;
-}
-.section {
- padding: 4px;
-}
-#footer {
- padding: 3px 10px 3px 10px;
- font-size: x-small;
-}
-#breadcrumbs {
- font-size: x-small;
- margin: 0pt;
-}
-.source {
- padding: 12px;
- margin: 1em 7px 1em 7px;
-}
-.source pre {
- margin: 0px;
- padding: 0px;
-}
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/css/maven-theme.css b/modules/documentation/src/site/resources/css/maven-theme.css
deleted file mode 100755
index 67bb41b..0000000
--- a/modules/documentation/src/site/resources/css/maven-theme.css
+++ /dev/null
@@ -1,129 +0,0 @@
-body {
- padding: 0px 0px 10px 0px;
-}
-body, td, select, input, li{
- font-family: Verdana, Helvetica, Arial, sans-serif;
- font-size: 13px;
-}
-code{
- font-family: Courier, monospace;
- font-size: 13px;
-}
-#legend li.externalLink {
- background: url(../images/external.png) left top no-repeat;
- padding-left: 18px;
-}
-a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
- background: url(../images/external.png) right center no-repeat;
- padding-right: 18px;
-}
-#legend li.newWindow {
- background: url(../images/newwindow.png) left top no-repeat;
- padding-left: 18px;
-}
-a.newWindow, a.newWindow:link, a.newWindow:visited, a.newWindow:active, a.newWindow:hover {
- background: url(../images/newwindow.png) right center no-repeat;
- padding-right: 18px;
-}
-h2 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #999;
- color: #900;
- background-color: #ddd;
- font-weight:900;
- font-size: x-large;
-}
-h3 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #aaa;
- color: #900;
- background-color: #eee;
- font-weight: normal;
- font-size: large;
-}
-h4 {
- padding: 4px 4px 4px 6px;
- border: 1px solid #bbb;
- color: #900;
- background-color: #fff;
- font-weight: normal;
- font-size: large;
-}
-h5 {
- padding: 4px 4px 4px 6px;
- color: #900;
- font-size: normal;
-}
-p {
- line-height: 1.3em;
- font-size: small;
-}
-#breadcrumbs {
- border-top: 1px solid #aaa;
- border-bottom: 1px solid #aaa;
- background-color: #ccc;
-}
-#leftColumn {
- margin: 10px 0 0 5px;
- border: 1px solid #999;
- background-color: #eee;
-}
-#navcolumn h5 {
- font-size: smaller;
- border-bottom: 1px solid #aaaaaa;
- padding-top: 2px;
- color: #000;
-}
-
-table.bodyTable th {
- color: white;
- background-color: #bbb;
- text-align: left;
- font-weight: bold;
-}
-
-table.bodyTable th, table.bodyTable td {
- font-size: 1em;
-}
-
-table.bodyTable tr.a {
- background-color: #ddd;
-}
-
-table.bodyTable tr.b {
- background-color: #eee;
-}
-
-.source {
- border: 1px solid #999;
-}
-dl {
- padding: 4px 4px 4px 6px;
- border: 1px solid #aaa;
- background-color: #ffc;
-}
-dt {
- color: #900;
-}
-#organizationLogo img, #projectLogo img, #projectLogo span{
- margin: 8px;
-}
-#banner {
- border-bottom: 1px solid #fff;
-}
-.errormark, .warningmark, .donemark, .infomark {
- background: url(../images/icon_error_sml.gif) no-repeat;
-}
-
-.warningmark {
- background-image: url(../images/icon_warning_sml.gif);
-}
-
-.donemark {
- background-image: url(../images/icon_success_sml.gif);
-}
-
-.infomark {
- background-image: url(../images/icon_info_sml.gif);
-}
-
diff --git a/modules/documentation/src/site/resources/css/print.css b/modules/documentation/src/site/resources/css/print.css
deleted file mode 100755
index 49aae7e..0000000
--- a/modules/documentation/src/site/resources/css/print.css
+++ /dev/null
@@ -1,7 +0,0 @@
-#banner, #footer, #leftcol, #breadcrumbs, .docs #toc, .docs .courtesylinks, #leftColumn, #navColumn {
- display: none !important;
-}
-#bodyColumn, body.docs div.docs {
- margin: 0 !important;
- border: none !important
-}
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/css/site.css b/modules/documentation/src/site/resources/css/site.css
deleted file mode 100755
index 5182c6e..0000000
--- a/modules/documentation/src/site/resources/css/site.css
+++ /dev/null
@@ -1,272 +0,0 @@
-/*
- * 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.
- */
-.img-title {
- text-align: center
-}
-
-.img {
- text-align: center
-}
-
-.special-td {
- font-family: Arial;
- font-size: 10pt;
- font-weight: bold
-}
-
-.special {
- font-family: Arial;
- font-weight: bold;
- border-style: solid;
- border-width: 1;
- padding-left: 4;
- padding-right: 4;
- padding-top: 1;
- padding-bottom: 1;
- background-color: #C0C0C0;
- font-size: 10pt
-}
-
-.xml {
- font-family: Arial;
- font-size: 10pt;
- color: #0000FF;
- font-style: italic
-}
-
-/*
-.code {
- font-family: Courier New;
- font-size: 10pt;
- color: #800000
-}
-*/
-
-/*
------------------------------------------------------------------------
-Generic element styles
------------------------------------------------------------------------ */
-body {
- color: #111;
- font-family: "Trebuchet MS", Verdana, sans-serif;
- font-size: 1em;
- padding: 5;
- padding-bottom:0px;
- border-width: 0;
- outline-width: 0;
- list-style-position: outside;
- display: block;
-
- margin: 0 auto; /* center, not in IE5 */
- height: auto !important; /* real browsers */
- height: 100%; /* IE6: treaded as min-height*/
-
- min-height: 100%; /* real browsers */
- width: 980px;
- background-image: url(../images/home-top.gif);
- background-position: left top;
- background-repeat: repeat-x;
-}
-
-#breadcrumbs {
- background-image: url(../images/menu-back.gif);
- background-position: left top;
- background-repeat: repeat-x;
- border-bottom: solid 1px #d4d4d4;
- height: 28px;
- font-size: 0.8em;
- background-color: transparent;
- border: 1px solid #6895c2;
-}
-
-#banner{
- margin-top:10px;
- padding-top:10px;
- padding-bottom:10px;
-}
-#bannerLeft{
- background-image: url(../images/apache-rampart-logo.jpg);
- background-position: left top;
- background-repeat: no-repeat;
- text-indent:-1700px;/*We do this to hide the text. This needs to be updated to a beter solution.*/
- width:204px;
- height:56px;
- display:block;
- float:left;
-}
-#bannerRight{
- display:block;
- float:right;
- height:51px;
- width:537px;
-}
-.xright, #bannerRight {
- text-shadow: none;
-}
-
-#leftColumn {
- border: none;
- background-color: transparent;
- margin: 1em 0 0 0;
-}
-
-#navcolumn {
- padding: 0;
-}
-
-#navcolumn h5 {
- background-color: #e8f4ff;
- border-left: solid 1px #ff2700;
- border-bottom: none;
- font-size: 0.9em;
- padding: 5px;
- color: #333333;
- font-weight: normal;
-}
-
-#navcolumn li {
- font-size: 0.9em;
- margin-top: 0.5em;
- margin-bottom: 0.5em;
-}
-
-#bodyColumn {
- margin-left: 190px;
- margin-right: 0;
-}
-
-#contentBox {
- color: #333333;
-}
-
-#contentBox p, #contentBox td, #contentBox li {
- font-family: "Trebuchet MS", Verdana, sans-serif;
- line-height: 1.5em;
- font-size: 0.94em;
-}
-
-#contentBox p, #contentBox li {
- text-align: justify;
-}
-
-a:link {
- color: #039;
-}
-
-a:hover {
- color: #03c;
- text-decoration: none;
-}
-
-a.externalLink, a.externalLink:link, a.externalLink:visited, a.externalLink:active, a.externalLink:hover {
- background: none;
- padding: 0;
-}
-
-table.bodyTable th {
- background-color: #6f8aa5;
-}
-
-table.bodyTable tr.a {
- background-color: #d1dce7;
-}
-
-table.bodyTable tr.b {
- background-color: #eceef1;
-}
-
-h1 {
- color: #4f4f4f;
- font-size: 2.5em;
- font-weight: normal;
-}
-
-h2 {
- color: #646b71;
- font-size: 1.7em;
- background-color: transparent;
- border: none;
- padding: 0;
- font-weight: normal;
-}
-
-h3 {
- color: #7d858d;
- font-weight: bold;
- font-size: 1.2em;
- background-color: transparent;
- border: none;
- padding: 0;
-}
-
-h4 {
- color: #333333;
- font-size: 1em;
- font-weight: bold;
- background-color: transparent;
- border: none;
- padding: 0;
-}
-
-th {
- background-color: #f5f5f5;
- height: 20;
- paddong: 0px;
- spacing: 0px;
-}
-
-table {
- margin: 0;
- padding: 0;
- border: solid 0 #dcdcdc;
-}
-
-.header {
- height: 80px;
- background-image: url( ../images/doc_header.jpg );
- background-repeat: no-repeat;
- background-attachment: scroll;
- background-position: left top;
-}
-
-pre, div.source {
- border: 1px dotted;
- background-color: #e2ecf6;
- padding: 0.8em;
- margin: 0;
- overflow: auto;
- font-size: 0.9em;
-}
-
-/* Xdoc generates <div class="source"><pre>...</pre></div> for <source> elements.
- Because we already apply styles to every <pre>, we need to suppress styles here. */
-div.source pre {
- border: none;
- background-color: transparent;
- padding: none;
-}
-#footer{
- background-color:#E9E9E9;
- color:#828282;
- left:0;
- padding-top:10px;
- text-indent:10px;
- width:100%;
- height:100px;
-}
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/css/style.css b/modules/documentation/src/site/resources/css/style.css
deleted file mode 100755
index 7893e2f..0000000
--- a/modules/documentation/src/site/resources/css/style.css
+++ /dev/null
@@ -1,184 +0,0 @@
-/* page general styles */
-body{
-padding:0px;
-margin:0px;
-}
-a{
-color:#557f95;
-text-decoration:none;
-}
-a:hover{
-color:#000000;
-text-decoration:underline;
-}
-body, td, tr, input,h1,h2{
-font: 12px Verdana, Arial, Helvetica, sans-serif;
-line-height:18px;
-}
-h1{
-padding:0px;
-margin:0px;
-font-size:14px;
-font-weight:bold;
-height:22px;
-background-color:#bcbcbc;
-text-indent:10px;
-}
-h2{
-padding:0px;
-margin:0px;
-font-weight:bold;
-}
-h3{
-font-weight:bold;
-color:#777777;
-}
-p{
-padding-top:5px;
-padding-bottom:5px;
-line-height:18px;
-}
-/* page styles */
-.page-padding{
-padding-left:10px;
-padding-right:10px;
-}
-.page-external{
-/* Uncomment these lines to give a fixed width with centered positioning ....
-position:absolute;
-left:50%;
-width:980px;
-margin-left:-490px;
-border:solid 1px #83b0c0;
-*/
-}
-
-/* header styles */
-.header{
-background-image:url(../images/apache-rampart-banner-background.jpg);
-background-repeat:repeat-x;
-background-position:0px 0px;
-height:98px;
-}
-.header-logo{
-background-image:url(../images/apache-rampart-logo.jpg);
-background-repeat:no-repeat;
-background-position:0px 0px;
-height:103px;
-text-align:right;
-padding-right:10px;
-}
-.top-menu{
-background-image:url(../images/apache-rampart-banner.jpg);
-background-repeat:no-repeat;
-background-position:right 0px;
-padding-top:65px;
-}
-.top-menu a{
-color:#000000;
-text-decoration:none;
-}
-.top-menu a:hover{
-text-decoration:underline;
-}
-.top-menu-gap{
-padding-left:30px;
-}
-.last-update-text{
-color:#929292;
-}
-
-/* content text */
-.content{
-
-}
-.menu{
-width:179px;
-padding-left:10px;
-}
-.menu-top{
-text-indent:15px;
-height:23px;
-color:#ffffff;
-background-image:url(../images/apache-rampart-menu-top.jpg);
-background-repeat:no-repeat;
-background-position:left 0px;
-}
-.menu-middle{
-background-image:url(../images/apache-rampart-menu.jpg);
-background-repeat:no-repeat;
-background-position:0px 0px;
-background-color:#e5e5e5;
-border-left:solid 1px #b4b4b4;
-padding-top:5px;
-font-size:11px;
-}
-.menu-middle ul{
-padding:0px;
-margin:0px;
-list-style:none;
-padding-left:10px;
-}
-.menu-middle ul ul{
-padding-left:15px;
-}
-.menu-middle li{
-margin-top:3px;
-}
-.menu-selected{
-font-weight:bold;
-}
-.navHeadings{
-background-image:url(../images/apache-rampart-menu-button.gif);
-background-repeat:no-repeat;
-background-position:0px 5px;
-text-indent:15px;
-font-size:12px;
-color:#224351;
-}
-.navHeadings-link{
-display:block;
-}
-.menu-bottom-left{
-background-image:url(../images/apache-rampart-menu-bottom.jpg);
-background-repeat:no-repeat;
-background-position:0px 0px;
-background-color:#e5e5e5;
-width:15px;
-height:13px;
-float:left;
-}
-.menu-bottom-right{
-background-color:#e5e5e5;
-border-bottom:solid 1px #b4b4b4;
-height:13px;
-float:right;
-width:164px;
-}
-.content-back1{
-background-image:url(../images/apache-rampart-spliter.jpg);
-background-repeat:no-repeat;
-background-position:0px 0px;
-}
-.content-back2{
-background-image:url(../images/apache-rampart-content-back.jpg);
-background-repeat:repeat-y;
-background-position:0px 0px;
-background-color:#f3f3f3;
-border-bottom:solid 1px #b4b4b4;
-border-right:solid 1px #b4b4b4;
-margin-right:10px;
-}
-.content-display{
-margin-left:32px;
-padding-bottom:10px;
-}
-.poweredBy{
-margin-left:30px;
-margin-top:5px;
-}
-.footer{
-color:#929292;
-margin-top:10px;
-margin-left:10px;
-}
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.1/download.cgi b/modules/documentation/src/site/resources/download/1.1/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.1/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.2/download.cgi b/modules/documentation/src/site/resources/download/1.2/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.2/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.3/download.cgi b/modules/documentation/src/site/resources/download/1.3/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.3/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.4/download.cgi b/modules/documentation/src/site/resources/download/1.4/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.4/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.5.1/download.cgi b/modules/documentation/src/site/resources/download/1.5.1/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.5.1/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.5.2/download.cgi b/modules/documentation/src/site/resources/download/1.5.2/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.5.2/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.5/download.cgi b/modules/documentation/src/site/resources/download/1.5/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.5/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.6.0/download.cgi b/modules/documentation/src/site/resources/download/1.6.0/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.6.0/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/download/1.6.1/download.cgi b/modules/documentation/src/site/resources/download/1.6.1/download.cgi
deleted file mode 100644
index 8bdb438..0000000
--- a/modules/documentation/src/site/resources/download/1.6.1/download.cgi
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-# Wrapper script around mirrors.cgi script
-# (we must change to that directory in order for python to pick up the
-# python includes correctly)
-cd /www/www.apache.org/dyn/mirrors
-/www/www.apache.org/dyn/mirrors/mirrors.cgi $*
\ No newline at end of file
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-banner-background.jpg b/modules/documentation/src/site/resources/images/apache-rampart-banner-background.jpg
deleted file mode 100755
index 29b5350..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-banner-background.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-banner.jpg b/modules/documentation/src/site/resources/images/apache-rampart-banner.jpg
deleted file mode 100644
index abcd2d1..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-banner.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-content-back.jpg b/modules/documentation/src/site/resources/images/apache-rampart-content-back.jpg
deleted file mode 100755
index 58f9b88..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-content-back.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-menu-bottom.jpg b/modules/documentation/src/site/resources/images/apache-rampart-menu-bottom.jpg
deleted file mode 100755
index 96c85e5..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-menu-bottom.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-menu-button.gif b/modules/documentation/src/site/resources/images/apache-rampart-menu-button.gif
deleted file mode 100755
index 319460c..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-menu-button.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-menu-top.jpg b/modules/documentation/src/site/resources/images/apache-rampart-menu-top.jpg
deleted file mode 100755
index 12c593e..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-menu-top.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-menu.jpg b/modules/documentation/src/site/resources/images/apache-rampart-menu.jpg
deleted file mode 100755
index fad5611..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-menu.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-spliter.jpg b/modules/documentation/src/site/resources/images/apache-rampart-spliter.jpg
deleted file mode 100755
index 926622d..0000000
--- a/modules/documentation/src/site/resources/images/apache-rampart-spliter.jpg
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/breadcrumbs-bg.gif b/modules/documentation/src/site/resources/images/breadcrumbs-bg.gif
deleted file mode 100644
index 2d10304..0000000
--- a/modules/documentation/src/site/resources/images/breadcrumbs-bg.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/external.png b/modules/documentation/src/site/resources/images/external.png
deleted file mode 100755
index 3f999fc..0000000
--- a/modules/documentation/src/site/resources/images/external.png
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/h2-bg.gif b/modules/documentation/src/site/resources/images/h2-bg.gif
deleted file mode 100644
index 0ddb32e..0000000
--- a/modules/documentation/src/site/resources/images/h2-bg.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/home-top.gif b/modules/documentation/src/site/resources/images/home-top.gif
deleted file mode 100644
index 4103c66..0000000
--- a/modules/documentation/src/site/resources/images/home-top.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/leftcolumn-bg.gif b/modules/documentation/src/site/resources/images/leftcolumn-bg.gif
deleted file mode 100644
index a2faa21..0000000
--- a/modules/documentation/src/site/resources/images/leftcolumn-bg.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/logos/build-by-maven-black.png b/modules/documentation/src/site/resources/images/logos/build-by-maven-black.png
deleted file mode 100755
index 919fd0f..0000000
--- a/modules/documentation/src/site/resources/images/logos/build-by-maven-black.png
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/logos/build-by-maven-white.png b/modules/documentation/src/site/resources/images/logos/build-by-maven-white.png
deleted file mode 100755
index 7d44c9c..0000000
--- a/modules/documentation/src/site/resources/images/logos/build-by-maven-white.png
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/logos/maven-feather.png b/modules/documentation/src/site/resources/images/logos/maven-feather.png
deleted file mode 100755
index b5ada83..0000000
--- a/modules/documentation/src/site/resources/images/logos/maven-feather.png
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/menu-back.gif b/modules/documentation/src/site/resources/images/menu-back.gif
deleted file mode 100644
index 0bcccda..0000000
--- a/modules/documentation/src/site/resources/images/menu-back.gif
+++ /dev/null
Binary files differ
diff --git a/modules/documentation/src/site/site.xml b/modules/documentation/src/site/site.xml
deleted file mode 100644
index dce5c7d..0000000
--- a/modules/documentation/src/site/site.xml
+++ /dev/null
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1"?>
-<!--
- ~ 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 name="Apache Rampart">
-
- <bannerLeft>
- <name>Apache Rampart</name>
- <href>images/apache-rampart-logo.jpg</href>
- </bannerLeft>
-
- <bannerRight>
- <src>images/apache-rampart-banner.jpg</src>
- <href>http://www.apache.org</href>
- </bannerRight>
-
- <skin>
- <groupId>org.apache.maven.skins</groupId>
- <artifactId>maven-default-skin</artifactId>
- <version>1.0</version>
- </skin>
-
- <publishDate format="dd MMM yyyy"/>
-
- <body>
- <links>
- <item name="Apache Axis2/Java" href="http://axis.apache.org/axis2/java/core/" />
- </links>
-
- <menu name="Apache Rampart">
- <item name="Home" href="index.html" />
- <item name="Downloads">
- <item name="Releases" href="download.html"/>
- <item name="Source Code" href="svn.html"/>
- </item>
- </menu>
- <menu name="Documentation">
- <item name="Getting Started" href="quick-start.html"/>
- <item name="Samples" href="samples.html"/>
- <item name="FAQ" href="http://wiki.apache.org/ws/FrontPage/Rampart/FAQ"/>
- <item name="Rampart Configuration" href="rampartconfig-guide.html"/>
- <item name="STS Configuration" href="setting-up-sts.html"/>
- <item name="Developer Guide" href="developer-guide.html"/>
- <item name="Build the Site" href="siteHowTo.html" />
- </menu>
- <menu name="Resources">
- <item name="Articles" href="articles.html" />
- <item name="Specifications" href="specifications.html"/>
- <item name="Online Javadocs" href="apidocs/index.html"/>
- </menu>
- <menu name="Project Information">
- <item name="Project Team" href="team-list.html" />
- <item name="Issue Tracking" href="http://issues.apache.org/jira/browse/Rampart" />
- <item name="Mailing Lists" href="mail-lists.html"/>
- <item name="Source Code"
- href="http://svn.apache.org/viewvc/axis/axis2/java/rampart/" />
- <item name="Dependencies" href="dependencies.html"/>
- <item name="License"
- href="http://www.apache.org/licenses/LICENSE-2.0.html" />
- </menu>
-
- </body>
-</project>
diff --git a/modules/documentation/src/site/xdoc/download.xml b/modules/documentation/src/site/xdoc/download.xml
deleted file mode 100644
index 556ed3c..0000000
--- a/modules/documentation/src/site/xdoc/download.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--
- ~ 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.
- -->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
- <body>
- <h1>Download Apache Rampart Module</h1>
- <h2>Apache Rampart Releases</h2>
- <p>This page provides links to the release versions of Apache Rampart Java.</p>
- <table border="1" style="border-collapse: collapse" width="93%" id="table1">
- <tbody>
- <tr>
- <th>Version</th>
- <th>Date</th>
- <th>Description</th>
- </tr>
- <tr>
- <td>
- <a href="download/1.6.2/download.cgi">
- <strong>1.6.2</strong>
- </a>
- </td>
- <td>26 Apr 2012</td>
- <td>1.6.2 Release (Mirrored)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.6.1/download.cgi">
- <strong>1.6.1</strong>
- </a>
- </td>
- <td>24 Sep 2011</td>
- <td>1.6.1 Release (Mirrored)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.5.2/download.cgi">
- <strong>1.5.2</strong>
- </a>
- </td>
- <td>24 Sep 2011</td>
- <td>1.5.2 Release (Mirrored)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.6.0/download.cgi">
- <strong>1.6.0</strong>
- </a>
- </td>
- <td>06 Jun 2011</td>
- <td>1.6.0 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.5.1/download.cgi">
- <strong>1.5.1</strong>
- </a>
- </td>
- <td>10 Jan 2011</td>
- <td>1.5.1 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.5/download.cgi">
- <strong>1.5</strong>
- </a>
- </td>
- <td>01 Feb 2010</td>
- <td>1.5 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.4/download.cgi">
- <strong>1.4</strong>
- </a>
- </td>
- <td>12 Jun 2008</td>
- <td>1.4 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.3/download.cgi">
- <strong>1.3</strong>
- </a>
- </td>
- <td>06 Sep 2007</td>
- <td>1.3 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.2/download.cgi">
- <strong>1.2</strong>
- </a>
- </td>
- <td>02 Jun 2007</td>
- <td>1.2 Release (Archived)</td>
- </tr>
- <tr>
- <td>
- <a href="download/1.1/download.cgi">
- <strong>1.1</strong>
- </a>
- </td>
- <td>11 Dec 2006</td>
- <td>1.1 Release (Archived)</td>
- </tr>
- </tbody>
- </table>
- <p>
- <strong>Apache Rampart Distributions : <a href="https://hudson.apache.org/hudson/job/Rampart/lastStableBuild/org.apache.rampart$rampart-dist/">Nightly builds</a>
- </strong>
- </p>
- <p>
- <strong>Maven Repository: <a href="http://people.apache.org/repo/m2-ibiblio-rsync-repository/">Released Apache Rampart jars</a> | <a href="http://repository.apache.org/snapshots/">Nightly SNAPSHOT</a>
- <a href=""></a>
- </strong>
- </p>
- </body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.1/download.xml b/modules/documentation/src/site/xdoc/download/1.1/download.xml
deleted file mode 100644
index b8ce317..0000000
--- a/modules/documentation/src/site/xdoc/download/1.1/download.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.1 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.1 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.1.zip');">zip</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip.md5"
-title="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip.asc"
-title="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.1-src.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-src.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><strong>Documents Distribution</strong></td>
-<td>This will contain all the documentation in one package.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.1-docs.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_1/rampart-1.1-docs.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.2/download.xml b/modules/documentation/src/site/xdoc/download/1.2/download.xml
deleted file mode 100644
index 70822ce..0000000
--- a/modules/documentation/src/site/xdoc/download/1.2/download.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.2 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.2 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.2.zip');">zip</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip.md5"
-title="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip.asc"
-title="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.2-src.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-src.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><strong>Documents Distribution</strong></td>
-<td>This will contain all the documentation in one package.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.2-docs.zip');">zip</a>
-<a href=
-"hhttp://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_2/rampart-1.2-docs.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.3/download.xml b/modules/documentation/src/site/xdoc/download/1.3/download.xml
deleted file mode 100644
index 50dde84..0000000
--- a/modules/documentation/src/site/xdoc/download/1.3/download.xml
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.3 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.3 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.3.zip');">zip</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip.md5"
-title="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip.asc"
-title="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.3-src.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-src.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><strong>Documents Distribution</strong></td>
-<td>This will contain all the documentation in one package.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.3-docs.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_3/rampart-1.3-docs.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.4/download.xml b/modules/documentation/src/site/xdoc/download/1.4/download.xml
deleted file mode 100644
index ca564c0..0000000
--- a/modules/documentation/src/site/xdoc/download/1.4/download.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.4 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.4 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.4.zip');">zip</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip.md5"
-title="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip.asc"
-title="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip" title=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.4-src.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip.md5"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip.asc"
-title=
-"http://archive.apache.org/dist/ws/rampart/1_4/rampart-dist-1.4-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.5.1/download.xml b/modules/documentation/src/site/xdoc/download/1.5.1/download.xml
deleted file mode 100644
index a55e387..0000000
--- a/modules/documentation/src/site/xdoc/download/1.5.1/download.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.5.1 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.5.1 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip" title=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.5.1-bin.zip');">zip</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip.md5"
- title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip.asc"
- title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip" title=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.5.1-src.zip');">zip</a>
-<a href=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip.md5"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip.md5">MD5</a>
-<a href=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip.asc"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5.1/rampart-dist-1.5.1-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div align="left"><br />
-<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
-border="0" /></a>[end] The currently selected mirror is
-<b>[preferred]</b>. If you encounter a problem with this mirror,
-please select another mirror. If all mirrors are failing, there are
-<i>backup</i> mirrors (at the end of the mirrors list) that should
-be available.</p>
-<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
-Other mirrors: <select name="Preferred">
-[if-any http]
- [for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
- [for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
- [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
-.</p>
-<p><strong>Note:</strong> when downloading from a mirror please
-check the <a href=
-"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
-verify the <a href=
-"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
-compatible signature from the main Apache site. These can be
-downloaded by following the links above. This <a href=
-"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
-the public keys that can be used for verifying signatures. It is
-recommended that (when possible)a <a href=
-"http://www.apache.org/dev/release-signing#web-of-trust">Web of
-trust</a> is used to confirm the identity of these keys.</p>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.5.2/download.xml b/modules/documentation/src/site/xdoc/download/1.5.2/download.xml
deleted file mode 100644
index 0ef5c7d..0000000
--- a/modules/documentation/src/site/xdoc/download/1.5.2/download.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.5.2 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.5.2 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.5.2-bin.zip');">zip</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip.md5"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip.md5">MD5</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip.asc"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.5.2-src.zip');">zip</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip.md5"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip.md5">MD5</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip.asc"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.5.2/rampart-dist-1.5.2-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div align="left"><br />
-<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
-border="0" /></a>[end] The currently selected mirror is
-<b>[preferred]</b>. If you encounter a problem with this mirror,
-please select another mirror. If all mirrors are failing, there are
-<i>backup</i> mirrors (at the end of the mirrors list) that should
-be available.</p>
-<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
-Other mirrors: <select name="Preferred">
-[if-any http]
- [for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
- [for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
- [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
-.</p>
-<p><strong>Note:</strong> when downloading from a mirror please
-check the <a href=
-"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
-verify the <a href=
-"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
-compatible signature from the main Apache site. These can be
-downloaded by following the links above. This <a href=
-"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
-the public keys that can be used for verifying signatures. It is
-recommended that (when possible)a <a href=
-"http://www.apache.org/dev/release-signing#web-of-trust">Web of
-trust</a> is used to confirm the identity of these keys.</p>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.5/download.xml b/modules/documentation/src/site/xdoc/download/1.5/download.xml
deleted file mode 100644
index 89f6c90..0000000
--- a/modules/documentation/src/site/xdoc/download/1.5/download.xml
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.5 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.5 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip" title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-1.5.zip');">zip</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip.md5"
-title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip.asc"
-title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip" title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.5-src.zip');">zip</a>
-<a href=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip.md5"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip.md5">MD5</a>
-<a href=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip.asc"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.5/rampart-dist-1.5-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.6.0/download.xml b/modules/documentation/src/site/xdoc/download/1.6.0/download.xml
deleted file mode 100644
index 1a15f8b..0000000
--- a/modules/documentation/src/site/xdoc/download/1.6.0/download.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.6.0 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.6.0 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip" title=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.0-bin.zip');">zip</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip.md5"
- title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip.md5">MD5</a>
-<a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip.asc"
- title="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip" title=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.0-src.zip');">zip</a>
-<a href=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip.md5"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip.md5">MD5</a>
-<a href=
- "http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip.asc"
-title=
-"http://archive.apache.org/dist/axis/axis2/java/rampart/1.6.0/rampart-dist-1.6.0-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div align="left"><br />
-<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
-border="0" /></a>[end] The currently selected mirror is
-<b>[preferred]</b>. If you encounter a problem with this mirror,
-please select another mirror. If all mirrors are failing, there are
-<i>backup</i> mirrors (at the end of the mirrors list) that should
-be available.</p>
-<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
-Other mirrors: <select name="Preferred">
-[if-any http]
- [for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
- [for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
- [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
-.</p>
-<p><strong>Note:</strong> when downloading from a mirror please
-check the <a href=
-"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
-verify the <a href=
-"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
-compatible signature from the main Apache site. These can be
-downloaded by following the links above. This <a href=
-"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
-the public keys that can be used for verifying signatures. It is
-recommended that (when possible)a <a href=
-"http://www.apache.org/dev/release-signing#web-of-trust">Web of
-trust</a> is used to confirm the identity of these keys.</p>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.6.1/download.xml b/modules/documentation/src/site/xdoc/download/1.6.1/download.xml
deleted file mode 100644
index 877ebdc..0000000
--- a/modules/documentation/src/site/xdoc/download/1.6.1/download.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.6.1 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.6.1 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.1-bin.zip');">zip</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.md5"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.md5">MD5</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.asc"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.1-src.zip');">zip</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.md5"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.md5">MD5</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.asc"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.1/rampart-dist-1.6.1-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div align="left"><br />
-<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
-border="0" /></a>[end] The currently selected mirror is
-<b>[preferred]</b>. If you encounter a problem with this mirror,
-please select another mirror. If all mirrors are failing, there are
-<i>backup</i> mirrors (at the end of the mirrors list) that should
-be available.</p>
-<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
-Other mirrors: <select name="Preferred">
-[if-any http]
- [for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
- [for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
- [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
-.</p>
-<p><strong>Note:</strong> when downloading from a mirror please
-check the <a href=
-"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
-verify the <a href=
-"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
-compatible signature from the main Apache site. These can be
-downloaded by following the links above. This <a href=
-"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
-the public keys that can be used for verifying signatures. It is
-recommended that (when possible)a <a href=
-"http://www.apache.org/dev/release-signing#web-of-trust">Web of
-trust</a> is used to confirm the identity of these keys.</p>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/download/1.6.2/download.xml b/modules/documentation/src/site/xdoc/download/1.6.2/download.xml
deleted file mode 100644
index a3c7816..0000000
--- a/modules/documentation/src/site/xdoc/download/1.6.2/download.xml
+++ /dev/null
@@ -1,115 +0,0 @@
-<!--
-~ 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.
--->
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta name="generator" content=
-"HTML Tidy for Windows (vers 14 June 2007), see www.w3.org" />
-<meta http-equiv="content-type" content="" />
-<title>Apache Rampart 1.6.2 Release</title>
-</head>
-<body>
-<!--Google Anayitcs tracking code-->
-<script type="text/javascript" src=
-"http://www.google-analytics.com/urchin.js">
-</script><script type="text/javascript">
-//<![CDATA[
-_uacct = "UA-1954378-3";
-urchinTracker();
-//]]>
-</script>
-<!--End of Google Anayitcs tracking code-->
-<h2>Apache Rampart 1.6.2 Release</h2>
-<div>
-<table border="1" cellpadding="1">
-<tbody>
-<tr>
-<th scope="col">Distribution Name</th>
-<th scope="col">Description</th>
-<!--<th scope="col">Items</th>-->
-<th scope="col">Download</th>
-</tr>
-<tr>
-<td><a name="std-bin" id="std-bin"></a><strong>Standard Binary
-Distribution</strong></td>
-<td>This is the complete version of Apache Rampart and will contain samples
-as well.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.2-bin.zip');">zip</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip.md5"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip.md5">MD5</a>
-<a href="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip.asc"
- title="http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-bin.zip.asc">PGP</a></td>
-</tr>
-<tr>
-<td><a name="src" id="src"></a> <strong>Source
-Distribution</strong></td>
-<td>This will contain the sources of Apache Rampart distribution.</td>
-<td><a href="[preferred]/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip" title=
- "[preferred]/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip" onClick=
-"javascript:urchinTracker ('/downloads/rampart-dist-1.6.2-src.zip');">zip</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip.md5"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip.md5">MD5</a>
-<a href=
- "http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip.asc"
-title=
-"http://www.apache.org/dist/axis/axis2/java/rampart/1.6.2/rampart-dist-1.6.2-src.zip.asc">PGP</a></td>
-</tr>
-</tbody>
-</table>
-</div>
-<div align="left"><br />
-<p>[if-any logo] <a href="[link]"><img align="right" src="[logo]"
-border="0" /></a>[end] The currently selected mirror is
-<b>[preferred]</b>. If you encounter a problem with this mirror,
-please select another mirror. If all mirrors are failing, there are
-<i>backup</i> mirrors (at the end of the mirrors list) that should
-be available.</p>
-<form action="[location]" method="get" id="SelectMirror" name="SelectMirror">
-Other mirrors: <select name="Preferred">
-[if-any http]
- [for http]<option value="[http]">[http]</option>[end]
-[end]
-[if-any ftp]
- [for ftp]<option value="[ftp]">[ftp]</option>[end]
-[end]
-[if-any backup]
- [for backup]<option value="[backup]">[backup] (backup)</option>[end]
-[end]
-</select><input type="submit" value="Change"/></form><p>You may also consult the <a class="externalLink" href="http://www.apache.org/mirrors/">complete list of mirrors</a>
-.</p>
-<p><strong>Note:</strong> when downloading from a mirror please
-check the <a href=
-"http://www.apache.org/dev/release-signing#md5">md5sum</a> and
-verify the <a href=
-"http://www.apache.org/dev/release-signing#openpgp">OpenPGP</a>
-compatible signature from the main Apache site. These can be
-downloaded by following the links above. This <a href=
-"http://www.apache.org/dist/axis/axis2/java/rampart/KEYS">KEYS</a> file contains
-the public keys that can be used for verifying signatures. It is
-recommended that (when possible)a <a href=
-"http://www.apache.org/dev/release-signing#web-of-trust">Web of
-trust</a> is used to confirm the identity of these keys.</p>
-</div>
-</body>
-</html>
diff --git a/modules/documentation/src/site/xdoc/index.xml b/modules/documentation/src/site/xdoc/index.xml
deleted file mode 100644
index b8e37e5..0000000
--- a/modules/documentation/src/site/xdoc/index.xml
+++ /dev/null
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!--
- ~ 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.
- -->
-
-<document xmlns="http://maven.apache.org/XDOC/2.0"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
-
- <properties>
-
- </properties>
-
- <body>
- <h1>Apache Rampart - Axis2 Security Module</h1>
- <section name="Welcome to Apache Rampart">
- <p>Rampart is the security module of Axis2. It secures SOAP messages
-according to specifications in the WS-Security stack. Rampart implements the
-following specifications:</p>
- </section>
-
- <section name="Features of Rampart Latest Version">
-
- <ul>
- <li><p>WS - Security 1.0</p></li>
- <li><p>WS - Security 1.1</p></li>
- <li><p>WS - Secure Conversation - February 2005</p></li>
- <li><p>WS - Security Policy - 1.1 - July 2005</p></li>
- <li><p>WS - Security Policy - 1.2</p></li>
- <li><p>WS - Trust - February 2005</p></li>
- <li><p>WS - Trust - WS-SX spec - EXPERIMENTAL</p></li>
- </ul>
- </section>
-
- <section name="Apache Rampart News">
- <h3>April 26, 2012 : Apache Rampart 1.6.2 released</h3>
- <p>Apache Rampart 1.6.2 is a maintenance release that update WSS4J to version 1.6.4 and OpenSAML to version 2.5.1. Apache Rampart 1.6.2 ensure compatibility with the latest Axis2 1.6.2 release.</p>
-
- <h3>Sep 24, 2011 : Apache Rampart 1.5.2 and 1.6.1 released</h3>
- <p>Both releases update WSS4J to version 1.5.12 and ensure compatibility with the latest
- Axis2 releases from the corresponding branches. Rampart 1.5.2 is supported with Axis2 1.5.6
- and Rampart 1.6.1 is supported with Axis2 1.6.1. Please note that Rampart 1.6.1 will not
- work with Axis2 1.6.0 and that users of Axis2 1.6.1 are required to update to Rampart 1.6.1,
- i.e. Rampart 1.6.0 doesn't work with Axis2 1.6.1.</p>
-
- <h3>Jun 06, 2011 : Apache Rampart 1.6.0 released</h3>
- <p>Apache Rampart 1.6.0 was released with lots of bug fixes.</p>
-
- <h3>Jan 10, 2011 : Apache Rampart 1.5.1 released</h3>
- <p>Apache Rampart 1.5.1 was released with lots of bug fixes.</p>
-
- <h3>Feb 01, 2010 : Apache Rampart 1.5 released</h3>
- <p>Apache Rampart 1.5 was released with lots of bug fixes and new features.</p>
- <p>New features include</p>
- <ul>
- <li>SAML 2.0 support - Issuance </li>
- <li>Key store caching</li>
- <li>Signing / Encrypting with multiple keys</li>
- <li>Tests for negative scenarios</li>
- </ul>
- <h3>Jun 12, 2008 : Apache Rampart 1.4 released</h3>
- <p>Apache Rampart 1.4 was released with lots of bug fixes and new features.</p>
- <p>New features include</p>
- <ul>
- <li>WS Security 1.1</li>
- <ul>
- <li>Encrypted headers</li>
- <li>Encrypted SHA1 references</li>
- </ul>
- <li>WS Security Policy 1.2 support</li>
- <li>WS Trust</li>
- <ul>
- <li>Renew binding</li>
- <li>Validation binding</li>
- </ul>
- <li>New configuration options</li>
- <ul>
- <li>Ability to plug in Custom policy validators</li>
- <li>Ability to define certAlias different from username for signature</li>
- <li>Ability turn off mili second precision</li>
- </ul>
- <li>Ability to secure messages faults </li>
- <li>Increased interoperability with WCF 3.5 </li>
- </ul>
- </section>
- </body>
-</document>
diff --git a/modules/rampart-core/pom.xml b/modules/rampart-core/pom.xml
index 1551d71..7d4b513 100644
--- a/modules/rampart-core/pom.xml
+++ b/modules/rampart-core/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -34,30 +34,38 @@
<packaging>jar</packaging>
<name>Rampart - Core</name>
- <build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <excludes>
- <exclude>**/*.java</exclude>
- </excludes>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
<dependencies>
<dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-mtompolicy</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>mex</artifactId>
+ <classifier>impl</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.security</groupId>
+ <artifactId>wss4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-policy</artifactId>
<version>${project.version}</version>
@@ -72,19 +80,15 @@
<artifactId>axiom-dom</artifactId>
<scope>runtime</scope>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-truth</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <configuration>
- <templateDirectory>${basedir}</templateDirectory>
- <menu ref="parent" />
- </configuration>
- </plugin>
- </plugins>
- </reporting>
</project>
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.java b/modules/rampart-core/src/main/java/org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.java
index 6bd2f59..c2248b9 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/ExtendedPolicyValidatorCallbackHandler.java
@@ -3,7 +3,6 @@
import org.apache.ws.security.WSSecurityEngineResult;
import java.util.List;
-import java.util.Vector;
/**
* This is an extension of the PolicyValidatorCallbackHandler. PolicyValidatorCallbackHandler uses Vector
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/NonceCache.java b/modules/rampart-core/src/main/java/org/apache/rampart/NonceCache.java
index a0681fa..27d2359 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/NonceCache.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/NonceCache.java
@@ -140,12 +140,12 @@
rightNow.add(Calendar.SECOND, -(maxLifeTime));
long timeBeforeMaxLifeTime = rightNow.getTimeInMillis();
- Iterator iterator = mapIdNonce.entrySet().iterator();
+ Iterator<Map.Entry<Nonce, Calendar>> iterator = mapIdNonce.entrySet().iterator();
while (iterator.hasNext()) {
- Map.Entry pair = (Map.Entry)iterator.next();
- Calendar itemDate = (Calendar)pair.getValue();
+ Map.Entry<Nonce, Calendar> pair = iterator.next();
+ Calendar itemDate = pair.getValue();
long itemAddedTime = itemDate.getTimeInMillis();
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java b/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
index c0f62bd..6494d13 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/PolicyBasedResultsValidator.java
@@ -39,7 +39,6 @@
import javax.xml.namespace.QName;
import java.math.BigInteger;
-import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.util.*;
@@ -324,13 +323,34 @@
UsernameToken ut = (UsernameToken) token;
//Check presence of a UsernameToken
WSSecurityEngineResult utResult = WSSecurityUtil.fetchActionResult(results, WSConstants.UT);
+
if (utResult == null && !ut.isOptional()) {
throw new RampartException("usernameTokenMissing");
}
+
+ org.apache.ws.security.message.token.UsernameToken wssUt =
+ (org.apache.ws.security.message.token.UsernameToken) utResult.get(WSSecurityEngineResult.TAG_USERNAME_TOKEN);
+
+ if(ut.isNoPassword() && wssUt.getPassword() != null) {
+ throw new RampartException("invalidUsernameTokenType");
+ }
+
+ if(ut.isHashPassword() && !wssUt.isHashed()) {
+ throw new RampartException("invalidUsernameTokenType");
+ } else if (!ut.isHashPassword() && (wssUt.getPassword() == null ||
+ !wssUt.getPasswordType().equals(WSConstants.PASSWORD_TEXT))) {
+ throw new RampartException("invalidUsernameTokenType");
+ }
+
+
} else if (token instanceof IssuedToken) {
- //TODO is is enough to check for ST_UNSIGNED results ??
- WSSecurityEngineResult samlResult = WSSecurityUtil.fetchActionResult(results, WSConstants.ST_UNSIGNED);
+ WSSecurityEngineResult samlResult = WSSecurityUtil.fetchActionResult(results, WSConstants.ST_SIGNED);
+ // Then check for unsigned saml tokens
+ if (samlResult == null) {
+ log.debug("No signed SAMLToken found. Looking for unsigned SAMLTokens");
+ samlResult = WSSecurityUtil.fetchActionResult(results, WSConstants.ST_UNSIGNED);
+ }
if (samlResult == null) {
throw new RampartException("samlTokenMissing");
}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java b/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
index b1f6970..a4d612b 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java
@@ -27,17 +27,39 @@
import org.apache.rahas.Token;
import org.apache.rahas.TokenStorage;
import org.apache.rampart.policy.RampartPolicyData;
+import org.apache.rampart.policy.model.KerberosConfig;
+import org.apache.rampart.policy.model.RampartConfig;
import org.apache.rampart.saml.SAMLAssertionHandler;
import org.apache.rampart.saml.SAMLAssertionHandlerFactory;
import org.apache.rampart.util.Axis2Util;
import org.apache.rampart.util.RampartUtil;
import org.apache.ws.secpolicy.WSSPolicyException;
-import org.apache.ws.security.*;
+import org.apache.ws.secpolicy.model.KerberosToken;
+import org.apache.ws.secpolicy.model.SupportingToken;
+import org.apache.ws.secpolicy.model.UsernameToken;
+import org.apache.ws.security.NamePasswordCallbackHandler;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSPasswordCallback;
+import org.apache.ws.security.WSSConfig;
+import org.apache.ws.security.WSSecurityEngine;
+import org.apache.ws.security.WSSecurityEngineResult;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.WSUsernameTokenPrincipal;
import org.apache.ws.security.components.crypto.Crypto;
+import org.apache.ws.security.validate.KerberosTokenDecoder;
+import org.apache.ws.security.validate.KerberosTokenValidator;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
import javax.xml.namespace.QName;
+
+import java.io.IOException;
import java.security.cert.X509Certificate;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Vector;
public class RampartEngine {
@@ -83,8 +105,93 @@
List<WSSecurityEngineResult> results;
WSSecurityEngine engine = new WSSecurityEngine();
+
+ //Set rampart's configuration of WSS4J
+ engine.setWssConfig(rmd.getConfig());
- ValidatorData data = new ValidatorData(rmd);
+ RampartConfig rampartConfig = rpd.getRampartConfig();
+ if (rampartConfig != null) {
+ WSSConfig config = engine.getWssConfig();
+
+ // Inbound Kerberos authentication for web services
+ // Check the service policy for Kerberos token and add KerberosTokenValidator for BINARY_TOKEN validation
+ SupportingToken endSupptokens = rpd.getEndorsingSupportingTokens();
+ if (endSupptokens != null && endSupptokens.getTokens() != null &&
+ endSupptokens.getTokens().size() > 0) {
+
+ log.debug("Processing endorsing supporting tokens");
+
+ for (org.apache.ws.secpolicy.model.Token token : endSupptokens.getTokens()) {
+ if (token instanceof KerberosToken) {
+ log.debug("KerberosToken is found as part of the endorsing supporting tokens.Check for KerberosConfig.");
+ KerberosConfig kerberosConfig = rampartConfig.getKerberosConfig();
+
+ if (null != kerberosConfig){
+ log.debug("KerberosConfig is found.");
+ log.debug("Creating KerberosTokenValidor with the available KerberosConfig.");
+ KerberosTokenValidator kerberosValidator = new KerberosTokenValidator();
+
+ KerberosTokenDecoder kerberosTokenDecoder = RampartUtil.getKerberosTokenDecoder(msgCtx, kerberosConfig);
+ if (kerberosTokenDecoder != null) {
+ kerberosValidator.setKerberosTokenDecoder(kerberosTokenDecoder);
+ }
+ kerberosValidator.setContextName(kerberosConfig.getJaasContext());
+ kerberosValidator.setServiceName(kerberosConfig.getServicePrincipalName());
+ String serviceNameForm = kerberosConfig.getServicePrincipalNameForm();
+
+ if (KerberosConfig.USERNAME_NAME_FORM.equals(serviceNameForm)) {
+ kerberosValidator.setUsernameServiceNameForm(true);
+ }
+
+ String principalName = kerberosConfig.getPrincipalName();
+ if (null == principalName){
+ log.debug("Principal name is not available in the KerberosConfig.Using the Rampart configuration's user.");
+ principalName = rampartConfig.getUser();
+ }
+
+ String password = kerberosConfig.getPrincipalPassword();
+ if (password == null) {
+ log.debug("Principal password is not available in the KerberosConfig.Trying with the configured Rampart password callback.");
+ CallbackHandler handler = RampartUtil.getPasswordCB(rmd);
+
+ if (handler != null) {
+ WSPasswordCallback[] cb = {
+ new WSPasswordCallback(principalName, WSPasswordCallback.CUSTOM_TOKEN)
+ };
+
+ try {
+ handler.handle(cb);
+ if (cb[0].getPassword() != null && !"".equals(cb[0].getPassword())) {
+ password = cb[0].getPassword();
+ }
+ } catch (IOException e) {
+ throw new RampartException("errorInGettingPasswordForUser", new String[] { principalName }, e);
+ } catch (UnsupportedCallbackException e) {
+ throw new RampartException("errorInGettingPasswordForUser", new String[] { principalName }, e);
+ }
+ } else{
+ log.debug("No Rampart password handler is configured.");
+ }
+ }
+
+ if (principalName != null && password != null) {
+ NamePasswordCallbackHandler cb = new NamePasswordCallbackHandler(principalName, password);
+ kerberosValidator.setCallbackHandler(cb);
+ }
+
+ config.setValidator(WSSecurityEngine.BINARY_TOKEN, kerberosValidator);
+ log.debug("KerberosTokenValidator is configured and set for BINARY_TOKEN.");
+ } else {
+ log.debug("KerberosConfig is not found.Skipping configurating and setting of a Kerberos validator.");
+ }
+ }
+ }
+ }
+
+ engine.setWssConfig(config);
+ }
+
+ ValidatorData data = new ValidatorData(rmd);
SOAPHeader header = rmd.getMsgContext().getEnvelope().getHeader();
if(header == null) {
@@ -114,8 +221,20 @@
t0 = System.currentTimeMillis();
}
- String actorValue = secHeader.getAttributeValue(new QName(rmd
- .getSoapConstants().getEnvelopeURI(), "actor"));
+ //wss4j does not allow username tokens with no password per default, see https://issues.apache.org/jira/browse/WSS-420
+ //configure it to allow them explicitly if at least one username token assertion with no password requirement is found
+ if (!rmd.isInitiator()) {
+ Collection<UsernameToken> usernameTokens = RampartUtil.getUsernameTokens(rpd);
+ for (UsernameToken usernameTok : usernameTokens) {
+ if (usernameTok.isNoPassword()) {
+ log.debug("Found UsernameToken with no password assertion in policy, configuring ws security processing to allow username tokens without password." );
+ engine.getWssConfig().setAllowUsernameTokenNoPassword(true);
+ break;
+ }
+ }
+ }
+
+ String actorValue = secHeader.getRole();
Crypto signatureCrypto = RampartUtil.getSignatureCrypto(rpd.getRampartConfig(),
msgCtx.getAxisService().getClassLoader());
@@ -160,89 +279,90 @@
//Store username in MessageContext property
- for (int j = 0; j < results.size(); j++) {
- WSSecurityEngineResult wser = (WSSecurityEngineResult) results.get(j);
- final Integer actInt =
- (Integer) wser.get(WSSecurityEngineResult.TAG_ACTION);
- if (WSConstants.ST_UNSIGNED == actInt.intValue()) {
+ if (results != null) {
+ for (int j = 0; j < results.size(); j++) {
+ WSSecurityEngineResult wser = (WSSecurityEngineResult) results.get(j);
+ final Integer actInt =
+ (Integer) wser.get(WSSecurityEngineResult.TAG_ACTION);
+ if (WSConstants.ST_UNSIGNED == actInt.intValue()) {
- Object samlAssertion = wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION);
+ Object samlAssertion = wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION);
- SAMLAssertionHandler samlAssertionHandler
- = SAMLAssertionHandlerFactory.createAssertionHandler(samlAssertion);
+ SAMLAssertionHandler samlAssertionHandler
+ = SAMLAssertionHandlerFactory.createAssertionHandler(samlAssertion);
- if (samlAssertionHandler.isBearerAssertion()) {
- break;
- }
- //Store the token
- try {
- TokenStorage store = rmd.getTokenStorage();
- if (store.getToken(samlAssertionHandler.getAssertionId()) == null) {
- Token token = new Token(samlAssertionHandler.getAssertionId(),
- samlAssertionHandler.getAssertionElement(),
- samlAssertionHandler.getDateNotBefore(),
- samlAssertionHandler.getDateNotOnOrAfter());
-
- token.setSecret(samlAssertionHandler.
- getAssertionKeyInfoSecret(signatureCrypto, tokenCallbackHandler));
- store.add(token);
+ if (samlAssertionHandler.isBearerAssertion()) {
+ break;
}
- } catch (Exception e) {
- throw new RampartException(
- "errorInAddingTokenIntoStore", e);
- }
- } else if (WSConstants.UT == actInt) {
+ //Store the token
+ try {
+ TokenStorage store = rmd.getTokenStorage();
+ if (store.getToken(samlAssertionHandler.getAssertionId()) == null) {
+ Token token = new Token(samlAssertionHandler.getAssertionId(),
+ samlAssertionHandler.getAssertionElement(),
+ samlAssertionHandler.getDateNotBefore(),
+ samlAssertionHandler.getDateNotOnOrAfter());
- WSUsernameTokenPrincipal userNameTokenPrincipal = (WSUsernameTokenPrincipal)wser.get(WSSecurityEngineResult.TAG_PRINCIPAL);
-
- String username = userNameTokenPrincipal.getName();
- msgCtx.setProperty(RampartMessageData.USERNAME, username);
-
- if (userNameTokenPrincipal.getNonce() != null) {
- // Check whether this is a replay attack. To verify that we need to check whether nonce value
- // is a repeating one
- int nonceLifeTimeInSeconds = 0;
-
- if (rpd.getRampartConfig() != null) {
-
- String stringLifeTime = rpd.getRampartConfig().getNonceLifeTime();
-
- try {
- nonceLifeTimeInSeconds = Integer.parseInt(stringLifeTime);
-
- } catch (NumberFormatException e) {
- log.error("Invalid value for nonceLifeTime in rampart configuration file.", e);
- throw new RampartException(
- "invalidNonceLifeTime", e);
-
+ token.setSecret(samlAssertionHandler.
+ getAssertionKeyInfoSecret(signatureCrypto, tokenCallbackHandler));
+ store.add(token);
}
+ } catch (Exception e) {
+ throw new RampartException(
+ "errorInAddingTokenIntoStore", e);
+ }
+ } else if (WSConstants.UT == actInt) {
+
+ WSUsernameTokenPrincipal userNameTokenPrincipal = (WSUsernameTokenPrincipal)wser.get(WSSecurityEngineResult.TAG_PRINCIPAL);
+
+ String username = userNameTokenPrincipal.getName();
+ msgCtx.setProperty(RampartMessageData.USERNAME, username);
+
+ if (userNameTokenPrincipal.getNonce() != null) {
+ // Check whether this is a replay attack. To verify that we need to check whether nonce value
+ // is a repeating one
+ int nonceLifeTimeInSeconds = 0;
+
+ if (rpd.getRampartConfig() != null) {
+
+ String stringLifeTime = rpd.getRampartConfig().getNonceLifeTime();
+
+ try {
+ nonceLifeTimeInSeconds = Integer.parseInt(stringLifeTime);
+
+ } catch (NumberFormatException e) {
+ log.error("Invalid value for nonceLifeTime in rampart configuration file.", e);
+ throw new RampartException(
+ "invalidNonceLifeTime", e);
+
+ }
+ }
+
+ String serviceEndpointName = msgCtx.getAxisService().getEndpointName();
+
+ boolean valueRepeating = serviceNonceCache.isNonceRepeatingForService(serviceEndpointName, username, userNameTokenPrincipal.getNonce());
+
+ if (valueRepeating){
+ throw new RampartException("repeatingNonceValue", new Object[]{ userNameTokenPrincipal.getNonce(), username} );
+ }
+
+ serviceNonceCache.addNonceForService(serviceEndpointName, username, userNameTokenPrincipal.getNonce(), nonceLifeTimeInSeconds);
+ }
+ } else if (WSConstants.SIGN == actInt) {
+ X509Certificate cert = (X509Certificate) wser.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
+
+ if (rpd.isAsymmetricBinding() && cert == null && rpd.getInitiatorToken() != null
+ && !rpd.getInitiatorToken().isDerivedKeys()) {
+
+ // If symmetric binding is used, the certificate should be null.
+ // If certificate is not null then probably initiator and
+ // recipient are using 2 different bindings.
+ throw new RampartException("invalidSignatureAlgo");
}
- String serviceEndpointName = msgCtx.getAxisService().getEndpointName();
-
- boolean valueRepeating = serviceNonceCache.isNonceRepeatingForService(serviceEndpointName, username, userNameTokenPrincipal.getNonce());
-
- if (valueRepeating){
- throw new RampartException("repeatingNonceValue", new Object[]{ userNameTokenPrincipal.getNonce(), username} );
- }
-
- serviceNonceCache.addNonceForService(serviceEndpointName, username, userNameTokenPrincipal.getNonce(), nonceLifeTimeInSeconds);
+ msgCtx.setProperty(RampartMessageData.X509_CERT, cert);
}
- } else if (WSConstants.SIGN == actInt) {
- X509Certificate cert = (X509Certificate) wser.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
-
- if (rpd.isAsymmetricBinding() && cert == null && rpd.getInitiatorToken() != null
- && !rpd.getInitiatorToken().isDerivedKeys()) {
-
- // If symmetric binding is used, the certificate should be null.
- // If certificate is not null then probably initiator and
- // recipient are using 2 different bindings.
- throw new RampartException("invalidSignatureAlgo");
- }
-
- msgCtx.setProperty(RampartMessageData.X509_CERT, cert);
}
-
}
SOAPEnvelope env = Axis2Util.getSOAPEnvelopeFromDOMDocument(rmd.getDocument(), true);
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java b/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
index 22f738c..b195b22 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java
@@ -26,12 +26,14 @@
import org.apache.axis2.engine.AxisConfiguration;
import org.apache.axis2.util.PolicyUtil;
import org.apache.axis2.wsdl.WSDLConstants;
+import org.apache.neethi.Assertion;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyComponent;
import org.apache.neethi.PolicyEngine;
import org.apache.rahas.RahasConstants;
import org.apache.rahas.SimpleTokenStore;
import org.apache.rahas.TokenStorage;
+import org.apache.rampart.handler.RampartUsernameTokenValidator;
import org.apache.rampart.handler.WSSHandlerConstants;
import org.apache.rampart.policy.RampartPolicyBuilder;
import org.apache.rampart.policy.RampartPolicyData;
@@ -46,6 +48,7 @@
import org.apache.ws.security.SOAPConstants;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSSConfig;
+import org.apache.ws.security.WSSecurityEngine;
import org.apache.ws.security.WSSecurityEngineResult;
import org.apache.ws.security.WSSecurityException;
import org.apache.ws.security.conversation.ConversationConstants;
@@ -175,6 +178,9 @@
// Set the WSSConfig
this.config = WSSConfig.getNewInstance();
+ //Update the UsernameToken validator
+ this.config.setValidator(WSSecurityEngine.USERNAME_TOKEN, RampartUsernameTokenValidator.class);
+
// First obtain the axis service as we have to do a null check, there can be situations
// where Axis Service is null
AxisService axisService = msgCtx.getAxisService();
@@ -256,7 +262,7 @@
}
if(this.servicePolicy != null){
- List it = (List)this.servicePolicy.getAlternatives().next();
+ List<Assertion> it = this.servicePolicy.getAlternatives().next();
//Process policy and build policy data
this.policyData = RampartPolicyBuilder.build(it);
@@ -384,7 +390,7 @@
private void setWSSecurityVersions(String namespace) throws RampartException {
if (namespace == null || namespace.equals("")) {
- throw new RampartException("Security policy namespace cannot be null.");
+ throw new RampartException("securityPolicyNamespaceCannotBeNull");
}
if (SP11Constants.SP_NS.equals(namespace)) {
@@ -425,7 +431,7 @@
this.servicePolicy.addAssertion(rc);
}
- List it = (List) this.servicePolicy.getAlternatives().next();
+ List<Assertion> it = this.servicePolicy.getAlternatives().next();
//Process policy and build policy data
try {
@@ -444,14 +450,6 @@
}
/**
- * @param document The document to set.
- * @deprecated document is derived from MessageContext passed in constructor
- */
- public void setDocument(Document document) {
- this.document = document;
- }
-
- /**
* @return Returns the timeToLive.
*/
public int getTimeToLive() {
@@ -502,14 +500,6 @@
}
/**
- * @param msgContext The msgContext to set.
- * @deprecated MessageContext is set in constructor
- */
- public void setMsgContext(MessageContext msgContext) {
- this.msgContext = msgContext;
- }
-
- /**
* @return Returns the policyData.
*/
public RampartPolicyData getPolicyData() {
@@ -517,28 +507,6 @@
}
/**
- * @param policyData The policyData to set.
- * @deprecated Policy data determined within constructor
- */
- public void setPolicyData(RampartPolicyData policyData) throws RampartException {
- this.policyData = policyData;
-
- try {
- //if client side then check whether sig conf enabled
- //and get hold of the stored signature values
- if(this.isInitiator && !this.sender && policyData.isSignatureConfirmation()) {
- OperationContext opCtx = msgContext.getOperationContext();
- MessageContext outMsgCtx = opCtx
- .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
- msgContext.setProperty(WSHandlerConstants.SEND_SIGV, outMsgCtx
- .getProperty(WSHandlerConstants.SEND_SIGV));
- }
- } catch (AxisFault e) {
- throw new RampartException("errorGettingSignatureValuesForSigconf", e);
- }
- }
-
- /**
* @return Returns the secHeader.
*/
public WSSecHeader getSecHeader() {
@@ -720,14 +688,6 @@
}
/**
- * @param wstVersion The wstVersion to set.
- * @deprecated This is defined by the class.
- */
- public void setWstVersion(int wstVersion) {
- this.wstVersion = wstVersion;
- }
-
- /**
* @return Returns the secConvVersion.
*/
public int getSecConvVersion() {
@@ -741,13 +701,6 @@
return servicePolicy;
}
- /**
- * @param servicePolicy The servicePolicy to set.
- * @deprecated servicePolicy determined in constructor
- */
- public void setServicePolicy(Policy servicePolicy) {
- this.servicePolicy = servicePolicy;
- }
/**
* @return Returns the timestampId.
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
index 69473be..0572cd6 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/builder/AsymmetricBindingBuilder.java
@@ -27,14 +27,12 @@
import org.apache.rampart.policy.SupportingPolicyData;
import org.apache.rampart.policy.model.RampartConfig;
import org.apache.rampart.util.RampartUtil;
-import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.model.AlgorithmSuite;
import org.apache.ws.secpolicy.model.SupportingToken;
import org.apache.ws.secpolicy.model.Token;
import org.apache.ws.secpolicy.model.X509Token;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSEncryptionPart;
-import org.apache.ws.security.WSSConfig;
import org.apache.ws.security.WSSecurityException;
import org.apache.ws.security.conversation.ConversationException;
import org.apache.ws.security.handler.WSHandlerConstants;
@@ -202,12 +200,12 @@
// TODO may contain deifferent types of objects as values, therefore cannot use strongly type maps
// need to figure out a way
- HashMap sigSuppTokMap = null;
- HashMap endSuppTokMap = null;
- HashMap sgndEndSuppTokMap = null;
- HashMap sgndEncSuppTokMap = null;
- HashMap endEncSuppTokMap = null;
- HashMap sgndEndEncSuppTokMap = null;
+ HashMap<Token,Object> sigSuppTokMap = null;
+ HashMap<Token,Object> endSuppTokMap = null;
+ HashMap<Token,Object> sgndEndSuppTokMap = null;
+ HashMap<Token,Object> sgndEncSuppTokMap = null;
+ HashMap<Token,Object> endEncSuppTokMap = null;
+ HashMap<Token,Object> sgndEndEncSuppTokMap = null;
if(this.timestampElement != null){
sigParts.add(RampartUtil.createEncryptionPart(WSConstants.TIMESTAMP_TOKEN_LN,
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
index 98e0fed..6dc753c 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/builder/BindingBuilder.java
@@ -17,7 +17,10 @@
package org.apache.rampart.builder;
import org.apache.axiom.om.OMElement;
+import org.apache.axis2.addressing.AddressingConstants;
+import org.apache.axis2.addressing.AddressingHelper;
import org.apache.axis2.client.Options;
+import org.apache.axis2.description.AxisEndpoint;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.rahas.EncryptedKeyToken;
@@ -28,6 +31,7 @@
import org.apache.rampart.policy.RampartPolicyData;
import org.apache.rampart.policy.SupportingPolicyData;
import org.apache.rampart.policy.model.RampartConfig;
+import org.apache.rampart.policy.model.KerberosConfig;
import org.apache.rampart.util.RampartUtil;
import org.apache.ws.secpolicy.Constants;
import org.apache.ws.secpolicy.SPConstants;
@@ -38,6 +42,7 @@
import org.apache.ws.secpolicy.model.Token;
import org.apache.ws.secpolicy.model.UsernameToken;
import org.apache.ws.secpolicy.model.X509Token;
+import org.apache.ws.security.NamePasswordCallbackHandler;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSEncryptionPart;
import org.apache.ws.security.WSPasswordCallback;
@@ -53,6 +58,7 @@
import org.apache.ws.security.message.WSSecSignatureConfirmation;
import org.apache.ws.security.message.WSSecTimestamp;
import org.apache.ws.security.message.WSSecUsernameToken;
+import org.apache.ws.security.message.token.KerberosSecurity;
import org.apache.ws.security.message.token.SecurityTokenReference;
import org.apache.ws.security.util.WSSecurityUtil;
import org.w3c.dom.Document;
@@ -231,20 +237,6 @@
}
}
- //Deprecated after 1.5 release
- @Deprecated
- protected WSSecSignature getSignatureBuider(RampartMessageData rmd,
- Token token) throws RampartException {
- return getSignatureBuilder(rmd, token, null);
- }
-
- //Deprecated after 1.5 release
- @Deprecated
- protected WSSecSignature getSignatureBuider(RampartMessageData rmd, Token token,
- String userCertAlias) throws RampartException {
- return getSignatureBuilder(rmd, token, userCertAlias);
- }
-
protected WSSecSignature getSignatureBuilder(RampartMessageData rmd,
Token token)throws RampartException {
return getSignatureBuilder(rmd, token, null);
@@ -351,20 +343,18 @@
* @param suppTokens
* @throws RampartException
*/
- protected HashMap handleSupportingTokens(RampartMessageData rmd, SupportingToken suppTokens)
+ protected HashMap<Token,Object> handleSupportingTokens(RampartMessageData rmd, SupportingToken suppTokens)
throws RampartException {
//Create the list to hold the tokens
// TODO putting different types of objects. Need to figure out a way to add single types of objects
- HashMap endSuppTokMap = new HashMap();
+ HashMap<Token,Object> endSuppTokMap = new HashMap<Token,Object>();
if(suppTokens != null && suppTokens.getTokens() != null &&
suppTokens.getTokens().size() > 0) {
log.debug("Processing supporting tokens");
- ArrayList tokens = suppTokens.getTokens();
- for (Object objectToken : tokens) {
- Token token = (Token) objectToken;
+ for (Token token : suppTokens.getTokens()) {
org.apache.rahas.Token endSuppTok = null;
if (token instanceof IssuedToken && rmd.isInitiator()) {
String id = RampartUtil.getIssuedToken(rmd, (IssuedToken) token);
@@ -424,8 +414,10 @@
//Add the UT
Element elem = utBuilder.getUsernameTokenElement();
elem = RampartUtil.insertSiblingAfter(rmd, this.getInsertionLocation(), elem);
-
- encryptedTokensIdList.add(utBuilder.getId());
+
+ if (suppTokens.isEncryptedToken()) {
+ encryptedTokensIdList.add(utBuilder.getId());
+ }
//Move the insert location to the next element
this.setInsertionLocation(elem);
@@ -488,17 +480,13 @@
}
- protected List<byte[]> doEndorsedSignatures(RampartMessageData rmd, HashMap tokenMap) throws RampartException {
-
- Set tokenSet = tokenMap.keySet();
+ protected List<byte[]> doEndorsedSignatures(RampartMessageData rmd, HashMap<Token,Object> tokenMap) throws RampartException {
List<byte[]> sigValues = new ArrayList<byte[]>();
- for (Object aTokenSet : tokenSet) {
-
- Token token = (Token) aTokenSet;
-
- Object tempTok = tokenMap.get(token);
+ for (Map.Entry<Token,Object> entry : tokenMap.entrySet()) {
+ Token token = entry.getKey();
+ Object tempTok = entry.getValue();
// Migrating to a list
List<WSEncryptionPart> sigParts = new ArrayList<WSEncryptionPart>();
@@ -864,5 +852,95 @@
}
}
-
+ protected KerberosSecurity addKerberosToken(RampartMessageData rmd, Token token)
+ throws RampartException {
+ RampartPolicyData rpd = rmd.getPolicyData();
+ KerberosConfig krbConfig = rpd.getRampartConfig().getKerberosConfig();
+
+ if (krbConfig == null) {
+ throw new RampartException("noKerberosConfigDefined");
+ }
+
+ log.debug("Token inclusion: " + token.getInclusion());
+
+ String user = krbConfig.getPrincipalName();
+ if (user == null) {
+ user = rpd.getRampartConfig().getUser();
+ }
+
+ String password = krbConfig.getPrincipalPassword();
+ if (password == null) {
+ CallbackHandler handler = RampartUtil.getPasswordCB(rmd);
+
+ if (handler != null) {
+ if (user == null) {
+ log.debug("Password callback is configured but no user value is specified in the configuration");
+ throw new RampartException("userMissing");
+ }
+
+ //TODO We do not have a separate usage type for Kerberos token, let's use custom token
+ WSPasswordCallback[] cb = { new WSPasswordCallback(user, WSPasswordCallback.CUSTOM_TOKEN) };
+ try {
+ handler.handle(cb);
+ if (cb[0].getPassword() != null && !"".equals(cb[0].getPassword())) {
+ password = cb[0].getPassword();
+ }
+ } catch (IOException e) {
+ throw new RampartException("errorInGettingPasswordForUser", new String[] { user }, e);
+ } catch (UnsupportedCallbackException e) {
+ throw new RampartException("errorInGettingPasswordForUser", new String[] { user }, e);
+ }
+ }
+ }
+
+ String principalName = null;
+ boolean isUsernameServiceNameForm = KerberosConfig.USERNAME_NAME_FORM.equals(krbConfig.getServicePrincipalNameForm());
+
+ AxisEndpoint endpoint = rmd.getMsgContext().findEndpoint();
+ if (endpoint != null) {
+ if (log.isDebugEnabled()) {
+ log.debug("Identified endpoint: " + endpoint.getName() + ". Looking for SPN identity claim.");
+ }
+
+ OMElement addressingIdentity = AddressingHelper.getAddressingIdentityParameterValue(endpoint);
+ if (addressingIdentity != null) {
+ OMElement spnClaim = addressingIdentity.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_SPN);
+ if (spnClaim != null) {
+ principalName = spnClaim.getText();
+ isUsernameServiceNameForm = false;
+ if (log.isDebugEnabled()) {
+ log.debug("Found SPN identity claim: " + principalName);
+ }
+ }
+ else {
+ OMElement upnClaim = addressingIdentity.getFirstChildWithName(AddressingConstants.QNAME_IDENTITY_UPN);
+ if (upnClaim != null) {
+ principalName = upnClaim.getText();
+ isUsernameServiceNameForm = true;
+ if (log.isDebugEnabled()) {
+ log.debug("Found UPN identity claim: " + principalName);
+ }
+ } else if (log.isDebugEnabled()) {
+ log.debug(String.format("Neither SPN nor UPN identity claim found in %s EPR element for endpoint %s.", addressingIdentity.getQName().toString(), endpoint.getName()));
+ }
+ }
+ }
+ }
+
+ if (principalName == null) {
+ principalName = krbConfig.getServicePrincipalName();
+ }
+
+ try {
+ KerberosSecurity bst = new KerberosSecurity(rmd.getDocument());
+
+ NamePasswordCallbackHandler cb = new NamePasswordCallbackHandler(user, password);
+ bst.retrieveServiceTicket(krbConfig.getJaasContext(), cb, principalName, isUsernameServiceNameForm,
+ krbConfig.isRequstCredentialDelegation(), krbConfig.getDelegationCredential());
+
+ return bst;
+ } catch (WSSecurityException e) {
+ throw new RampartException("errorInBuildingKereberosToken", e);
+ }
+ }
}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
index 2bee572..de05429 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/builder/TransportBindingBuilder.java
@@ -32,6 +32,7 @@
import org.apache.ws.secpolicy.model.AlgorithmSuite;
import org.apache.ws.secpolicy.model.Header;
import org.apache.ws.secpolicy.model.IssuedToken;
+import org.apache.ws.secpolicy.model.KerberosToken;
import org.apache.ws.secpolicy.model.SecureConversationToken;
import org.apache.ws.secpolicy.model.SignedEncryptedParts;
import org.apache.ws.secpolicy.model.SupportingToken;
@@ -44,10 +45,16 @@
import org.apache.ws.security.conversation.ConversationException;
import org.apache.ws.security.handler.WSHandlerConstants;
import org.apache.ws.security.message.*;
+import org.apache.ws.security.message.token.KerberosSecurity;
+import org.apache.ws.security.util.Base64;
+import org.apache.ws.security.util.WSSecurityUtil;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
+import javax.crypto.SecretKey;
import javax.xml.crypto.dsig.Reference;
+import javax.xml.crypto.dsig.SignatureMethod;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -138,6 +145,8 @@
} else if (token instanceof SecureConversationToken) {
handleSecureConversationTokens(rmd, (SecureConversationToken) token);
signatureValues.add(doSecureConversationSignature(rmd, token, signdParts));
+ } else if (token instanceof KerberosToken) {
+ signatureValues.add(doKerberosTokenSignature(rmd, (KerberosToken)token, signdParts));
}
}
}
@@ -292,6 +301,77 @@
}
+ /**
+ * Generates a signature over the timestamp element (if any) using the Kerberos client/server session key.
+ *
+ * @param rmd
+ * @param token
+ * @param signdParts
+ */
+ private byte[] doKerberosTokenSignature(RampartMessageData rmd, KerberosToken token, SignedEncryptedParts signdParts) throws RampartException {
+
+ Document doc = rmd.getDocument();
+
+ List<WSEncryptionPart> sigParts = new ArrayList<WSEncryptionPart>();
+
+ //TODO Shall we always include a timestamp?
+ if (this.timestampElement != null) {
+ sigParts.add(new WSEncryptionPart(rmd.getTimestampId()));
+ }
+
+ if (signdParts != null) {
+ if (signdParts.isBody()) {
+ SOAPEnvelope env = rmd.getMsgContext().getEnvelope();
+ sigParts.add(new WSEncryptionPart(RampartUtil.addWsuIdToElement(env.getBody())));
+ }
+
+ ArrayList headers = signdParts.getHeaders();
+ for (Iterator iterator = headers.iterator(); iterator.hasNext();) {
+ Header header = (Header) iterator.next();
+ WSEncryptionPart wep = new WSEncryptionPart(header.getName(),
+ header.getNamespace(),
+ "Content");
+ sigParts.add(wep);
+ }
+ }
+
+ try {
+ KerberosSecurity kerberosBst = addKerberosToken(rmd, token);
+ kerberosBst.setID("Id-" + kerberosBst.hashCode());
+
+ WSSecSignature sign = new WSSecSignature();
+ sign.setSignatureAlgorithm(SignatureMethod.HMAC_SHA1);
+
+ if (token.isRequiresKeyIdentifierReference()) {
+ sign.setKeyIdentifierType(WSConstants.CUSTOM_KEY_IDENTIFIER);
+
+ byte[] digestBytes = WSSecurityUtil.generateDigest(kerberosBst.getToken());
+ sign.setCustomTokenId(Base64.encode(digestBytes));
+ sign.setCustomTokenValueType(WSConstants.WSS_KRB_KI_VALUE_TYPE);
+ } else {
+ sign.setKeyIdentifierType(WSConstants.CUSTOM_SYMM_SIGNING);
+
+ sign.setCustomTokenId(kerberosBst.getID());
+ sign.setCustomTokenValueType(kerberosBst.getValueType());
+ }
+
+ SecretKey secretKey = kerberosBst.getSecretKey();
+ sign.setSecretKey(secretKey.getEncoded());
+
+ sign.prepare(doc, null, rmd.getSecHeader());
+
+ WSSecurityUtil.prependChildElement(rmd.getSecHeader().getSecurityHeader(), kerberosBst.getElement());
+
+ List<Reference> referenceList = sign.addReferencesToSign(sigParts, rmd.getSecHeader());
+
+ sign.computeSignature(referenceList, false, null);
+
+ return sign.getSignatureValue();
+ } catch (WSSecurityException e) {
+ throw new RampartException("errorInSignatureWithKerberosToken", e);
+ }
+ }
+
private void appendToHeader(WSSecHeader secHeader, Element appendingChild) {
// TODO this is bit dubious, before migration code was like "dkSig.appendSigToHeader(rmd.getSecHeader())"
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java
index 781cf37..6480b60 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/handler/PostDispatchVerificationHandler.java
@@ -30,7 +30,6 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
import org.apache.rampart.policy.RampartPolicyData;
-import org.apache.rampart.util.HandlerParameterDecoder;
import org.apache.rampart.util.RampartUtil;
import org.apache.ws.secpolicy.model.Binding;
import org.apache.ws.secpolicy.model.SupportingToken;
@@ -122,13 +121,13 @@
return InvocationResponse.CONTINUE;
}
- Iterator alternatives = policy.getAlternatives();
+ Iterator<List<Assertion>> alternatives = policy.getAlternatives();
boolean securityPolicyPresent = false;
if(alternatives.hasNext()) {
- List assertions = (List)alternatives.next();
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion assertion = (Assertion) iterator.next();
+ List<Assertion> assertions = alternatives.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion assertion = iterator.next();
//Check for any *Binding assertion
if (assertion instanceof Binding) {
securityPolicyPresent = true;
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartUsernameTokenValidator.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartUsernameTokenValidator.java
new file mode 100644
index 0000000..b8990b7
--- /dev/null
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/handler/RampartUsernameTokenValidator.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2004,2013 The Apache Software Foundation.
+ *
+ * Licensed 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.rampart.handler;
+
+import java.io.IOException;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.rampart.RampartConstants;
+import org.apache.ws.security.WSPasswordCallback;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.handler.RequestData;
+import org.apache.ws.security.message.token.UsernameToken;
+import org.apache.ws.security.validate.UsernameTokenValidator;
+
+/**
+ * Overriding the default UsernameTokenValidator provided by WSS4J because the
+ * default implementation expects the user to provide the plain text password to
+ * WSS4J for validation.
+ *
+ */
+public class RampartUsernameTokenValidator extends UsernameTokenValidator {
+
+ private static Log mlog = LogFactory.getLog(RampartConstants.MESSAGE_LOG);
+
+ @Override
+ protected void verifyPlaintextPassword(UsernameToken usernameToken,
+ RequestData data) throws WSSecurityException {
+
+ String user = usernameToken.getName();
+ String password = usernameToken.getPassword();
+ String pwType = usernameToken.getPasswordType();
+
+ // Provide the password to the user for validation
+ WSPasswordCallback pwCb = new WSPasswordCallback(user, password,
+ pwType, WSPasswordCallback.USERNAME_TOKEN, data);
+ try {
+ data.getCallbackHandler().handle(new Callback[] { pwCb });
+ } catch (IOException e) {
+ if (mlog.isDebugEnabled()) {
+ mlog.debug(e);
+ }
+ throw new WSSecurityException(
+ WSSecurityException.FAILED_AUTHENTICATION);
+ } catch (UnsupportedCallbackException e) {
+ if (mlog.isDebugEnabled()) {
+ mlog.debug(e);
+ }
+ throw new WSSecurityException(
+ WSSecurityException.FAILED_AUTHENTICATION);
+ }
+
+ }
+}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllHandler.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllHandler.java
deleted file mode 100644
index 1c80f50..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllHandler.java
+++ /dev/null
@@ -1,210 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.HandlerDescription;
-import org.apache.axis2.description.Parameter;
-import org.apache.axis2.engine.Handler;
-import org.apache.rampart.util.Axis2Util;
-import org.apache.ws.security.handler.WSHandler;
-
-/**
- * Class WSDoAllHandler
- */
-public abstract class WSDoAllHandler extends WSHandler implements Handler {
-
- /**
- * Field EMPTY_HANDLER_METADATA
- */
- private static HandlerDescription EMPTY_HANDLER_METADATA =
- new HandlerDescription("default Handler");
-
- private final static String WSS_PASSWORD = "password";
-
- private final static String WSS_USERNAME = "username";
-
- /**
- * Field handlerDesc
- */
- protected HandlerDescription handlerDesc;
-
- /**
- * In Axis2, the user cannot set inflow and outflow parameters.
- * Therefore, we need to map the Axis2 specific inflow and outflow
- * parameters to WSS4J params,
- * <p/>
- * Knowledge of inhandler and out handler is used to get the mapped value.
- */
- protected boolean inHandler;
-
- /**
- * Constructor AbstractHandler.
- */
- public WSDoAllHandler() {
- handlerDesc = EMPTY_HANDLER_METADATA;
- }
-
- public abstract void processMessage(MessageContext msgContext) throws AxisFault;
-
- /* (non-Javadoc)
- * @see org.apache.axis2.engine.Handler#invoke(org.apache.axis2.context.MessageContext)
- */
- public InvocationResponse invoke(MessageContext msgContext) throws AxisFault {
- //If the security module is not engaged for this service
- //do not do any processing
- if (msgContext.isEngaged(WSSHandlerConstants.SECURITY_MODULE_NAME)) {
- this.processMessage(msgContext);
- }
- return InvocationResponse.CONTINUE;
- }
-
- public void flowComplete(MessageContext msgContext)
- {
- }
-
- /**
- * Method getName.
- *
- * @return Returns name.
- */
- public String getName() {
- return handlerDesc.getName();
- }
-
- /**
- * Method cleanup.
- */
- public void cleanup() {
- }
-
- /**
- * Method getParameter.
- *
- * @param name
- * @return Returns parameter.
- */
- public Parameter getParameter(String name) {
- return handlerDesc.getParameter(name);
- }
-
- /**
- * Method init.
- *
- * @param handlerdesc
- */
- public void init(HandlerDescription handlerdesc) {
- this.handlerDesc = handlerdesc;
- }
-
- /**
- * Gets the handler description.
- *
- * @return Returns handler description.
- */
- public HandlerDescription getHandlerDesc() {
- return handlerDesc;
- }
-
- /* (non-Javadoc)
- * @see java.lang.Object#toString()
- */
- public String toString() {
- String name = this.getName();
- return (name != null) ? name : "";
- }
-
-
- public Object getProperty(Object msgContext, String axisKey) {
-
- int repetition = getCurrentRepetition(msgContext);
-
- String key = Axis2Util.getKey(axisKey, inHandler, repetition);
- Object property = ((MessageContext) msgContext).getProperty(key);
- if (property == null) {
- //Try the description hierarchy
- Parameter parameter = ((MessageContext) msgContext).getParameter(key);
- if (parameter != null) {
- property = parameter.getValue();
- }
- }
- return property;
- }
-
- /**
- * Returns the repetition number from the message context
- *
- * @param msgContext
- * @return Returns int.
- */
- protected int getCurrentRepetition(Object msgContext) {
- //get the repetition from the message context
- int repetition = 0;
- if (!inHandler) {//We only need to repeat the out handler
- Integer count = (Integer) ((MessageContext) msgContext).getProperty(WSSHandlerConstants.CURRENT_REPETITON);
- if (count != null) { //When we are repeating the handler
- repetition = count.intValue();
- }
- }
- return repetition;
- }
-
- public String getPassword(Object msgContext) {
- return (String) ((MessageContext) msgContext).getProperty(WSS_PASSWORD);
- }
-
- public void setPassword(Object msgContext, String password) {
- ((MessageContext) msgContext).setProperty(WSS_PASSWORD, password);
- }
-
- public String getUsername(Object msgContext) {
- return (String) ((MessageContext) msgContext).getProperty(WSS_USERNAME);
- }
-
- public void setUsername(Object msgContext, String username) {
- ((MessageContext) msgContext).setProperty(WSS_USERNAME, username);
- }
-
- /**
- * Gets option. Extracts the configuration values from the service.xml
- * and/or axis2.xml. Values set in the service.xml takes priority over
- * values of the axis2.xml
- */
- public Object getOption(String axisKey) {
- Parameter parameter = this.handlerDesc.getParameter(axisKey);
- return (parameter == null) ? null : parameter.getValue();
- }
-
- public void setProperty(Object msgContext, String key, Object value) {
- ((MessageContext) msgContext).setProperty(key, value);
- }
-
- /**
- * Overrides the class loader used to load the PW callback class.
- *
- * @param msgCtx MessageContext
- * @return Returns class loader.
- */
- public java.lang.ClassLoader getClassLoader(Object msgCtx) {
- try {
- return ((MessageContext) msgCtx).getAxisService().getClassLoader();
- } catch (Throwable t) {
- return super.getClassLoader(msgCtx);
- }
- }
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllReceiver.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllReceiver.java
deleted file mode 100644
index 86280a4..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllReceiver.java
+++ /dev/null
@@ -1,388 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMException;
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPHeader;
-import org.apache.axiom.soap.SOAPHeaderBlock;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.AddressingConstants;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.rampart.RampartConstants;
-import org.apache.rampart.util.Axis2Util;
-import org.apache.rampart.util.HandlerParameterDecoder;
-import org.apache.rampart.util.RampartUtil;
-import org.apache.ws.security.*;
-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;
-import org.w3c.dom.Document;
-
-import javax.security.auth.callback.CallbackHandler;
-import javax.xml.namespace.QName;
-
-import java.security.cert.X509Certificate;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * @deprecated
- */
-public class WSDoAllReceiver extends WSDoAllHandler {
-
- private static final Log log = LogFactory.getLog(WSDoAllReceiver.class);
- private static Log mlog = LogFactory.getLog(RampartConstants.MESSAGE_LOG);
-
- public WSDoAllReceiver() {
- super();
- inHandler = true;
- }
-
- public void processMessage(MessageContext msgContext) throws AxisFault {
-
- if(mlog.isDebugEnabled()){
- mlog.debug("*********************** WSDoAllReceiver recieved \n"+msgContext.getEnvelope());
- }
-
- boolean doDebug = log.isDebugEnabled();
-
- if (doDebug) {
- log.debug("WSDoAllReceiver: enter invoke() ");
- }
-
- String useDoomValue = (String) getProperty(msgContext,
- WSSHandlerConstants.USE_DOOM);
- boolean useDoom = useDoomValue != null
- && Constants.VALUE_TRUE.equalsIgnoreCase(useDoomValue);
-
- RequestData reqData = new RequestData();
- try {
-
- this.processBasic(msgContext, useDoom, reqData);
- } catch (AxisFault axisFault) {
- setAddressingInformationOnFault(msgContext);
- throw axisFault;
- } catch (Exception e) {
- setAddressingInformationOnFault(msgContext);
- throw new AxisFault(e.getMessage(), e);
- } finally {
-
- if (reqData != null) {
- reqData.clear();
- reqData = null;
- }
-
- if (doDebug) {
- log.debug("WSDoAllReceiver: exit invoke()");
- }
- }
-
- }
-
- private void processBasic(MessageContext msgContext, boolean useDoom, RequestData reqData)
- throws Exception {
-
- // populate the properties
- try {
- HandlerParameterDecoder.processParameters(msgContext, true);
- } catch (Exception e) {
- throw new AxisFault("Configuration error", e);
- }
-
- // Retrieves signature crypto and set it to decryption crypto
- RampartUtil.setDecryptionCrypto(msgContext);
-
- reqData.setMsgContext(msgContext);
-
- if (((getOption(WSSHandlerConstants.INFLOW_SECURITY)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.INFLOW_SECURITY)) == null)) {
-
- if (msgContext.isServerSide() &&
- ((getOption(WSSHandlerConstants.INFLOW_SECURITY_SERVER)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.INFLOW_SECURITY_SERVER)) == null)) {
-
- return;
- } else if (((getOption(WSSHandlerConstants.INFLOW_SECURITY_CLIENT)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.INFLOW_SECURITY_CLIENT)) == null)) {
-
- return;
- }
- }
-
- List<java.lang.Integer> actions = new ArrayList<Integer>();
- String action = null;
- if ((action = (String) getOption(WSSHandlerConstants.ACTION_ITEMS)) == null) {
- action = (String) getProperty(msgContext,
- WSSHandlerConstants.ACTION_ITEMS);
- }
- if (action == null) {
- throw new AxisFault("WSDoAllReceiver: No action items defined");
- }
- int doAction = WSSecurityUtil.decodeAction(action, actions);
-
- if (doAction == WSConstants.NO_SECURITY) {
- return;
- }
-
- String actor = (String) getOption(WSHandlerConstants.ACTOR);
-
- Document doc = null;
-
- try {
- doc = Axis2Util.getDocumentFromSOAPEnvelope(msgContext
- .getEnvelope(), useDoom);
- } catch (WSSecurityException wssEx) {
- throw new AxisFault(
- "WSDoAllReceiver: Error in converting to Document", wssEx);
- }
-
- // Do not process faults
- SOAPConstants soapConstants = WSSecurityUtil.getSOAPConstants(doc
- .getDocumentElement());
- if (WSSecurityUtil.findElement(doc.getDocumentElement(), "Fault",
- soapConstants.getEnvelopeURI()) != null) {
- return;
- }
-
- /*
- * 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 = getPasswordCallbackHandler(reqData);
- }
-
- // Copy the WSHandlerConstants.SEND_SIGV over to the new message
- // context - if it exists, if signatureConfirmation in the response msg
- String sigConfEnabled = null;
- if ((sigConfEnabled = (String) getOption(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION)) == null) {
- sigConfEnabled = (String) getProperty(msgContext,
- WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION);
- }
-
- // To handle sign confirmation of a sync response
- // TODO Async response
- if (!msgContext.isServerSide()
- && !"false".equalsIgnoreCase(sigConfEnabled)) {
- OperationContext opCtx = msgContext.getOperationContext();
- MessageContext outMsgCtx = opCtx
- .getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
- if (outMsgCtx != null) {
- msgContext.setProperty(WSHandlerConstants.SEND_SIGV, outMsgCtx
- .getProperty(WSHandlerConstants.SEND_SIGV));
- } else {
- throw new WSSecurityException(
- "Cannot obtain request message context");
- }
- }
-
- /*
- * Get and check the Signature specific parameters first because they
- * may be used for encryption too.
- */
-
- doReceiverAction(doAction, reqData);
-
- List<WSSecurityEngineResult> wsResult = null;
- try {
- wsResult = secEngine.processSecurityHeader(doc, actor, cbHandler,
- reqData.getSigCrypto(), reqData.getDecCrypto());
- } catch (WSSecurityException ex) {
- throw new AxisFault("WSDoAllReceiver: security processing failed",
- ex);
- }
- if (wsResult == null) { // no security header found
- if (doAction == WSConstants.NO_SECURITY) {
- return;
- } else {
- throw new AxisFault(
- "WSDoAllReceiver: Incoming message does not contain required Security header");
- }
- }
-
- if (reqData.getWssConfig().isEnableSignatureConfirmation()
- && !msgContext.isServerSide()) {
- checkSignatureConfirmation(reqData, wsResult);
- }
-
- /**
- * Set the new SOAPEnvelope
- */
-
- msgContext.setEnvelope(Axis2Util.getSOAPEnvelopeFromDOMDocument(doc, useDoom));
-
- /*
- * After setting the new current message, probably modified because of
- * decryption, we need to locate the security header. That is, we force
- * Axis (with getSOAPEnvelope()) to parse the string, build the new
- * header. Then we examine, look up the security header and set the
- * header as processed.
- *
- * Please note: find all header elements that contain the same actor
- * that was given to processSecurityHeader(). Then check if there is a
- * security header with this actor.
- */
- SOAPHeader header = null;
- try {
- header = msgContext.getEnvelope().getHeader();
- } catch (OMException ex) {
- throw new AxisFault(
- "WSDoAllReceiver: cannot get SOAP header after security processing",
- ex);
- }
-
- Iterator headers = header.examineHeaderBlocks(actor);
-
- SOAPHeaderBlock headerBlock = null;
-
- while (headers.hasNext()) { // Find the wsse header
- SOAPHeaderBlock hb = (SOAPHeaderBlock) headers.next();
- if (hb.getLocalName().equals(WSConstants.WSSE_LN)
- && hb.getNamespace().getNamespaceURI().equals(WSConstants.WSSE_NS)) {
- headerBlock = hb;
- break;
- }
- }
-
- if(headerBlock != null) {
- headerBlock.setProcessed();
- }
-
- /*
- * 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 list
- WSSecurityEngineResult actionResult = WSSecurityUtil.fetchActionResult(
- wsResult, WSConstants.SIGN);
-
- if (actionResult != null) {
- X509Certificate returnCert = (X509Certificate)actionResult.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
-
- if (returnCert != null) {
- CertificateValidator certificateValidator = new CertificateValidator();
-
- if (!certificateValidator.validateCertificate(returnCert, reqData.getSigCrypto())) {
- throw new AxisFault(
- "WSDoAllReceiver: The certificate used for the signature is not trusted");
- }
- }
- }
-
- /*
- * 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 list
- actionResult = WSSecurityUtil.fetchActionResult(wsResult,
- WSConstants.TS);
-
- if (actionResult != null) {
- Timestamp timestamp = (Timestamp)actionResult.get(WSSecurityEngineResult.TAG_TIMESTAMP);
-
- if (timestamp != null) {
- String ttl = null;
- if ((ttl = (String) getOption(WSHandlerConstants.TTL_TIMESTAMP)) == null) {
- ttl = (String) getProperty(msgContext,
- WSHandlerConstants.TTL_TIMESTAMP);
- }
- int ttl_i = 0;
- if (ttl != null) {
- try {
- ttl_i = Integer.parseInt(ttl);
- } catch (NumberFormatException e) {
- ttl_i = reqData.getTimeToLive();
- }
- }
- if (ttl_i <= 0) {
- ttl_i = reqData.getTimeToLive();
- }
-
- // TODO configure future time to live
- if (!timestamp.verifyCreated(ttl_i, 60)) {
- throw new AxisFault(
- "WSDoAllReceiver: The timestamp could not be validated");
- }
- }
- }
-
- /*
- * now check the security actions: do they match, in right order?
- */
- if (!checkReceiverResults(wsResult, actions)) {
- throw new AxisFault(
- "WSDoAllReceiver: security processing failed (actions mismatch)");
-
- }
- /*
- * All ok up to this point. Now construct and setup the security result
- * structure. The service may fetch this and check it. Also the
- * DoAllSender will use this in certain situations such as:
- * USE_REQ_SIG_CERT to encrypt
- */
- List<WSHandlerResult> results = null;
- if ((results = (List<WSHandlerResult>) getProperty(msgContext,
- WSHandlerConstants.RECV_RESULTS)) == null) {
- results = new ArrayList<WSHandlerResult>();
- msgContext.setProperty(WSHandlerConstants.RECV_RESULTS, results);
- }
- WSHandlerResult rResult = new WSHandlerResult(actor, wsResult);
- results.add(0, rResult);
- }
-
- private void setAddressingInformationOnFault(MessageContext msgContext) {
- SOAPEnvelope env = msgContext.getEnvelope();
- SOAPHeader header = env.getHeader();
-
- if (header != null) {
- OMElement msgIdElem = header.getFirstChildWithName(new QName(
- AddressingConstants.Final.WSA_NAMESPACE,
- AddressingConstants.WSA_MESSAGE_ID));
- if (msgIdElem == null) {
- msgIdElem = header.getFirstChildWithName(new QName(
- AddressingConstants.Submission.WSA_NAMESPACE,
- AddressingConstants.WSA_MESSAGE_ID));
- }
- if (msgIdElem != null && msgIdElem.getText() != null) {
- msgContext.getOptions().setMessageId(msgIdElem.getText());
- }
- }
- }
-
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllSender.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllSender.java
deleted file mode 100644
index 28e57d5..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSDoAllSender.java
+++ /dev/null
@@ -1,281 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler;
-
-import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.rampart.RampartConstants;
-import org.apache.rampart.util.Axis2Util;
-import org.apache.rampart.util.HandlerParameterDecoder;
-import org.apache.rampart.util.MessageOptimizer;
-import org.apache.rampart.util.RampartUtil;
-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;
-import org.w3c.dom.Document;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * @deprecated
- */
-public class WSDoAllSender extends WSDoAllHandler {
-
- private static final Log log = LogFactory.getLog(WSDoAllSender.class);
- private static Log mlog = LogFactory.getLog(RampartConstants.MESSAGE_LOG);
-
- // TODO can we get rid of this ?
- private static final String SND_SECURITY = "SND_SECURITY";
-
-
- public WSDoAllSender() {
- super();
- inHandler = false;
- }
-
-
-
- public void processMessage(MessageContext msgContext) throws AxisFault {
-
- String useDoomValue = (String) getProperty(msgContext,
- WSSHandlerConstants.USE_DOOM);
- boolean useDoom = useDoomValue != null
- && Constants.VALUE_TRUE.equalsIgnoreCase(useDoomValue);
-
- RequestData reqData = new RequestData();
-
- try {
- //If the msgs are msgs to an STS then use basic WS-Sec
- processBasic(msgContext, useDoom, reqData);
-
- } catch (Exception e) {
- throw new AxisFault(e.getMessage(), e);
- }
- finally {
- if(reqData != null) {
- reqData.clear();
- reqData = null;
- }
- }
-
- if(mlog.isDebugEnabled()){
- mlog.debug("*********************** WSDoAllSender sent out \n"+msgContext.getEnvelope());
- }
- }
-
- /**
- * This will carryout the WS-Security related operations.
- *
- * @param msgContext
- * @param useDoom
- * @throws WSSecurityException
- * @throws AxisFault
- */
- private void processBasic(MessageContext msgContext, boolean useDoom,
- RequestData reqData) throws WSSecurityException, AxisFault {
- boolean doDebug = log.isDebugEnabled();
-
- try {
- HandlerParameterDecoder.processParameters(msgContext,false);
- } catch (Exception e) {
- throw new AxisFault("Configureation error", e);
- }
-
- // If encryption crypto is not already set use signatureCrypto as encryption crypto.
- RampartUtil.setEncryptionCrypto(msgContext);
-
- if (doDebug) {
- log.debug("WSDoAllSender: enter invoke()");
- }
-
- /*
- * Copy the RECV_RESULTS over to the current message context
- * - IF available
- */
- OperationContext opCtx = msgContext.getOperationContext();
- MessageContext inMsgCtx;
- if(opCtx != null &&
- (inMsgCtx = opCtx.getMessageContext(WSDLConstants.MESSAGE_LABEL_IN_VALUE)) != null) {
- msgContext.setProperty(WSHandlerConstants.RECV_RESULTS,
- inMsgCtx.getProperty(WSHandlerConstants.RECV_RESULTS));
- }
-
-
-
- reqData.setNoSerialization(false);
- reqData.setMsgContext(msgContext);
-
- if (((getOption(WSSHandlerConstants.OUTFLOW_SECURITY)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.OUTFLOW_SECURITY)) == null)) {
-
- if (msgContext.isServerSide() &&
- ((getOption(WSSHandlerConstants.OUTFLOW_SECURITY_SERVER)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.OUTFLOW_SECURITY_SERVER)) == null)) {
-
- return;
- } else if (((getOption(WSSHandlerConstants.OUTFLOW_SECURITY_CLIENT)) == null) &&
- ((getProperty(msgContext, WSSHandlerConstants.OUTFLOW_SECURITY_CLIENT)) == null)) {
-
- return;
- }
- }
-
- List<Integer> actions = new ArrayList<Integer>();
- String action = null;
- if ((action = (String) getOption(WSSHandlerConstants.ACTION_ITEMS)) == null) {
- action = (String) getProperty(msgContext, WSSHandlerConstants.ACTION_ITEMS);
- }
- if (action == null) {
- throw new AxisFault("WSDoAllReceiver: No action items defined");
- }
-
- 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().length() == 0) {
- 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) {
- /*
- * We need a username - if none throw an AxisFault. For
- * encryption there is a specific parameter to get a username.
- */
- if (reqData.getUsername() == null
- || reqData.getUsername().length() == 0) {
- throw new AxisFault(
- "WSDoAllSender: Empty username for specified action");
- }
- }
-
- /*
- * Now get the SOAPEvelope from the message context and convert it
- * into a Document
- *
- * Now we can perform our security operations on this request.
- */
-
-
- Document doc = null;
- /*
- * If the message context property conatins a document then this is
- * a chained handler.
- */
- if ((doc = (Document) ((MessageContext)reqData.getMsgContext())
- .getProperty(SND_SECURITY)) == null) {
- try {
- doc = Axis2Util.getDocumentFromSOAPEnvelope(msgContext.getEnvelope(), useDoom);
- } catch (WSSecurityException wssEx) {
- throw new AxisFault("WSDoAllReceiver: Error in converting to Document", wssEx);
- }
- }
-
-
- doSenderAction(doAction, doc, reqData, actions, !msgContext.isServerSide());
-
- /*
- * If noSerialization is false, this handler shall be the last (or
- * only) one in a handler chain. If noSerialization is true, just
- * set the processed Document in the transfer property. The next
- * Axis WSS4J handler takes it and performs additional security
- * processing steps.
- *
- */
- if (reqData.isNoSerialization()) {
- ((MessageContext)reqData.getMsgContext()).setProperty(SND_SECURITY,
- doc);
- } else {
- if(useDoom) {
- msgContext.setEnvelope((SOAPEnvelope)doc.getDocumentElement());
- } else {
- msgContext.setEnvelope(Axis2Util.getSOAPEnvelopeFromDOMDocument(doc, useDoom));
- }
- ((MessageContext)reqData.getMsgContext()).setProperty(SND_SECURITY, null);
- }
-
-
- /**
- * If the optimizeParts parts are set then optimize them
- */
- String optimizeParts;
-
- if((optimizeParts = (String) getOption(WSSHandlerConstants.OPTIMIZE_PARTS)) == null) {
- optimizeParts = (String)
- getProperty(reqData.getMsgContext(), WSSHandlerConstants.OPTIMIZE_PARTS);
- }
- if(optimizeParts != null) {
- // Optimize the Envelope
- MessageOptimizer.optimize(msgContext.getEnvelope(),optimizeParts);
- }
-
- //Enable handler repetition
- Integer repeat;
- int repeatCount;
- if ((repeat = (Integer)getOption(WSSHandlerConstants.SENDER_REPEAT_COUNT)) == null) {
- repeat = (Integer)
- getProperty(reqData.getMsgContext(), WSSHandlerConstants.SENDER_REPEAT_COUNT);
- }
-
- repeatCount = repeat.intValue();
-
- //Get the current repetition from message context
- int repetition = this.getCurrentRepetition(msgContext);
-
- if(repeatCount > 0 && repetition < repeatCount) {
-
- reqData.clear();
- reqData = null;
-
- // Increment the repetition to indicate the next repetition
- // of the same handler
- repetition++;
- msgContext.setProperty(WSSHandlerConstants.CURRENT_REPETITON,
- Integer.valueOf(repetition));
-
- this.invoke(msgContext);
- }
-
- if (doDebug) {
- log.debug("WSDoAllSender: exit invoke()");
- }
- }
-
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/InflowConfiguration.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/InflowConfiguration.java
deleted file mode 100644
index 147c114..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/InflowConfiguration.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler.config;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axis2.description.Parameter;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.ws.security.handler.WSHandlerConstants;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-/**
- * This is the representation of the inflow configurations of the security
- * module.
- *
- * @deprecated
- */
-public class InflowConfiguration {
-
- private HashMap action = new HashMap();
-
- /**
- * Returns the configuration as an OMElement.
- * @return Returns Parameter.
- */
- public Parameter getProperty() {
-
- if (! action.containsKey("items")) {
- return null;
- }
-
- OMFactory fac = OMAbstractFactory.getOMFactory();
- //TODO: Find the constants for "Parameter" and "name"
- OMElement paramElement = fac.createOMElement("Parameter",null);
- paramElement.addAttribute(fac.createOMAttribute("name", null ,WSSHandlerConstants.INFLOW_SECURITY));
-
- OMElement actionElem = fac.createOMElement(
- WSSHandlerConstants.ACTION, null);
-
- // Get the set of kes of the selected action
- Iterator keys = action.keySet().iterator();
-
- while (keys.hasNext()) {
- String key = (String) keys.next();
- String value = (String) action.get(key);
- if(value != null && value.length() > 0) {
- // Create an element with the name of the key
- OMElement elem = fac.createOMElement(key, null);
- // Set the text value of the element
- elem.setText(value);
- // Add the element as a child of this action element
- actionElem.addChild(elem);
- }
- }
-
- paramElement.addChild(actionElem);
-
- Parameter param = new Parameter();
- param.setParameterElement(paramElement);
- param.setValue(paramElement);
- param.setName(WSSHandlerConstants.INFLOW_SECURITY);
-
- return param;
- }
-
- /**
- * Returns the action items.
- * @return Returns String.
- */
- public String getActionItems() {
- return (String)this.action.get(WSSHandlerConstants.ACTION_ITEMS);
- }
-
- /**
- * Sets the action items.
- * @param actionItems
- */
- public void setActionItems(String actionItems) {
- this.action.put(WSSHandlerConstants.ACTION_ITEMS, actionItems);
- }
-
- /**
- * Returns the decryption property file.
- * @return Returns String.
- */
- public String getDecryptionPropFile() {
- return (String)this.action.get(WSHandlerConstants.DEC_PROP_FILE);
- }
-
- /**
- * Sets the decryption property file.
- * @param decryptionPropFile
- */
- public void setDecryptionPropFile(String decryptionPropFile) {
- this.action.put(WSHandlerConstants.DEC_PROP_FILE,decryptionPropFile);
- }
-
- /**
- * Sets the decryption property ref key.
- * @param decryptionPropRefKey
- */
- public void setDecryptionPropRefKey(String decryptionPropRefKey) {
- this.action.put(WSHandlerConstants.DEC_PROP_REF_ID,decryptionPropRefKey);
- }
-
- /**
- * Returns the password callback class name.
- * @return Returns String.
- */
- public String getPasswordCallbackClass() {
- return (String)this.action.get(WSHandlerConstants.PW_CALLBACK_CLASS);
- }
-
- /**
- * Sets the password callback class name.
- * @param passwordCallbackClass
- */
- public void setPasswordCallbackClass(String passwordCallbackClass) {
- this.action.put(WSHandlerConstants.PW_CALLBACK_CLASS,passwordCallbackClass);
- }
-
- /**
- * Returns the signature property file.
- * @return Returns String.
- */
- public String getSignaturePropFile() {
- return (String)this.action.get(WSHandlerConstants.SIG_PROP_FILE);
- }
-
- /**
- * Sets the signature property file.
- * @param signaturePropFile
- */
- public void setSignaturePropFile(String signaturePropFile) {
- this.action.put(WSHandlerConstants.SIG_PROP_FILE, signaturePropFile);
- }
-
- /**
- * Sets the signature property ref key.
- * @param signaturePropRefId
- */
- public void setSignaturePropRefId(String signaturePropRefId) {
- this.action.put(WSHandlerConstants.SIG_PROP_REF_ID, signaturePropRefId);
- }
-
- /**
- * Sets whether signature confirmation should be enabled or not.
- * @param value
- */
- public void setEnableSignatureConfirmation(boolean value) {
- this.action.put(
- WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, value?"true":"false");
- }
-
- /**
- * Returns whether signature confirmation should be enabled or not.
- * @return Returns String.
- */
- public String getEnableSignatureConfirmation() {
- return (String) this.action
- .get(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION);
- }
-
- /**
- * This will set whether request or response evaluation should adhere to "Basic Security Profile"
- * @param value true if evaluation should adhere to "Basic Security Profile" else false. Default is true.
- */
- public void setBSPCompliant(boolean value) {
- this.action.put(
- WSHandlerConstants.IS_BSP_COMPLIANT, value?"true":"false");
- }
-
-
- /**
- * Gets whether security processing is configured to handle BSP compliant manner.
- * "true" or "false"
- * @return Returns "true" or "false".
- */
- public String getBSPCompliant() {
- return (String) this.action
- .get(WSHandlerConstants.IS_BSP_COMPLIANT);
- }
-
-
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/OutflowConfiguration.java b/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/OutflowConfiguration.java
deleted file mode 100644
index 12d41cd..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/handler/config/OutflowConfiguration.java
+++ /dev/null
@@ -1,621 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler.config;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axis2.description.Parameter;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.ws.security.handler.WSHandlerConstants;
-
-import java.util.HashMap;
-import java.util.Iterator;
-
-/**
- * This is the representation of the outflow configurations of the security
- * module.
- *
- * @deprecated
- */
-public class OutflowConfiguration {
-
- private HashMap[] actionList;
-
- private int currentAction = 0;
-
- /**
- * Creates a default outflow configuration instance with an action.
- */
- public OutflowConfiguration() {
- this.actionList = new HashMap[1];
- this.actionList[0] = new HashMap();
- }
-
- /**
- * Creates a new outflow configuration instance with the given number of
- * actions.
- *
- * @param actionCount
- */
- public OutflowConfiguration(int actionCount) {
- this.actionList = new HashMap[actionCount];
- for (int i = 0; i < actionCount; i++) {
- this.actionList[i] = new HashMap();
- }
- }
-
- /**
- * Returns the configuration as an Parameter
- *
- * @return Returns Parameter.
- */
- public Parameter getProperty() {
-
-
- for (int i = 0; i < actionList.length; i++) {
- HashMap action = actionList[i];
-
- if (! action.keySet().contains("items")) {
- return null;
- }
- }
-
- OMFactory fac = OMAbstractFactory.getOMFactory();
- //TODO: Find the constants for "Parameter" and "name"
- OMElement paramElement = fac.createOMElement("Parameter",null);
- paramElement.addAttribute(fac.createOMAttribute("name", null ,WSSHandlerConstants.OUTFLOW_SECURITY));
-
-
- for (int i = 0; i < this.actionList.length; i++) {
- // Create the action element
- OMElement actionElem = fac.createOMElement(
- WSSHandlerConstants.ACTION, null);
-
- // Get the current action
- HashMap action = this.actionList[i];
-
- // Get the set of kes of the selected action
- Iterator keys = action.keySet().iterator();
-
- while (keys.hasNext()) {
- String key = (String) keys.next();
- String value = (String) action.get(key);
- if(value != null && value.length() > 0) {
- // Create an element with the name of the key
- OMElement elem = fac.createOMElement(key, null);
- // Set the text value of the element
- elem.setText(value);
- // Add the element as a child of this action element
- actionElem.addChild(elem);
- }
- }
-
- paramElement.addChild(actionElem);
- }
-
- Parameter param = new Parameter();
- param.setParameterElement(paramElement);
- param.setValue(paramElement);
- param.setName(WSSHandlerConstants.OUTFLOW_SECURITY);
- return param;
- }
-
- /**
- * Moves to the next action. If this is called when the current action is the
- * last action then the current action will not change.
- *
- * @throws Exception
- */
- public void nextAction() {
- if (currentAction < this.actionList.length - 1) {
- this.currentAction++;
- }
- }
-
- /**
- * Moves to previous action. If this is called when the current action is the
- * first option then then the current action will not change.
- *
- * @throws Exception
- */
- public void previousAction() {
- if (this.currentAction > 0) {
- this.currentAction--;
- }
- }
-
- /**
- * Sets the action items.
- *
- * @param actionItems
- */
- public void setActionItems(String actionItems) {
- this.actionList[this.currentAction].put(
- WSSHandlerConstants.ACTION_ITEMS, actionItems);
- }
-
- /**
- * Returns the action items.
- * @return Returns String.
- */
- public String getActionItems() {
- return (String) this.actionList[this.currentAction]
- .get(WSSHandlerConstants.ACTION_ITEMS);
- }
-
- /**
- * Sets the user of the current action.
- *
- * @param user
- */
- public void setUser(String user) {
- this.actionList[this.currentAction].put(WSHandlerConstants.USER, user);
- }
-
- /**
- * Returns the user of the current action.
- * @return Returns String.
- */
- public String getUser() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.USER);
- }
-
- /**
- * Sets the name of the password callback class of the current action.
- *
- * @param passwordCallbackClass
- */
- public void setPasswordCallbackClass(String passwordCallbackClass) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.PW_CALLBACK_CLASS, passwordCallbackClass);
- }
-
- /**
- * Returns the name of the password callback class of the current action.
- * @return Returns String.
- */
- public String getPasswordCallbackClass() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.PW_CALLBACK_CLASS);
- }
-
- /**
- * Sets the signature property file of the current action.
- *
- * @param signaturePropFile
- */
- public void setSignaturePropFile(String signaturePropFile) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.SIG_PROP_FILE, signaturePropFile);
- }
-
- /**
- * Sets the signature property ref key of the current action.
- *
- * @param signaturePropRefId
- */
- public void setSignaturePropRefId(String signaturePropRefId) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.SIG_PROP_REF_ID, signaturePropRefId);
- }
-
- /**
- * Returns the signature property file of the current action.
- * @return Returns String.
- */
- public String getSignaturePropFile() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.SIG_PROP_FILE);
- }
-
- /**
- * Sets the signatue key identifier of the current action.
- *
- * @param signatureKeyIdentifier
- * Valid values:
- * <ul>
- * <li>X509KeyIdentifier - {@link WSSHandlerConstants#X509_KEY_IDENTIFIER}</li>
- * <li>SKIKeyIdentifier - {@link WSSHandlerConstants#SKI_KEY_IDENTIFIER}</li>
- * <li>IssuerSerial - {@link WSSHandlerConstants#ISSUER_SERIAL}</li>
- * <li>DirectReference - {@link WSSHandlerConstants#BST_DIRECT_REFERENCE}</li>
- * <li>Thumbprint - {@link WSSHandlerConstants#THUMBPRINT_IDENTIFIER}</li>
- * </ul>
- */
- public void setSignatureKeyIdentifier(String signatureKeyIdentifier) {
- this.actionList[this.currentAction].put(WSHandlerConstants.SIG_KEY_ID,
- signatureKeyIdentifier);
- }
-
- /**
- * Returns the signatue key identifier of the current action.
- * @return Returns String.
- */
- public String getSignatureKeyIdentifier() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.SIG_KEY_ID);
- }
-
- public void setSignatureAlgorithm(String signatureAlgo) {
- this.actionList[this.currentAction].put(WSHandlerConstants.SIG_ALGO,
- signatureAlgo);
- }
-
- public String getSignatureAlgorithm() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.SIG_ALGO);
- }
-
- /**
- * Sets the encrypted key identifier of the current action.
- * <br/>
- * @param encryptionKeyIdentifier
- * Valid values:
- * <ul>
- * <li>X509KeyIdentifier - {@link WSSHandlerConstants#X509_KEY_IDENTIFIER}</li>
- * <li>SKIKeyIdentifier - {@link WSSHandlerConstants#SKI_KEY_IDENTIFIER}</li>
- * <li>IssuerSerial - {@link WSSHandlerConstants#ISSUER_SERIAL}</li>
- * <li>DirectReference - {@link WSSHandlerConstants#BST_DIRECT_REFERENCE}</li>
- * <li>EmbeddedKeyName - {@link WSSHandlerConstants#EMBEDDED_KEYNAME}</li>
- * <li>Thumbprint - {@link WSSHandlerConstants#THUMBPRINT_IDENTIFIER}</li>
- * </ul>
- */
- public void setEncryptionKeyIdentifier(String encryptionKeyIdentifier) {
- this.actionList[this.currentAction].put(WSHandlerConstants.ENC_KEY_ID,
- encryptionKeyIdentifier);
- }
-
- /**
- * Returns the encrypted key identifier of the current action.
- * @return Returns String.
- */
- public String getEncryptionKeyIdentifier() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_KEY_ID);
- }
-
- /**
- * Sets the encryption user of the current action.
- *
- * @param encryptionUser
- */
- public void setEncryptionUser(String encryptionUser) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENCRYPTION_USER, encryptionUser);
- }
-
- /**
- * Returns the encryption user of the current action.
- * @return Returns String.
- */
- public String getEncryptionUser() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENCRYPTION_USER);
- }
-
- /**
- * Sets the signature parts of the current action.
- *
- * @param signatureParts
- */
- public void setSignatureParts(String signatureParts) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.SIGNATURE_PARTS, signatureParts);
- }
-
- /**
- * Returns the signature parts of the current action.
- * @return Returns String.
- */
- public String getSignatureParts() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.SIGNATURE_PARTS);
- }
-
- /**
- * Sets the encryption parts of the current action.
- *
- * @param encryptionParts
- */
- public void setEncryptionParts(String encryptionParts) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENCRYPTION_PARTS, encryptionParts);
- }
-
- /**
- * Returns the encryption parts of the current action.
- * @return Returns String.
- */
- public String getEncryptionParts() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENCRYPTION_PARTS);
- }
-
- /**
- * Sets the password type of the current action
- *
- * @param passwordType
- */
- public void setPasswordType(String passwordType) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.PASSWORD_TYPE, passwordType);
- }
-
- /**
- * Returns the password type of the current action.
- * @return Returns String.
- */
- public String getPasswordType() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.PASSWORD_TYPE);
- }
-
- /**
- * Sets the encryption symmetric algorithm of the current action
- *
- * @param encryptionSymAlgorithm
- */
- public void setEncryptionSymAlgorithm(String encryptionSymAlgorithm) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENC_SYM_ALGO, encryptionSymAlgorithm);
- }
-
- /**
- * Returns the encryption symmetric algorithm of the current action.
- * @return Returns String.
- */
- public String getEncryptionSymAlgorithm() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_SYM_ALGO);
- }
-
- /**
- * Sets the encryption key transport algorithm of the current action
- *
- * @param encryptionKeyTransportAlgorithm
- */
- public void setEncryptionKeyTransportAlgorithm(
- String encryptionKeyTransportAlgorithm) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENC_KEY_TRANSPORT,
- encryptionKeyTransportAlgorithm);
- }
-
- /**
- * Returns the encryption key transport algorithm of the current action.
- * @return Returns String.
- */
- public String getEncryptionKeyTransportAlgorithm() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_KEY_TRANSPORT);
- }
-
- /**
- * Sets the embedded key callback class of the current action
- *
- * @param embeddedKeyCallbackClass
- */
- public void setEmbeddedKeyCallbackClass(String embeddedKeyCallbackClass) {
- this.actionList[this.currentAction]
- .put(WSHandlerConstants.ENC_CALLBACK_CLASS,
- embeddedKeyCallbackClass);
- }
-
- /**
- * Returns the embedded key callback class of the current action.
- *
- * @return Returns String.
- */
- public String getEmbeddedKeyCallbackClass() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_CALLBACK_CLASS);
- }
-
- /**
- * Sets the XPath expression to selecte the elements with content of the
- * current action to be MTOM optimized.
- *
- * @param optimizePartsXPathExpr
- */
- public void setOptimizeParts(String optimizePartsXPathExpr) {
- this.actionList[this.currentAction].put(
- WSSHandlerConstants.OPTIMIZE_PARTS, optimizePartsXPathExpr);
- }
-
- /**
- * Returns the Path expression to selecte the elements with content of the
- * current action to be MTOM optimized.
- *
- * @return Returns String.
- */
- public String getOptimizeParts() {
- return (String) this.actionList[this.currentAction]
- .get(WSSHandlerConstants.OPTIMIZE_PARTS);
- }
-
- /**
- * Sets the SAML property file of the current action.
- * @param samlPropFile
- */
- public void setSamlPropFile(String samlPropFile) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.SAML_PROP_FILE, samlPropFile);
- }
-
- /**
- * Returns the SAML property file of the current action.
- * @return Returns String.
- */
- public String getSamlPropFile() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.SAML_PROP_FILE);
- }
-
- /**
- * Sets the encryption property file.
- * @param encPropFile
- */
- public void setEncryptionPropFile(String encPropFile) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENC_PROP_FILE, encPropFile);
- }
-
- /**
- * Sets the encryption property ref key of the current action.
- *
- * @param encryptionPropRefId
- */
- public void setEncryptionPropRefId(String encryptionPropRefId) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENC_PROP_REF_ID, encryptionPropRefId);
- }
-
- /**
- * Returns the encryption property file.
- * @return Returns String.
- */
- public String getEncryptionPropFile() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_PROP_FILE);
- }
-
- /**
- * Enable/Disable PrecisionInMilliseconds
- * @param value
- */
- public void setPrecisionInMilliseconds(boolean value) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.TIMESTAMP_PRECISION, value?"true":"false");
- }
-
- /**
- * Returns whether PrecisionInMilliseconds is enabled or not
- * @return Returns String.
- */
- public String getPrecisionInMilliseconds() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.TIMESTAMP_PRECISION);
- }
-
- /**
- * Option to add additional elements in the username token element.
- * Example: Nonce and Create elements
- * @param addUTElements
- */
- public void setAddUTElements(String addUTElements) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ADD_UT_ELEMENTS, addUTElements);
- }
-
- /**
- * Returns the additional elements to be added to the username token element.
- */
- public String getAddUTElements() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ADD_UT_ELEMENTS);
- }
-
- /**
- * Sets the text of the key name that needs to be sent.
- * @param embeddedKeyName
- */
- public void setEmbeddedKeyName(String embeddedKeyName) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENC_KEY_NAME, embeddedKeyName);
- }
-
- /**
- * Returns the text of the key name that needs to be sent.
- * @return Returns String.
- */
- public String getEmbeddedKeyName() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENC_KEY_NAME);
- }
-
- /**
- * Sets whether signature confirmation should be enabled or not.
- * @param value
- */
- public void setEnableSignatureConfirmation(boolean value) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION, value?"true":"false");
- }
-
- /**
- * Returns whether signature confirmation should be enabled or not
- * @return Returns String.
- */
- public String getEnableSignatureConfirmation() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION);
- }
-
- /**
- * Sets whether signature confirmation should be enabled or not
- * @param value
- */
- public void setPreserveOriginalEnvelope(boolean value) {
- this.actionList[this.currentAction].put(
- WSSHandlerConstants.PRESERVE_ORIGINAL_ENV, value?"true":"false");
- }
-
- /**
- * Returns whether signature confirmation should be enabled or not.
- * @return Returns String.
- */
- public String getPreserveOriginalEnvelope() {
- return (String) this.actionList[this.currentAction]
- .get(WSSHandlerConstants.PRESERVE_ORIGINAL_ENV);
- }
-
- /**
- * This will set whether request or response evaluation should adhere to "Basic Security Profile"
- * @param value true if evaluation should adhere to "Basic Security Profile" else false. Default is true.
- */
- public void setBSPCompliant(boolean value) {
- this.actionList[this.currentAction].put(
- WSHandlerConstants.IS_BSP_COMPLIANT, value?"true":"false");
- }
-
-
- /**
- * Gets whether security processing is configured to handle BSP compliant manner.
- * "true" or "false"
- * @return Returns "true" or "false".
- */
- public String getBSPCompliant() {
- return (String) this.actionList[this.currentAction]
- .get(WSHandlerConstants.IS_BSP_COMPLIANT);
- }
-
-
-
- public void setSignAllHeadersAndBody() {
- this.actionList[this.currentAction].put(WSSHandlerConstants.SIGN_ALL_HEADERS, "true");
- this.setSignBody();
- }
-
- public void setSignBody() {
- this.actionList[this.currentAction].put(WSSHandlerConstants.SIGN_BODY, "true");
- }
-
- public void setEncryptBody() {
- this.actionList[this.currentAction].put(WSSHandlerConstants.ENCRYPT_BODY, "true");
- }
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
index fe7412f..0639d81 100755
--- a/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
@@ -36,7 +36,6 @@
import org.apache.ws.secpolicy.model.SupportingToken;
import org.apache.ws.secpolicy.model.SymmetricAsymmetricBindingBase;
import org.apache.ws.secpolicy.model.SymmetricBinding;
-import org.apache.ws.secpolicy.model.TokenWrapper;
import org.apache.ws.secpolicy.model.TransportBinding;
import org.apache.ws.secpolicy.model.TransportToken;
import org.apache.ws.secpolicy.model.Trust10;
@@ -65,15 +64,15 @@
*
* @param topLevelAssertions
* The iterator of the top level policy assertions
- * @return The compile Poilcy data block.
+ * @return The compile Policy data block.
* @throws WSSPolicyException
*/
- public static RampartPolicyData build(List topLevelAssertions)
+ public static RampartPolicyData build(List<Assertion> topLevelAssertions)
throws WSSPolicyException {
RampartPolicyData rpd = new RampartPolicyData();
- for (Iterator iter = topLevelAssertions.iterator(); iter.hasNext();) {
+ for (Iterator<Assertion> iter = topLevelAssertions.iterator(); iter.hasNext();) {
Assertion assertion = (Assertion) iter.next();
if (assertion instanceof Binding) {
@@ -228,14 +227,14 @@
*/
private static void processSignedEncryptedElements(
SignedEncryptedElements see, RampartPolicyData rpd) {
- Iterator it = see.getXPathExpressions().iterator();
+ Iterator<String> it = see.getXPathExpressions().iterator();
if (see.isSignedElemets()) {
while (it.hasNext()) {
- rpd.setSignedElements((String) it.next());
+ rpd.setSignedElements(it.next());
}
} else {
while (it.hasNext()) {
- rpd.setEncryptedElements((String) it.next());
+ rpd.setEncryptedElements(it.next());
}
}
rpd.addDeclaredNamespaces(see.getDeclaredNamespaces());
@@ -251,7 +250,7 @@
*/
private static void processSignedEncryptedParts(SignedEncryptedParts sep,
RampartPolicyData rpd) {
- Iterator it = sep.getHeaders().iterator();
+ Iterator<Header> it = sep.getHeaders().iterator();
if (sep.isSignedParts()) {
rpd.setSignBody(sep.isBody());
rpd.setSignAttachments(sep.isAttachments());
@@ -259,7 +258,7 @@
rpd.setSignBodyOptional(sep.isOptional());
rpd.setSignAttachmentsOptional(sep.isOptional());
while (it.hasNext()) {
- Header header = (Header) it.next();
+ Header header = it.next();
rpd.addSignedPart(header.getNamespace(), header.getName());
}
} else {
@@ -268,7 +267,7 @@
rpd.setEncryptBodyOptional(sep.isOptional());
rpd.setEncryptAttachmentsOptional(sep.isOptional());
while (it.hasNext()) {
- Header header = (Header) it.next();
+ Header header = it.next();
rpd.setEncryptedParts(header.getNamespace(), header.getName(),"Header");
}
}
@@ -277,9 +276,9 @@
private static void processContentEncryptedElements(ContentEncryptedElements cee,
RampartPolicyData rpd) {
- Iterator it = cee.getXPathExpressions().iterator();
+ Iterator<String> it = cee.getXPathExpressions().iterator();
while (it.hasNext()) {
- rpd.setContentEncryptedElements((String) it.next());
+ rpd.setContentEncryptedElements(it.next());
}
rpd.addDeclaredNamespaces(cee.getDeclaredNamespaces());
}
@@ -287,9 +286,9 @@
private static void processRequiredElements(RequiredElements req,
RampartPolicyData rpd) {
- Iterator it = req.getXPathExpressions().iterator();
+ Iterator<String> it = req.getXPathExpressions().iterator();
while (it.hasNext()) {
- rpd.setRequiredElements((String) it.next());
+ rpd.setRequiredElements(it.next());
}
rpd.addDeclaredNamespaces(req.getDeclaredNamespaces());
}
@@ -363,14 +362,14 @@
*/
private static void asymmetricBinding(AsymmetricBinding binding,
RampartPolicyData rpd) throws WSSPolicyException {
- TokenWrapper tokWrapper = binding.getRecipientToken();
- TokenWrapper tokWrapper1 = binding.getInitiatorToken();
- if (tokWrapper == null || tokWrapper1 == null) {
+ RecipientToken rt = binding.getRecipientToken();
+ InitiatorToken it = binding.getInitiatorToken();
+ if (rt == null || it == null) {
throw new WSSPolicyException("Asymmetric binding should have both Initiator and " +
"Recipient tokens defined");
}
- rpd.setRecipientToken(((RecipientToken) tokWrapper).getReceipientToken());
- rpd.setInitiatorToken(((InitiatorToken) tokWrapper1).getInitiatorToken());
+ rpd.setRecipientToken(rt.getReceipientToken());
+ rpd.setInitiatorToken(it.getInitiatorToken());
}
private static void processSupportingTokens(SupportingToken token,
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
index 0281dd1..f67a56d 100755
--- a/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
@@ -35,7 +35,6 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
-import java.util.Vector;
public class RampartPolicyData {
@@ -126,8 +125,7 @@
private List<String> contentEncryptedElements = new ArrayList<String>();
- //TODO make this strongly type attribute
- private HashMap declaredNamespaces = new HashMap();
+ private HashMap<String, String> declaredNamespaces = new HashMap<String, String>();
/*
* Holds the supporting tokens elements
@@ -528,11 +526,11 @@
return signedParts;
}
- public HashMap getDeclaredNamespaces() {
+ public HashMap<String, String> getDeclaredNamespaces() {
return declaredNamespaces;
}
- public void addDeclaredNamespaces(HashMap namespaces) {
+ public void addDeclaredNamespaces(HashMap<String, String> namespaces) {
declaredNamespaces.putAll(namespaces);
}
@@ -900,7 +898,7 @@
case SPConstants.SUPPORTING_TOKEN_SIGNED_ENDORSING:
if(this.signedEndorsingSupportingTokensIdMap == null) {
- this.signedEndorsingSupportingTokensIdMap = new HashMap();
+ this.signedEndorsingSupportingTokensIdMap = new HashMap<Token,String>();
}
return null;
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
index 92d86be..02418eb 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/SupportingPolicyData.java
@@ -1,53 +1,62 @@
-package org.apache.rampart.policy;
+/*
+ * 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.
+ */
-import java.util.Iterator;
+package org.apache.rampart.policy;
import org.apache.ws.secpolicy.model.Header;
import org.apache.ws.secpolicy.model.SupportingToken;
public class SupportingPolicyData extends RampartPolicyData {
- public void build(SupportingToken token) {
+ public void build(SupportingToken token) {
- if (token.getSignedParts() != null && !token.getSignedParts().isOptional()) {
- Iterator it = token.getSignedParts().getHeaders().iterator();
- this.setSignBody(token.getSignedParts().isBody());
- while (it.hasNext()) {
- Header header = (Header) it.next();
- this.addSignedPart(header.getNamespace(), header.getName());
- }
- }
+ if (token.getSignedParts() != null && !token.getSignedParts().isOptional()) {
+ this.setSignBody(token.getSignedParts().isBody());
+ for (Header header : token.getSignedParts().getHeaders()) {
+ this.addSignedPart(header.getNamespace(), header.getName());
+ }
+ }
- if (token.getEncryptedParts() != null && !token.getEncryptedParts().isOptional()) {
- Iterator it = token.getEncryptedParts().getHeaders().iterator();
- this.setEncryptBody(token.getEncryptedParts().isBody());
- while (it.hasNext()) {
- Header header = (Header) it.next();
- this.setEncryptedParts(header.getNamespace(), header.getName(),
- "Header");
- }
- }
+ if (token.getEncryptedParts() != null && !token.getEncryptedParts().isOptional()) {
+ this.setEncryptBody(token.getEncryptedParts().isBody());
+ for (Header header : token.getEncryptedParts().getHeaders()) {
+ this.setEncryptedParts(header.getNamespace(), header.getName(),
+ "Header");
+ }
+ }
- if (token.getSignedElements() != null && !token.getSignedElements().isOptional()) {
- Iterator it = token.getSignedElements().getXPathExpressions()
- .iterator();
- while (it.hasNext()) {
- this.setSignedElements((String) it.next());
- }
- this.addDeclaredNamespaces(token.getSignedElements()
- .getDeclaredNamespaces());
- }
+ if (token.getSignedElements() != null && !token.getSignedElements().isOptional()) {
+ for (String xpath : token.getSignedElements().getXPathExpressions()) {
+ this.setSignedElements(xpath);
+ }
+ this.addDeclaredNamespaces(token.getSignedElements()
+ .getDeclaredNamespaces());
+ }
- if (token.getEncryptedElements() != null && !token.getEncryptedElements().isOptional()) {
- Iterator it = token.getEncryptedElements().getXPathExpressions()
- .iterator();
- while (it.hasNext()) {
- this.setEncryptedElements((String) it.next());
- }
- if (token.getSignedElements() == null) {
- this.addDeclaredNamespaces(token.getEncryptedElements()
- .getDeclaredNamespaces());
- }
- }
- }
+ if (token.getEncryptedElements() != null && !token.getEncryptedElements().isOptional()) {
+ for (String xpath : token.getEncryptedElements().getXPathExpressions()) {
+ this.setEncryptedElements(xpath);
+ }
+ if (token.getSignedElements() == null) {
+ this.addDeclaredNamespaces(token.getEncryptedElements()
+ .getDeclaredNamespaces());
+ }
+ }
+ }
}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/KerberosConfigBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/KerberosConfigBuilder.java
new file mode 100644
index 0000000..05a3b63
--- /dev/null
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/KerberosConfigBuilder.java
@@ -0,0 +1,100 @@
+/*
+ * 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.rampart.policy.builders;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.rampart.policy.model.KerberosConfig;
+import org.apache.rampart.policy.model.RampartConfig;
+
+/**
+ * Builder for {@link KerberosConfig} assertion.
+ */
+public class KerberosConfigBuilder implements AssertionBuilder<OMElement> {
+ public Assertion build(OMElement element, AssertionBuilderFactory factory)
+ throws IllegalArgumentException {
+
+ KerberosConfig kerberosConfig = new KerberosConfig();
+
+ OMElement childElement;
+
+ childElement = element.getFirstChildWithName(
+ new QName(RampartConfig.NS, KerberosConfig.JAAS_CONTEXT_LN));
+ if (childElement != null) {
+ if (null == kerberosConfig.getJaasContext()) {
+ kerberosConfig.setJaasContext(childElement.getText().trim());
+ }
+ }
+
+ childElement = element.getFirstChildWithName(
+ new QName(RampartConfig.NS, KerberosConfig.PRINCIPAL_NAME_LN));
+ if (childElement != null) {
+ if (null == kerberosConfig.getPrincipalName()) {
+ kerberosConfig.setPrincipalName(childElement.getText().trim());
+ }
+ }
+
+ childElement = element.getFirstChildWithName(
+ new QName(RampartConfig.NS, KerberosConfig.PRINCIPAL_PASSWORD_LN));
+ if (childElement != null) {
+ if (null == kerberosConfig.getPrincipalPassword()) {
+ kerberosConfig.setPrincipalPassword(childElement.getText().trim());
+ }
+ }
+
+ childElement = element.getFirstChildWithName(new QName(RampartConfig.NS,
+ KerberosConfig.SERVICE_PRINCIPAL_NAME_LN));
+ if (childElement != null) {
+ kerberosConfig.setServicePrincipalName(childElement.getText().trim());
+ }
+
+ childElement = element.getFirstChildWithName(new QName(RampartConfig.NS,
+ KerberosConfig.SERVICE_PRINCIPAL_NAME_FORM_LN));
+ if (childElement != null) {
+ kerberosConfig.setServicePrincipalNameForm(
+ childElement.getText().trim());
+ }
+
+ childElement = element.getFirstChildWithName(new QName(RampartConfig.NS,
+ KerberosConfig.KERBEROS_TOKEN_DECODER_CLASS_LN));
+ if (childElement != null) {
+ kerberosConfig.setKerberosTokenDecoderClass(
+ childElement.getText().trim());
+ }
+
+ childElement = element.getFirstChildWithName(new QName(
+ RampartConfig.NS, KerberosConfig.REQUEST_CREDENTIAL_DELEGATION_LN));
+ if (childElement != null) {
+ kerberosConfig.setRequstCredentialDelegation(Boolean.valueOf(childElement.getText().trim()));
+ }
+
+ return kerberosConfig;
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] {
+ new QName(RampartConfig.NS, KerberosConfig.KERBEROS_LN)
+ };
+ }
+}
+
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
index d111fbd..edce4cd 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
@@ -22,6 +22,7 @@
import org.apache.neethi.AssertionBuilderFactory;
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.rampart.policy.model.CryptoConfig;
+import org.apache.rampart.policy.model.KerberosConfig;
import org.apache.rampart.policy.model.OptimizePartsConfig;
import org.apache.rampart.policy.model.RampartConfig;
import org.apache.rampart.policy.model.SSLConfig;
@@ -89,6 +90,16 @@
}
childElement = element.getFirstChildWithName(new QName(
+ RampartConfig.NS, RampartConfig.KERBEROS_CONFIG));
+ if (childElement != null) {
+ KerberosConfig kerberosConfig = (KerberosConfig)new KerberosConfigBuilder().
+ build(childElement,
+ factory);
+ rampartConfig.setKerberosConfig(kerberosConfig);
+
+ }
+
+ childElement = element.getFirstChildWithName(new QName(
RampartConfig.NS, RampartConfig.SIG_CRYPTO_LN));
if (childElement != null) {
rampartConfig.setSigCryptoConfig((CryptoConfig) factory
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/KerberosConfig.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/KerberosConfig.java
new file mode 100644
index 0000000..2d13f97
--- /dev/null
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/KerberosConfig.java
@@ -0,0 +1,361 @@
+/*
+ * 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.rampart.policy.model;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Constants;
+import org.apache.neethi.PolicyComponent;
+import org.apache.rampart.RampartException;
+import org.ietf.jgss.GSSCredential;
+
+/**
+ * Container for Kerberos configuration options.
+ */
+public class KerberosConfig implements Assertion {
+
+ public final static String KERBEROS_LN = RampartConfig.KERBEROS_CONFIG;
+
+ public final static String JAAS_CONTEXT_LN = "jaasContext";
+
+ public final static String PRINCIPAL_NAME_LN = "principalName";
+
+ public final static String PRINCIPAL_PASSWORD_LN = "principalPassword";
+
+ public final static String SERVICE_PRINCIPAL_NAME_LN = "servicePrincipalName";
+
+ public final static String SERVICE_PRINCIPAL_NAME_FORM_LN = "servicePrincipalNameForm";
+
+ public final static String KERBEROS_TOKEN_DECODER_CLASS_LN = "kerberosTokenDecoderClass";
+
+ public final static String REQUEST_CREDENTIAL_DELEGATION_LN = "requestCredentialDelegation";
+
+ public final static String DELEGATION_CREDENTIAL_LN = "delegationCredential";
+
+ /**
+ * Specifies that the service principal name should be interpreted as a
+ * "host-based" name as specified in GSS API RFC,
+ * section "4.1: Host-Based Service Name Form".
+ * See <a href="http://www.ietf.org/rfc/rfc2743.txt">rfc2743 - GSS
+ * API, Version 2</a>.
+ */
+ public final static String HOST_BASED_NAME_FORM = "hostbased";
+
+ /**
+ * Specifies that the service principal name should be interpreted as a
+ * "username" name as specified in GSS API RFC,
+ * section "4.2: User Name Form".
+ * See <a href="http://www.ietf.org/rfc/rfc2743.txt">rfc2743 - GSS API, Version
+ * 2</a>.
+ */
+ public final static String USERNAME_NAME_FORM = "username";
+
+ private String jaasContext;
+
+ private String principalName;
+
+ private String principalPassword;
+
+ private String servicePrincipalName;
+
+ private String servicePrincipalNameForm;
+
+ private String kerberosTokenDecoderClass;
+
+ private boolean requstCredentialDelegation;
+
+ private GSSCredential delegationCredential;
+
+ /**
+ * @return The JAAS context name to use to obtain a TGT (Ticket granting ticket).
+ */
+ public String getJaasContext() {
+ return jaasContext;
+ }
+
+ /**
+ * Sets the JAAS context name to use to obtain a TGT (Ticket granting ticket).
+ * @param jaasContext the jaasContext to set
+ */
+ public void setJaasContext(String jaasContext) {
+ this.jaasContext = jaasContext;
+ }
+
+ /**
+ * @return The principal name to use to obtain a TGT (Ticket granting ticket).
+ * This is usually the domain username.
+ * If not specified, Rampart will fall back to the Rampart configuration's
+ * {@link RampartConfig#getUser() user}.
+ * Note that the principal name specified in JAAS configuration takes precedence
+ * over any principal name configured here.
+ */
+ public String getPrincipalName() {
+ return principalName;
+ }
+
+ /**
+ * Sets the principal name to use to obtain a TGT (Ticket granting ticket).
+ * This is usually the domain username. If* not specified, Rampart will fall back
+ * to the Rampart configuration's {@link RampartConfig#getUser() user}.
+ * Note that the principal name specified in JAAS configuration takes precedence
+ * over any principal name configured via this method.
+ * @param principalName the principalName to set
+ */
+ public void setPrincipalName(String principalName) {
+ this.principalName = principalName;
+ }
+
+ /**
+ * @return Returns the principal's clear-text password. If the password is not
+ * configured (null), Rampart will try to obtain it from any configured
+ * {@link RampartConfig#getPwCbClass() password callback}. Note that any
+ * principal password configured here will be ignored if the JAAS configuration
+ * configures usage of a keytab file.
+ */
+ public String getPrincipalPassword() {
+ return principalPassword;
+ }
+
+ /**
+ * Sets the principal's clear-text password. If the password is not configured
+ * (null), Rampart will try to obtain it from any configured
+ * {@link RampartConfig#getPwCbClass() password callback}. Note that any
+ * principal password configured here will be ignored if the JAAS configuration
+ * configures usage of a keytab file.
+ */
+ public void setPrincipalPassword(String principalPassword) {
+ this.principalPassword = principalPassword;
+ }
+
+ /**
+ * @return The service principal name to use to obtain a service ticket on the
+ * client-side. Note that by default,
+ * this name is assumed to be in a {@link #HOST_BASED_NAME_FORM} unless the
+ * {@link #setServicePrincipalNameForm(String) service principal name form} is
+ * explicitly configured.
+ */
+ public String getServicePrincipalName() {
+ return servicePrincipalName;
+ }
+
+ /**
+ * Sets service principal name to use to obtain a service ticket on the
+ * client-side. Note that by default, this name is assumed to be in a
+ * {@link #HOST_BASED_NAME_FORM} unless the
+ * {@link #setServicePrincipalNameForm(String)
+ * service principal name form} is explicitly configured.
+ */
+ public void setServicePrincipalName(String servicePrincipalName) {
+ this.servicePrincipalName = servicePrincipalName;
+ }
+
+ /**
+ * Returns the service principal name form.
+ * @return Either {@value #HOST_BASED_NAME_FORM} or {@value #USERNAME_NAME_FORM}.
+ * Default is: {@value #HOST_BASED_NAME_FORM}.
+ */
+ public String getServicePrincipalNameForm() {
+ if (servicePrincipalNameForm == null) {
+ return HOST_BASED_NAME_FORM;
+ }
+ return servicePrincipalNameForm;
+ }
+
+ /**
+ * Configures a Kerberos token decoder implementation for decoding Kerberos v5 tokens on server side.
+ * The decoder will be used only if the Kerberos client/server session key cannot be obtained using Java's {@link com.sun.security.jgss.ExtendedGSSContext} API,
+ * which is normally the case when using Java version older than 1.7.0_b07,
+ * see <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6710360"> JDK-6710360 : export Kerberos session key to applications</a>.
+ * <p>
+ * The class will be loaded using current service's {@link org.apache.axis2.description.AxisService#getClassLoader() classloader}.
+ * </p>
+ *
+ * @param kerberosTokenValidatorClass A fully qualifier class name that implements {@link org.apache.ws.security.validate.KerberosTokenValidator}.
+ */
+ public void setKerberosTokenDecoderClass(String kerberosTokenDecoderClass) {
+ this.kerberosTokenDecoderClass = kerberosTokenDecoderClass;
+ }
+
+ /**
+ * Returns the Kerberos token decoder implementation for decoding Kerberos v5 tokens on server side.
+ * The decoder will be used only if the Kerberos client/server session key cannot be obtained using Java's {@link com.sun.security.jgss.ExtendedGSSContext} API,
+ * which is normally the case when using Java version older than 1.7.0_b07,
+ * see <a href="http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6710360"> JDK-6710360 : export Kerberos session key to applications</a>
+ *
+ * @return A fully qualifier class name that implements {@link org.apache.ws.security.validate.KerberosTokenValidator} or <code>null</code> if no Kerberos token decoder is configured.
+ */
+ public String getKerberosTokenDecoderClass() {
+ return this.kerberosTokenDecoderClass;
+ }
+
+ /**
+ * Sets the service principal name form.
+ * @param servicePrincipalNameForm The service principal name form to set.
+ * The given literal must be either {@value #HOST_BASED_NAME_FORM} or
+ * {@value #USERNAME_NAME_FORM}.
+ * @throws IllegalArgumentException If the given
+ * <code>servicePrincipalNameForm</code> is not one of:
+ * {@value #HOST_BASED_NAME_FORM} or {@value #USERNAME_NAME_FORM}.
+ */
+ public void setServicePrincipalNameForm(String servicePrincipalNameForm)
+ throws IllegalArgumentException {
+
+ if (!HOST_BASED_NAME_FORM.equals(servicePrincipalNameForm) &&
+ !USERNAME_NAME_FORM.equals(servicePrincipalNameForm)) {
+ throw new IllegalArgumentException(
+ new RampartException("invalidServicePrincipalNameForm",
+ new String[] {
+ servicePrincipalNameForm,
+ HOST_BASED_NAME_FORM,
+ USERNAME_NAME_FORM }));
+ }
+ this.servicePrincipalNameForm = servicePrincipalNameForm;
+ }
+
+ /**
+ * If Kerberos credential delegation is requested, the initiator's TGT (Ticket granting ticket) is propagated to the receiver
+ * along with the TGS(Ticket granting service).
+ *
+ * @return true if credential delegation is requested.
+ */
+ public boolean isRequstCredentialDelegation() {
+ return requstCredentialDelegation;
+ }
+
+ /**
+ * Enables Kerberos credential delegation. If credential delegation is requested, the initiator's TGT (Ticket
+ * granting ticket) is propagated to the receiver along with the TGS(Ticket granting service). <br/>
+ * <br/>
+ *
+ * Enabling delegation requires <b>forwardable=true</b> property to be added to the <b>[libdefaults]</b> section in
+ * the Kerberos setup configuration.KDC should also be explicitly configured to allow delegation as it is considered
+ * a security issue and is disabled by default.
+ *
+ * @param requstCredentialDelegation if true, credential delegation is requested.
+ */
+ public void setRequstCredentialDelegation(boolean requstCredentialDelegation) {
+ this.requstCredentialDelegation = requstCredentialDelegation;
+ }
+
+ /**
+ * The delegation credential is available when the initiator has explicitly requested delegation through
+ * {@link KerberosConfig#setRequstCredentialDelegation(boolean)} and the receiver has retrieved it and set it
+ * through {@link KerberosConfig#setDelegationCredential(GSSCredential)}.
+ *
+ * If available, the delegation credential is used by the receiver to obtain a service ticket for another
+ * Kerberos protected WS on behalf of the initiator. The receiver's principal must have explicit privileges to use
+ * the delegated credential(TGT) for retrieval of the service ticket.
+ *
+ * @return the client's TGT wrapped in {@link GSSCredential}
+ */
+ public GSSCredential getDelegationCredential() {
+ return delegationCredential;
+ }
+
+ /**
+ * Sets the delegation credential to be used by the receiver to obtain a service ticket for another
+ * Kerberos protected WS on behalf of the initiator. The receiver's principal must have explicit privileges to use
+ * the delegated credential(TGT) for retrieval of the service ticket.
+ *
+ * @param delegationCredential the {@link GSSCredential} to use for obtaining a TGS
+ */
+ public void setDelegationCredential(GSSCredential delegationCredential) {
+ this.delegationCredential = delegationCredential;
+ }
+
+ public PolicyComponent normalize() {
+ throw new UnsupportedOperationException();
+ }
+
+ public QName getName() {
+ return new QName(RampartConfig.NS, KERBEROS_LN);
+ }
+
+ public boolean isOptional() {
+ return true;
+ }
+
+ public boolean isIgnorable() {
+ throw new UnsupportedOperationException();
+ }
+
+ public short getType() {
+ return Constants.TYPE_ASSERTION;
+ }
+
+ public boolean equal(PolicyComponent policyComponent) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+ String prefix = writer.getPrefix(RampartConfig.NS);
+
+ if (prefix == null) {
+ prefix = RampartConfig.NS;
+ writer.setPrefix(prefix, RampartConfig.NS);
+ }
+
+ if (getJaasContext() != null) {
+ writer.writeStartElement(RampartConfig.NS, JAAS_CONTEXT_LN);
+ writer.writeCharacters(getJaasContext());
+ writer.writeEndElement();
+ }
+
+ if (getPrincipalName() != null) {
+ writer.writeStartElement(RampartConfig.NS, PRINCIPAL_NAME_LN);
+ writer.writeCharacters(getPrincipalName());
+ writer.writeEndElement();
+ }
+
+ if (getPrincipalPassword() != null) {
+ writer.writeStartElement(RampartConfig.NS, PRINCIPAL_PASSWORD_LN);
+ writer.writeCharacters(getPrincipalPassword());
+ writer.writeEndElement();
+ }
+
+ if (getServicePrincipalName() != null) {
+ writer.writeStartElement(RampartConfig.NS, SERVICE_PRINCIPAL_NAME_LN);
+ writer.writeCharacters(getServicePrincipalName());
+ writer.writeEndElement();
+ }
+
+ if (this.servicePrincipalNameForm != null) {
+ writer.writeStartElement(RampartConfig.NS,
+ SERVICE_PRINCIPAL_NAME_FORM_LN);
+ writer.writeCharacters(this.servicePrincipalNameForm);
+ writer.writeEndElement();
+ }
+
+ if (this.kerberosTokenDecoderClass != null) {
+ writer.writeStartElement(RampartConfig.NS,
+ KERBEROS_TOKEN_DECODER_CLASS_LN);
+ writer.writeCharacters(this.kerberosTokenDecoderClass);
+ writer.writeEndElement();
+ }
+
+ if (this.requstCredentialDelegation) {
+ writer.writeStartElement(RampartConfig.NS, REQUEST_CREDENTIAL_DELEGATION_LN);
+ writer.writeCharacters(Boolean.toString(this.requstCredentialDelegation));
+ writer.writeEndElement();
+ }
+ }
+}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java b/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java
index 5bfba4f..bdad069 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/RampartConfig.java
@@ -114,6 +114,8 @@
public final static String SSL_CONFIG = "sslConfig";
+ public final static String KERBEROS_CONFIG = "kerberosConfig";
+
private String user;
private String userCertAlias;
@@ -150,7 +152,17 @@
private String nonceLifeTime = Integer.toString(DEFAULT_NONCE_LIFE_TIME);
private SSLConfig sslConfig;
+
+ private KerberosConfig kerberosConfig;
+
+ public KerberosConfig getKerberosConfig() {
+ return kerberosConfig;
+ }
+ public void setKerberosConfig(KerberosConfig kerberosConfig) {
+ this.kerberosConfig = kerberosConfig;
+ }
+
/*To set timeStampStrict in WSSConfig through rampartConfig - default value is false*/
private boolean timeStampStrict = false;
@@ -392,6 +404,12 @@
writer.writeEndElement();
}
+ if (kerberosConfig != null) {
+ writer.writeStartElement(NS, KERBEROS_CONFIG);
+ kerberosConfig.serialize(writer);
+ writer.writeEndElement();
+ }
+
writer.writeEndElement();
}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java b/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
index c76875b..9a1c703 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
@@ -20,19 +20,14 @@
import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMMetaFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.om.OMNode;
import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAPFactory;
import org.apache.axiom.soap.SOAPHeader;
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axiom.soap.SOAPModelBuilder;
-import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
import org.apache.rampart.handler.WSSHandlerConstants;
import org.apache.ws.security.WSSecurityException;
import org.apache.xml.security.utils.XMLUtils;
@@ -144,21 +139,9 @@
}
}
- // Check the namespace and find SOAP version and factory
- String nsURI = null;
- OMMetaFactory metaFactory = OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM);
- SOAPFactory factory;
- if (env.getNamespace().getNamespaceURI().equals(
- SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI)) {
- nsURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
- factory = metaFactory.getSOAP11Factory();
- } else {
- nsURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
- factory = metaFactory.getSOAP12Factory();
- }
-
- StAXSOAPModelBuilder stAXSOAPModelBuilder = new StAXSOAPModelBuilder(
- env.getXMLStreamReader(), factory, nsURI);
+ SOAPModelBuilder stAXSOAPModelBuilder = OMXMLBuilderFactory.createStAXSOAPModelBuilder(
+ OMAbstractFactory.getMetaFactory(OMAbstractFactory.FEATURE_DOM),
+ env.getXMLStreamReader());
SOAPEnvelope envelope = (stAXSOAPModelBuilder)
.getSOAPEnvelope();
envelope.getParent().build();
@@ -337,7 +320,7 @@
* @return
*/
public static OMElement toDOOM(OMFactory factory, OMElement element){
- StAXOMBuilder builder = new StAXOMBuilder(factory, element.getXMLStreamReader());
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createStAXOMBuilder(factory, element.getXMLStreamReader());
OMElement elem = builder.getDocumentElement();
elem.build();
return elem;
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java b/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java
deleted file mode 100644
index 4deb569..0000000
--- a/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java
+++ /dev/null
@@ -1,292 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.util;
-
-import org.apache.axiom.om.OMElement;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.description.Parameter;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSSecurityException;
-import org.apache.ws.security.handler.WSHandlerConstants;
-
-import javax.xml.namespace.QName;
-
-import java.util.Iterator;
-
-/**
- * This is used to process the security parameters from the configuration files
- *
- * Example: <code>
- <br>
-
- </code>
- *
- */
-public class HandlerParameterDecoder {
-
- /**
- *
- * @param msgCtx
- * @param inflow
- * @throws WSSecurityException
- */
- public static void processParameters(MessageContext msgCtx, boolean inflow)
- throws Exception {
- Parameter inFlowSecParam;
- Parameter outFlowSecParam;
-
- if(msgCtx.isServerSide()){
- inFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.INFLOW_SECURITY_SERVER);
- outFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY_SERVER);
- }else{
- inFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.INFLOW_SECURITY_CLIENT);
- outFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY_CLIENT);
- }
-
- //TODO: check whether policy is available
- if(inFlowSecParam == null){
- inFlowSecParam = (Parameter)msgCtx.getProperty(WSSHandlerConstants.INFLOW_SECURITY);
- }
-
- if(outFlowSecParam == null){
- outFlowSecParam = (Parameter)msgCtx.getProperty(WSSHandlerConstants.OUTFLOW_SECURITY);
- }
-
- //If the configs are not available in the file
- if(inFlowSecParam == null) {
- inFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.INFLOW_SECURITY);
- }
- if(outFlowSecParam == null) {
- outFlowSecParam = msgCtx.getParameter(WSSHandlerConstants.OUTFLOW_SECURITY);
- }
-
- int repetitionCount = -1;
-
- /*
- * Populate the inflow parameters
- */
- if (inFlowSecParam != null && inflow) {
- OMElement inFlowParamElem = inFlowSecParam.getParameterElement();
-
- OMElement actionElem = inFlowParamElem
- .getFirstChildWithName(new QName(WSSHandlerConstants.ACTION));
- if (actionElem == null) {
- throw new Exception(
- "Inflow configuration must contain an 'action' "
- + "elements the child of 'InflowSecurity' element");
- }
-
- Iterator childElements = actionElem.getChildElements();
- while (childElements.hasNext()) {
- OMElement element = (OMElement) childElements.next();
- msgCtx.setProperty(element.getLocalName(), element.getText().trim());
- }
-
- }
-
- /*
- * Populate the outflow parameters
- */
- if (outFlowSecParam != null && !inflow) {
- OMElement outFlowParamElem = outFlowSecParam.getParameterElement();
-
- Iterator childElements = outFlowParamElem.getChildElements();
- while (childElements.hasNext()) {
- OMElement element = (OMElement) childElements.next();
-
- if(!element.getLocalName().equals(WSSHandlerConstants.ACTION)) {
- throw new Exception(
- "Alian element '"
- + element.getLocalName()
- + "' in the 'OutFlowSecurity' element, "
- + "only 'action' elements can be present");
- }
-
- boolean signAllHeaders = false;
- boolean signBody = false;
- boolean encryptBody = false;
-
- repetitionCount++;
- Iterator paramElements = element.getChildElements();
- while (paramElements.hasNext()) {
- OMElement elem = (OMElement) paramElements.next();
- String localName = elem.getLocalName();
- String text = elem.getText().trim();
- if(localName.equals(WSSHandlerConstants.SIGN_ALL_HEADERS)) {
- signAllHeaders = true;
- } else if(localName.equals(WSSHandlerConstants.SIGN_BODY)) {
- signBody = true;
- } else if(localName.equals(WSSHandlerConstants.ENCRYPT_BODY)) {
- encryptBody = true;
- } else {
- msgCtx.setProperty(Axis2Util.getKey(localName,
- inflow,repetitionCount), text);
- }
- }
-
- if(signAllHeaders || signBody || encryptBody) {
- handleSignEncrParts(signAllHeaders, signBody, encryptBody,
- msgCtx, repetitionCount);
- }
-
-
- }
-
- msgCtx.setProperty(WSSHandlerConstants.SENDER_REPEAT_COUNT,
- Integer.valueOf(repetitionCount));
- }
- }
-
- public static OutflowConfiguration getOutflowConfiguration(Parameter outflowConfigParam) throws AxisFault {
- if (outflowConfigParam != null) {
- OMElement outflowParamElem = outflowConfigParam.getParameterElement();
-
- OMElement actionElem = outflowParamElem
- .getFirstChildWithName(new QName(WSSHandlerConstants.ACTION));
- if (actionElem == null) {
- throw new AxisFault(
- "Inflow configuration must contain an 'action' "
- + "elements the child of 'InflowSecurity' element");
- }
-
- OutflowConfiguration outflowConfiguration = new OutflowConfiguration();
-
- Iterator childElements = actionElem.getChildElements();
- while (childElements.hasNext()) {
- OMElement element = (OMElement) childElements.next();
-
- String localName = element.getLocalName();
- String text = element.getText().trim();
- if(localName.equals(WSHandlerConstants.PW_CALLBACK_CLASS)) {
- outflowConfiguration.setPasswordCallbackClass(text);
- } else if(localName.equals(WSHandlerConstants.SIG_PROP_FILE)) {
- outflowConfiguration.setSignaturePropFile(text);
- } else if(localName.equals(WSHandlerConstants.ENC_PROP_FILE)) {
- outflowConfiguration.setEncryptionPropFile(text);
- } else if(localName.equals(WSHandlerConstants.ENC_CALLBACK_CLASS)) {
- outflowConfiguration.setEmbeddedKeyCallbackClass(text);
- } else if(localName.equals(WSHandlerConstants.USER)) {
- outflowConfiguration.setUser(text);
- } else if(localName.equals(WSHandlerConstants.ENCRYPTION_USER)) {
- outflowConfiguration.setEncryptionUser(text);
- }
- }
- return outflowConfiguration;
- }
- return null;
- }
-
- public static InflowConfiguration getInflowConfiguration(Parameter inflowConfigParam) throws AxisFault {
-
- if (inflowConfigParam != null) {
- OMElement inFlowParamElem = inflowConfigParam.getParameterElement();
-
- OMElement actionElem = inFlowParamElem
- .getFirstChildWithName(new QName(WSSHandlerConstants.ACTION));
- if (actionElem == null) {
- throw new AxisFault(
- "Inflow configuration must contain an 'action' "
- + "elements the child of 'InflowSecurity' element");
- }
-
- InflowConfiguration inflowConfiguration = new InflowConfiguration();
-
- Iterator childElements = actionElem.getChildElements();
- while (childElements.hasNext()) {
- OMElement element = (OMElement) childElements.next();
-
- String localName = element.getLocalName();
- String text = element.getText().trim();
-
- if(localName.equals(WSHandlerConstants.PW_CALLBACK_CLASS)) {
- inflowConfiguration.setPasswordCallbackClass(text);
- } else if(localName.equals(WSHandlerConstants.SIG_PROP_FILE)) {
- inflowConfiguration.setSignaturePropFile(text);
- } else if(localName.equals(WSHandlerConstants.DEC_PROP_FILE)) {
- inflowConfiguration.setDecryptionPropFile(text);
- } else if (WSHandlerConstants.ENABLE_SIGNATURE_CONFIRMATION
- .equals(localName)) {
- if ("false".equals(text)
- || "0".equals(text)) {
- inflowConfiguration
- .setEnableSignatureConfirmation(false);
- }
- }
- }
- return inflowConfiguration;
- }
- return null;
- }
-
- private static void handleSignEncrParts(boolean signAllHeaders,
- boolean signBody, boolean encrBody, MessageContext msgCtx,
- int repetition) {
- String soapNs = msgCtx.getEnvelope().getNamespace().getNamespaceURI();
- if(signBody) {
- //Add body signPart
- String sigBodySigPart = "{Element}{" + soapNs + "}Body";
- addSigPart(sigBodySigPart, msgCtx, repetition);
- }
- if(encrBody) {
- //Encrypt body content
- String encrBodyEncrPart = "{}{" + soapNs + "}Body";
- addEncrPart(encrBodyEncrPart, msgCtx, repetition);
- }
- if(signAllHeaders) {
- Iterator children = msgCtx.getEnvelope().getHeader().getChildElements();
- while (children.hasNext()) {
- OMElement element = (OMElement) children.next();
- //Sign only the qualified headers
- //TODO check whether we can sign the unqualified header elements
- String ns = element.getNamespace().getNamespaceURI();
- if(ns != null && ns.length() > 0) {
- addSigPart("{Element}{" + ns + "}" + element.getLocalName(),msgCtx, repetition);
- }
- }
- }
-
- }
-
- private static void addSigPart(String sigPart, MessageContext msgCtx, int repetition) {
- String key = Axis2Util.getKey(WSHandlerConstants.SIGNATURE_PARTS, false, repetition);
- String existingSignParts = (String) msgCtx.getProperty(key);
- if (existingSignParts != null && existingSignParts.length() > 0) {
- // If the part is not already there as a sign part
- if (existingSignParts.indexOf(sigPart) != -1) {
- msgCtx.setProperty(key, existingSignParts + ";" + sigPart);
- }
- } else {
- // If there are no signed parts
- msgCtx.setProperty(key, sigPart);
- }
- }
-
- private static void addEncrPart(String encrPart, MessageContext msgCtx, int repetition) {
- String key = Axis2Util.getKey(WSHandlerConstants.ENCRYPTION_PARTS, false, repetition);
- String existingEncrParts = (String) msgCtx.getProperty(key);
- if (existingEncrParts != null && existingEncrParts.length() > 0) {
- if (existingEncrParts.indexOf(encrPart) != -1) {
- msgCtx.setProperty(key, existingEncrParts + ";" + encrPart);
- }
- } else {
- msgCtx.setProperty(key, encrPart);
- }
- }
-
-}
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java b/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
index de28171..6035981 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
+++ b/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
@@ -29,6 +29,7 @@
import org.apache.axis2.context.MessageContext;
import org.apache.axis2.dataretrieval.DRConstants;
import org.apache.axis2.dataretrieval.client.MexClient;
+import org.apache.axis2.description.AxisService;
import org.apache.axis2.description.Parameter;
import org.apache.axis2.mex.MexConstants;
import org.apache.axis2.mex.MexException;
@@ -55,6 +56,7 @@
import org.apache.rampart.policy.RampartPolicyData;
import org.apache.rampart.policy.SupportingPolicyData;
import org.apache.rampart.policy.model.CryptoConfig;
+import org.apache.rampart.policy.model.KerberosConfig;
import org.apache.rampart.policy.model.RampartConfig;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.model.*;
@@ -75,6 +77,7 @@
import org.apache.ws.security.message.WSSecEncryptedKey;
import org.apache.ws.security.util.Loader;
import org.apache.ws.security.util.WSSecurityUtil;
+import org.apache.ws.security.validate.KerberosTokenDecoder;
import org.apache.xml.security.utils.Constants;
import org.jaxen.JaxenException;
import org.jaxen.XPath;
@@ -165,6 +168,64 @@
return cbHandler;
}
+ /**
+ * Instantiates any Kerberos token decoder implementation configured via {@link KerberosConfig#setKerberosTokenDecoderClass(String)}
+ * using the {@link AxisService#getClassLoader() class loader} of the specified message context's {@link MessageContext#getAxisService() service}.
+ *
+ * @param msgContext The current message context. Must not be null and must contain a valid service instance.
+ * @param kerberosConfig Rampart's Kerberos configuration.
+ *
+ * @return A new instance of {@link KerberosTokenDecoder} implementation configured via {@link KerberosConfig#setKerberosTokenDecoderClass(String)} or <code>null</code>
+ * if no Kerberos token decoder is configured.
+ * @throws RampartException If the class cannot be loaded or instantiated.
+ */
+ public static KerberosTokenDecoder getKerberosTokenDecoder(MessageContext msgContext, KerberosConfig kerberosConfig) throws RampartException {
+ if (kerberosConfig == null) {
+ throw new IllegalArgumentException("Kerberos config must not be null");
+ }
+ else if (msgContext == null) {
+ throw new IllegalArgumentException("Message context must not be null");
+ }
+
+ AxisService service = msgContext.getAxisService();
+ if (service == null) {
+ throw new IllegalArgumentException("No service available in message context: " + msgContext.getLogIDString());
+ }
+
+ KerberosTokenDecoder kerberosTokenDecoder;
+
+ String kerberosTokenDecoderClass = kerberosConfig.getKerberosTokenDecoderClass();
+ if (kerberosTokenDecoderClass == null) {
+ if (log.isDebugEnabled()) {
+ log.debug("No Kerberos token decoder class configured for service: " + service.getName());
+ }
+ return null;
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug(String.format("Loading Kerberos token decoder class '%s' using class loader of service '%s'", kerberosTokenDecoderClass, service.getName()));
+ }
+
+ ClassLoader classLoader = service.getClassLoader();
+ Class krbTokenDecoderClass;
+ try {
+ krbTokenDecoderClass = Loader.loadClass(classLoader, kerberosTokenDecoderClass);
+ }
+ catch (ClassNotFoundException e) {
+ throw new RampartException("cannotLoadKrbTokenDecoderClass",
+ new String[] { kerberosTokenDecoderClass }, e);
+ }
+
+ try {
+ kerberosTokenDecoder = (KerberosTokenDecoder) krbTokenDecoderClass.newInstance();
+ } catch (java.lang.Exception e) {
+ throw new RampartException("cannotCreateKrbTokenDecoderInstance",
+ new String[] { kerberosTokenDecoderClass }, e);
+ }
+
+ return kerberosTokenDecoder;
+ }
+
/**
* Returns an instance of PolicyValidatorCallbackHandler to be used to validate ws-security results.
*
@@ -1472,7 +1533,12 @@
String encrKeyId = (String) wsSecEngineResult.get(WSSecurityEngineResult.TAG_ID);
if (actInt == WSConstants.ENCR &&
encrKeyId != null) {
- return encrKeyId;
+ if (encrKeyId.length() > 0) {
+ return encrKeyId;
+ }
+ else if (log.isDebugEnabled()) {
+ log.debug("Found encryption security processing result with empty id, skipping it: " + wsSecEngineResult);
+ }
}
}
}
@@ -1924,4 +1990,58 @@
QName value = code.getValueAsQName();
return value == null ? false : value.getNamespaceURI().equals(WSConstants.WSSE_NS);
}
+
+ /**
+ * @param rpd Rampart policy data instance. Must not be null.
+ * @return A collection of all {@link UsernameToken} supporting token assertions in the specified Rampart policy instance. The method will check the following lists:
+ * <ul>
+ * <li>{@link RampartPolicyData#getSupportingTokensList()}</li>
+ * <li>{@link RampartPolicyData#getSignedSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getSignedEndorsingSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getEndorsingSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getEncryptedSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getSignedEncryptedSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getEndorsingEncryptedSupportingTokens()}</li>
+ * <li>{@link RampartPolicyData#getSignedEndorsingEncryptedSupportingTokens()}</li>
+ * </ul>
+ */
+ public static Collection<UsernameToken> getUsernameTokens(RampartPolicyData rpd) {
+ Collection<UsernameToken> usernameTokens = new ArrayList<UsernameToken>();
+
+ List<SupportingToken> supportingToks = rpd.getSupportingTokensList();
+ for (SupportingToken suppTok : supportingToks) {
+ usernameTokens.addAll(getUsernameTokens(suppTok));
+ }
+
+ usernameTokens.addAll(getUsernameTokens(rpd.getSignedSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getSignedEndorsingSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getEndorsingSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getEncryptedSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getSignedEncryptedSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getEndorsingEncryptedSupportingTokens()));
+ usernameTokens.addAll(getUsernameTokens(rpd.getSignedEndorsingEncryptedSupportingTokens()));
+
+ return usernameTokens;
+ }
+
+ /**
+ * @param suppTok The {@link SupportingToken} assertion to check for username tokens.
+ * @return A collection of all tokens in the specified <code>suppTok</code> SupportingToken assertion which are instances of {@link UsernameToken}.
+ * If the specified <code>suppTok</code> SupportingToken assertion is <code>null</code>, an empty collection will be returned.
+ */
+ public static Collection<UsernameToken> getUsernameTokens(SupportingToken suppTok) {
+
+ if (suppTok == null) {
+ return new ArrayList<UsernameToken>();
+ }
+
+ Collection<UsernameToken> usernameTokens = new ArrayList<UsernameToken>();
+ for (org.apache.ws.secpolicy.model.Token token : suppTok.getTokens()) {
+ if (token instanceof UsernameToken) {
+ usernameTokens.add((UsernameToken)token);
+ }
+ }
+
+ return usernameTokens;
+ }
}
diff --git a/modules/rampart-core/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder b/modules/rampart-core/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
similarity index 73%
rename from modules/rampart-core/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
rename to modules/rampart-core/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
index 34900b9..a641f80 100644
--- a/modules/rampart-core/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
+++ b/modules/rampart-core/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
@@ -1,3 +1,4 @@
org.apache.rampart.policy.builders.CryptoConfigBuilder
org.apache.rampart.policy.builders.RampartConfigBuilder
-org.apache.rampart.policy.builders.SSLConfigBuilder
\ No newline at end of file
+org.apache.rampart.policy.builders.SSLConfigBuilder
+org.apache.rampart.policy.builders.KerberosConfigBuilder
\ No newline at end of file
diff --git a/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties b/modules/rampart-core/src/main/resources/org/apache/rampart/errors.properties
similarity index 89%
rename from modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
rename to modules/rampart-core/src/main/resources/org/apache/rampart/errors.properties
index 8e188b1..034b91d 100644
--- a/modules/rampart-core/src/main/java/org/apache/rampart/errors.properties
+++ b/modules/rampart-core/src/main/resources/org/apache/rampart/errors.properties
@@ -36,6 +36,7 @@
errorInObtainingSct=Error in obtaining SCT from \"{0}\"
errorInObtainingToken=Error in obtaining a token
errorInExtractingMsgProps = Error in extracting message properties
+securityPolicyNamespaceCannotBeNull=Security policy namespace cannot be null
userMissing = No user value in the rampart configuration policy
cbHandlerMissing = Password CallbackHandler not specified in rampart configuration policy or the CallbackHandler instance not available in the MessageContext
errorInGettingPasswordForUser = Error in getting password for user : \"{0}\"
@@ -46,6 +47,7 @@
errorInDerivedKeyTokenSignature = Error in DerivedKeyToken signature
errorInSignatureWithX509Token = Error in signature with X509Token
errorInSignatureWithACustomToken = Error in signature with a custom token
+errorInSignatureWithKerberosToken = Error in signature with KerberosToken
errorCreatingEncryptedKey = Error in creating an encrypted key
errorGettingSignatureValuesForSigconf = Error in getting signature values for signature confirmation
cannotLoadPWCBClass = Cannot load password callback class: {0}
@@ -103,4 +105,11 @@
invalidNonceLifeTime = Invalid value for nonceLifeTime in rampart configuration file.
invalidIssuerAddress = Invalid value for Issuer
invalidSignatureAlgo=Invalid signature algorithm for Asymmetric binding
+invalidUsernameTokenType = Invalid UsernameToken Type.
+#Rampart Kerberos-specific errors
+invalidServicePrincipalNameForm = Invalid servicePrincipalNameForm found in Rampart configuration ({0}). The supported service principal name forms are: \"{1}\", \"{2}\".
+noKerberosConfigDefined = No kerberosConfig policy assertion defined in rampart config.
+errorInBuildingKereberosToken = Error in building kereberos token.
+cannotLoadKrbTokenDecoderClass = Cannot load Kerberos token decoder class: {0}
+cannotCreateKrbTokenDecoderInstance = Cannot create instance of Kerberos token decoder : {0}
\ No newline at end of file
diff --git a/modules/rampart-core/src/test/java/org/apache/rampart/policy/builders/KerberosConfigBuilderTest.java b/modules/rampart-core/src/test/java/org/apache/rampart/policy/builders/KerberosConfigBuilderTest.java
new file mode 100644
index 0000000..b0addbf
--- /dev/null
+++ b/modules/rampart-core/src/test/java/org/apache/rampart/policy/builders/KerberosConfigBuilderTest.java
@@ -0,0 +1,121 @@
+/*
+ * 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.rampart.policy.builders;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.StringWriter;
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamWriter;
+
+import junit.framework.TestCase;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyBuilder;
+import org.apache.rampart.policy.RampartPolicyBuilder;
+import org.apache.rampart.policy.RampartPolicyData;
+import org.apache.rampart.policy.model.KerberosConfig;
+import org.apache.rampart.policy.model.RampartConfig;
+import org.apache.ws.secpolicy.WSSPolicyException;
+
+public class KerberosConfigBuilderTest extends TestCase {
+
+ public static final String KERBEROS_CONFIG_POLICY_FILE = "kerberosConfig.policy";
+
+ private static final Log log = LogFactory.getLog(KerberosConfigBuilderTest.class);
+
+ public void testBuildKerberosConfig() throws WSSPolicyException {
+ Policy kerberosConfigPolicy = loadKerberosConfigPolicy();
+ assertNotNull(String.format("Failed to parse policy file: %s", KERBEROS_CONFIG_POLICY_FILE), kerberosConfigPolicy);
+
+ Iterator<List<Assertion>> iter = kerberosConfigPolicy.getAlternatives();
+
+ assertTrue(String.format("No policy alternatives found in policy file: %s", KERBEROS_CONFIG_POLICY_FILE), iter.hasNext());
+
+ //Process policy and build policy data
+ RampartPolicyData policyData = RampartPolicyBuilder.build(iter.next());
+
+ RampartConfig rampartConfig = policyData.getRampartConfig();
+ assertNotNull(String.format("No rampartConfig found in policy file: %s", KERBEROS_CONFIG_POLICY_FILE), rampartConfig);
+ KerberosConfig kerberosConfig = rampartConfig.getKerberosConfig();
+ assertNotNull(String.format("No kerberosConfig found in policy file: %s", KERBEROS_CONFIG_POLICY_FILE), kerberosConfig);
+
+ assertEquals("Kerberos jaas context name not configured as expected.", "alice", kerberosConfig.getJaasContext());
+ assertEquals("Kerberos principal name not configured as expected.", "alice", kerberosConfig.getPrincipalName());
+ assertEquals("Kerberos principal password not configured as expected.", "changeit", kerberosConfig.getPrincipalPassword());
+ assertEquals("Kerberos service principal name not configured as expected.", "bob/example.com", kerberosConfig.getServicePrincipalName());
+ assertEquals("Kerberos token decoder class not configured as expected.", "org.foo.KerberosTokenDecoderImpl", kerberosConfig.getKerberosTokenDecoderClass());
+ assertTrue("Request for Kerberos credential delegation is expected to be enabled.", kerberosConfig.isRequstCredentialDelegation());
+ }
+
+ public void testSerializeKerberosConfig() throws Exception {
+ Policy kerberosConfigPolicy = loadKerberosConfigPolicy();
+ assertNotNull(String.format("Failed to parse policy file: %s", KERBEROS_CONFIG_POLICY_FILE), kerberosConfigPolicy);
+
+ //serialize the kerberos config policy
+ StringWriter writer = new StringWriter();
+ XMLStreamWriter streamWriter = null;
+ try {
+ streamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
+ kerberosConfigPolicy.serialize(streamWriter);
+ }
+ finally {
+ if (streamWriter != null) {
+ streamWriter.close();
+ }
+ }
+
+ assertAbout(xml())
+ .that(writer.toString())
+ .ignoringWhitespace()
+ .hasSameContentAs(KerberosConfigBuilderTest.class.getResource(KERBEROS_CONFIG_POLICY_FILE));
+ }
+
+ private Policy loadKerberosConfigPolicy() {
+ InputStream kerberosConfigStream = null;
+ try {
+ kerberosConfigStream = this.getClass().getResourceAsStream(KERBEROS_CONFIG_POLICY_FILE);
+ PolicyBuilder builder = new PolicyBuilder();
+ return builder.getPolicy(kerberosConfigStream);
+ }
+ finally {
+ closeStream(kerberosConfigStream);
+ }
+ }
+
+ private void closeStream(InputStream in) {
+ if (in != null) {
+ try {
+ in.close();
+ }
+ catch (IOException e) {
+ log.error("Failed to close input stream.", e);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/rampart-core/src/test/resources/org/apache/rampart/policy/builders/kerberosConfig.policy b/modules/rampart-core/src/test/resources/org/apache/rampart/policy/builders/kerberosConfig.policy
new file mode 100644
index 0000000..f727eb6
--- /dev/null
+++ b/modules/rampart-core/src/test/resources/org/apache/rampart/policy/builders/kerberosConfig.policy
@@ -0,0 +1,22 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy">
+ <rampart:timestampPrecisionInMilliseconds>true</rampart:timestampPrecisionInMilliseconds>
+ <rampart:timestampTTL>300</rampart:timestampTTL>
+ <rampart:timestampMaxSkew>300</rampart:timestampMaxSkew>
+ <rampart:timestampStrict>false</rampart:timestampStrict>
+ <rampart:nonceLifeTime>300</rampart:nonceLifeTime>
+ <rampart:kerberosConfig>
+ <rampart:jaasContext>alice</rampart:jaasContext>
+ <rampart:principalName>alice</rampart:principalName>
+ <rampart:principalPassword>changeit</rampart:principalPassword>
+ <rampart:servicePrincipalName>bob/example.com</rampart:servicePrincipalName>
+ <rampart:servicePrincipalNameForm>username</rampart:servicePrincipalNameForm>
+ <rampart:kerberosTokenDecoderClass>org.foo.KerberosTokenDecoderImpl</rampart:kerberosTokenDecoderClass>
+ <rampart:requestCredentialDelegation>true</rampart:requestCredentialDelegation>
+ </rampart:kerberosConfig>
+ </rampart:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-integration/pom.xml b/modules/rampart-integration/pom.xml
index 4a0af24..485aa59 100644
--- a/modules/rampart-integration/pom.xml
+++ b/modules/rampart-integration/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -41,41 +41,6 @@
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
- <id>copy-mars</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy</goal>
- </goals>
- <configuration>
- <artifactItems>
- <artifactItem>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rampart</artifactId>
- <version>${project.version}</version>
- <type>mar</type>
- <overWrite>true</overWrite>
- <outputDirectory>target/artifacts</outputDirectory>
- </artifactItem>
- <artifactItem>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rahas</artifactId>
- <version>${project.version}</version>
- <type>mar</type>
- <overWrite>true</overWrite>
- <outputDirectory>target/artifacts</outputDirectory>
- </artifactItem>
- <artifactItem>
- <groupId>org.apache.axis2</groupId>
- <artifactId>addressing</artifactId>
- <version>${axis2.version}</version>
- <type>mar</type>
- <overWrite>true</overWrite>
- <outputDirectory>target/artifacts</outputDirectory>
- </artifactItem>
- </artifactItems>
- </configuration>
- </execution>
- <execution>
<id>copy-endorsed</id>
<phase>process-resources</phase>
<goals>
@@ -90,85 +55,120 @@
</executions>
</plugin>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-repo-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>create-test-repo</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart</modules>
+ <outputDirectory>target/test-classes</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rampart-client-repo</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart,rahas</modules>
+ <outputDirectory>target/test-resources/rampart_client_repo</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rampart-service-repo</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart,rahas</modules>
+ <axis2xml>src/test/resources/conf/axis2.xml</axis2xml>
+ <outputDirectory>target/test-resources/rampart_service_repo</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rahas-client-repo</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart</modules>
+ <outputDirectory>target/test-resources/rahas_client_repo</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rahas-service-repo-1</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart,rahas</modules>
+ <axis2xml>src/test/resources/conf/axis2.xml</axis2xml>
+ <outputDirectory>target/test-resources/rahas_service_repo_1</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rahas-service-repo-3</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart,rahas</modules>
+ <axis2xml>src/test/resources/conf/axis2.xml</axis2xml>
+ <outputDirectory>target/test-resources/rahas_service_repo_3</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-default-security-client-repo</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart</modules>
+ <axis2xml>src/test/resources/conf/axis2.xml</axis2xml>
+ <configurationDirectory>conf</configurationDirectory>
+ <outputDirectory>target/test-resources/default_security_client_repo</outputDirectory>
+ </configuration>
+ </execution>
+ <execution>
+ <id>create-rahas-service-repo-5</id>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <modules>addressing,rampart,rahas</modules>
+ <axis2xml>src/test/resources/conf/axis2.xml</axis2xml>
+ <outputDirectory>target/test-resources/rahas_service_repo_5</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
- <version>1.1</version>
<executions>
- <execution>
- <id>generate-source</id>
- <phase>process-resources</phase>
- <goals>
- <goal>run</goal>
- </goals>
- <configuration>
- <tasks>
- <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
- <arg line="-uri src/main/resources/ping/ping.wsdl -ss -o target/generated-code -p org.apache.axis2.oasis.ping -d xmlbeans -g" />
- <classpath refid="maven.dependency.classpath" />
- <classpath refid="maven.compile.classpath" />
- <classpath refid="maven.runtime.classpath" />
- </java>
- <!-- copy the service impl -->
- <copy file="src/main/resources/ping/src/org/apache/axis2/oasis/ping/PingPortSkeleton.java" tofile="target/generated-code/src/org/apache/axis2/oasis/ping/PingPortSkeleton.java" overwrite="yes" />
- <!-- Password callback class for the interop service -->
- <copy file="src/main/resources/ping/src/org/apache/axis2/security/PWCallback.java" tofile="target/generated-code/src/org/apache/axis2/security/PWCallback.java" overwrite="yes" />
- <!-- Interop client -->
- <copy file="src/main/resources/ping/src/org/apache/axis2/security/InteropScenarioClient.java" tofile="target/generated-code/src/org/apache/axis2/security/InteropScenarioClient.java" overwrite="yes" />
-
- <copy todir="target/test-classes">
- <fileset dir="target/generated-code/resources">
- <include name="**/*" />
- </fileset>
- </copy>
-
-
- <javac srcdir="target/generated-code" destdir="target/classes" fork="true">
- <classpath refid="maven.dependency.classpath" />
- <classpath refid="maven.compile.classpath" />
- <classpath refid="maven.runtime.classpath" />
- </javac>
-
- </tasks>
- </configuration>
- </execution>
+
<execution>
<id>create-test-resources</id>
<phase>process-test-resources</phase>
<configuration>
<tasks>
<property name="addressing.mar" value="addressing-${axis2.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-classes/modules/addressing-${axis2.version}.mar" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-classes/modules/rampart-${project.version}.mar" />
<mkdir dir="target/temp-ramp" />
<mkdir dir="target/temp-ramp/META-INF" />
- <copy overwrite="yes" file="target/classes/org/apache/rampart/Service.class" tofile="target/temp-ramp/org/apache/rampart/Service.class" />
- <copy overwrite="yes" file="target/classes/org/apache/rampart/PWCallback.class" tofile="target/temp-ramp/org/apache/rampart/PWCallback.class" />
<copy overwrite="yes" file="src/test/resources/rampart/store.jks" tofile="target/temp-ramp/store.jks" />
<!--path id="ramp.client.props" location="test-resources/rampart"/-->
<!--maven:addPath id="maven.dependency.classpath" refid="ramp.client.props" -->
<mkdir dir="target/test-resources/rampart_client_repo" />
<mkdir dir="target/test-resources/rampart_client_repo/conf" />
- <mkdir dir="target/test-resources/rampart_client_repo/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rampart_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/rahas-${project.version}.mar" tofile="target/test-resources/rampart_client_repo/modules/rahas-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rampart_client_repo/modules/addressing-${axis2.version}.mar" />
<mkdir dir="target/test-resources/rampart_service_repo" />
<mkdir dir="target/test-resources/rampart_service_repo/conf" />
<mkdir dir="target/test-resources/rampart_service_repo/services" />
- <mkdir dir="target/test-resources/rampart_service_repo/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rampart_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/rahas-${project.version}.mar" tofile="target/test-resources/rampart_service_repo/modules/rahas-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rampart_service_repo/modules/addressing-${axis2.version}.mar" />
<!-- Service 1 -->
<copy overwrite="yes" file="src/test/resources/rampart/services-1.xml" tofile="target/temp-ramp/META-INF/services.xml" />
@@ -276,6 +276,10 @@
<!-- Service 34 -->
<copy overwrite="yes" file="src/test/resources/rampart/services-34.xml" tofile="target/temp-ramp/META-INF/services.xml" />
<jar jarfile="target/test-resources/rampart_service_repo/services/SecureService34.aar" basedir="target/temp-ramp" />
+
+ <!-- Service 35 -->
+ <copy overwrite="yes" file="src/test/resources/rampart/services-35.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/SecureService35.aar" basedir="target/temp-ramp" />
<!-- Service SC-1 -->
@@ -294,27 +298,36 @@
<jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC3.aar" basedir="target/temp-ramp" />
<!-- Service SC-4 This is with standard secure conversation specification -->
- <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties"/>
- <copy overwrite="yes" file="src/test/resources/rampart/services-sc-4.xml" tofile="target/temp-ramp/META-INF/services.xml"/>
- <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC4.aar" basedir="target/temp-ramp"/>
+ <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties" />
+ <copy overwrite="yes" file="src/test/resources/rampart/services-sc-4.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC4.aar" basedir="target/temp-ramp" />
<!-- Service SC-5 This is with standard secure conversation specification -->
- <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties"/>
- <copy overwrite="yes" file="src/test/resources/rampart/services-sc-5.xml" tofile="target/temp-ramp/META-INF/services.xml"/>
- <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC5.aar" basedir="target/temp-ramp"/>
+ <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties" />
+ <copy overwrite="yes" file="src/test/resources/rampart/services-sc-5.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC5.aar" basedir="target/temp-ramp" />
<!-- Service SC-6 This is with standard secure conversation specification -->
- <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties"/>
- <copy overwrite="yes" file="src/test/resources/rampart/services-sc-6.xml" tofile="target/temp-ramp/META-INF/services.xml"/>
- <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC6.aar" basedir="target/temp-ramp"/>
+ <copy overwrite="yes" file="src/test/resources/rampart/issuer.properties" tofile="target/temp-ramp/issuer.properties" />
+ <copy overwrite="yes" file="src/test/resources/rampart/services-sc-6.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/SecureServiceSC6.aar" basedir="target/temp-ramp" />
+
+ <!-- Kerberos Services -->
+ <copy overwrite="yes" file="src/test/resources/rampart/kerberos/KerberosOverTransportKeytab.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/KerberosOverTransportKeytab.aar" basedir="target/temp-ramp" />
+
+ <copy overwrite="yes" file="src/test/resources/rampart/kerberos/KerberosOverTransportPWCB.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/KerberosOverTransportPWCB.aar" basedir="target/temp-ramp" />
+
+ <copy overwrite="yes" file="src/test/resources/rampart/kerberos/KerberosDelegation.xml" tofile="target/temp-ramp/META-INF/services.xml" />
+ <jar jarfile="target/test-resources/rampart_service_repo/services/KerberosDelegation.aar" basedir="target/temp-ramp" />
+
<!--
Set up the infra for rahas tests and the rahas client repo
-->
<mkdir dir="target/temp-rahas" />
<mkdir dir="target/temp-rahas/META-INF" />
- <copy overwrite="yes" file="target/classes/org/apache/rahas/Service.class" tofile="target/temp-rahas/org/apache/rahas/Service.class" />
- <copy overwrite="yes" file="target/classes/org/apache/rahas/PWCallback.class" tofile="target/temp-rahas/org/apache/rahas/PWCallback.class" />
<copy overwrite="yes" todir="target/temp-rahas">
<fileset dir="src/test/resources/rahas">
<include name="issuer.properties" />
@@ -325,17 +338,10 @@
<!--addPath id="maven.dependency.classpath" refid="rahas.client.props"-->
<mkdir dir="target/test-resources/rahas_client_repo" />
<mkdir dir="target/test-resources/rahas_client_repo/conf" />
- <mkdir dir="target/test-resources/rahas_client_repo/modules" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rahas_client_repo/modules/addressing-${axis2.version}.mar" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rahas_client_repo/modules/rampart-${project.version}.mar" />
<!-- Rahas Test1: SAML Token test -->
<mkdir dir="target/test-resources/rahas_service_repo_1" />
<mkdir dir="target/test-resources/rahas_service_repo_1/conf" />
<mkdir dir="target/test-resources/rahas_service_repo_1/services" />
- <mkdir dir="target/test-resources/rahas_service_repo_1/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_1/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/rahas-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_1/modules/rahas-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rahas_service_repo_1/modules/addressing-${axis2.version}.mar" />
<!-- copy the services.xml and create the aar -->
<copy overwrite="yes" file="src/test/resources/rahas/s1-services.xml" tofile="target/temp-rahas/META-INF/services.xml" />
<jar jarfile="target/test-resources/rahas_service_repo_1/services/SecureService.aar" basedir="target/temp-rahas" />
@@ -346,211 +352,23 @@
<mkdir dir="target/test-resources/rahas_service_repo_3" />
<mkdir dir="target/test-resources/rahas_service_repo_3/conf" />
<mkdir dir="target/test-resources/rahas_service_repo_3/services" />
- <mkdir dir="target/test-resources/rahas_service_repo_3/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_3/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/rahas-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_3/modules/rahas-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rahas_service_repo_3/modules/addressing-${axis2.version}.mar" />
<!-- copy the services.xml and create the aar -->
<copy overwrite="yes" file="src/test/resources/rahas/s3-services.xml" tofile="target/temp-rahas/META-INF/services.xml" />
<jar jarfile="target/test-resources/rahas_service_repo_3/services/SecureService.aar" basedir="target/temp-rahas" />
<!--
Rahas Test 3 & 4: RahasSAMLTokenUTForHoKTest and RahasSAMLTokenUTForHoKV1205Test : END
-->
- <mkdir dir="target/test-resources/default_security_client_repo" />
- <mkdir dir="target/test-resources/default_security_client_repo/conf" />
- <mkdir dir="target/test-resources/default_security_client_repo/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/default_security_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/default_security_client_repo/modules/addressing-${axis2.version}.mar" />
- <copy file="src/test/resources/conf/axis2.xml" tofile="target/test-resources/default_security_client_repo/conf/axis2.xml" />
<!--
RahasSAMLTokenAttributeTest
-->
<mkdir dir="target/test-resources/rahas_service_repo_5" />
<mkdir dir="target/test-resources/rahas_service_repo_5/conf" />
<mkdir dir="target/test-resources/rahas_service_repo_5/services" />
- <mkdir dir="target/test-resources/rahas_service_repo_5/modules" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_5/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/rahas-${project.version}.mar" tofile="target/test-resources/rahas_service_repo_5/modules/rahas-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/rahas_service_repo_5/modules/addressing-${axis2.version}.mar" />
<!-- copy the services.xml and create the aar -->
<copy overwrite="yes" file="src/test/resources/rahas/s5-services.xml" tofile="target/temp-rahas/META-INF/services.xml" />
<jar jarfile="target/test-resources/rahas_service_repo_5/services/SecureService.aar" basedir="target/temp-rahas" />
<!--RahasAttributeTest END-->
- <!-- Scenario 1 -->
- <mkdir dir="target/test-resources/scenario1_client_repo" />
- <mkdir dir="target/test-resources/scenario1_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario1_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario1_client_repo/services" />
- <mkdir dir="target/test-resources/scenario1_service_repo" />
- <mkdir dir="target/test-resources/scenario1_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario1_service_repo/services" />
- <mkdir dir="target/test-resources/scenario1_service_repo/modules" />
- <!-- setup scenario 1 client repository-->
- <copy file="src/test/resources/security/s1.client.axis2.xml" tofile="target/test-resources/scenario1_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario1_client_repo/modules/rampart-${project.version}.mar" />
- <!-- setup scenario 1 service repository-->
- <copy file="src/test/resources/security/s1.service.axis2.xml" tofile="target/test-resources/scenario1_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario1_service_repo/modules/rampart-${project.version}.mar" />
-
- <mkdir dir="target/temp-interop/META-INF" />
-
- <!-- Create the .aar file -->
- <copy file="src/test/resources/security/s1.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario1_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
- <!-- Scenario 2 - Setup the client and service repos -->
- <mkdir dir="target/test-resources/scenario2_client_repo" />
- <mkdir dir="target/test-resources/scenario2_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario2_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario2_service_repo" />
- <mkdir dir="target/test-resources/scenario2_service_repo/ conf" />
- <mkdir dir="target/test-resources/scenario2_service_repo/services" />
- <mkdir dir="target/test-resources/scenario2_service_repo/modules" />
- <copy file="src/test/resources/security/s2.client.axis2.xml" tofile="target/test-resources/scenario2_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario2_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s2.service.axis2.xml" tofile="target/test-resources/scenario2_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario2_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s2.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario2_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario 2a - set up repos -->
- <mkdir dir="target/test-resources/scenario2a_client_repo" />
- <mkdir dir="target/test-resources/scenario2a_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario2a_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario2a_service_repo" />
- <mkdir dir="target/test-resources/scenario2a_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario2a_service_repo/services" />
- <mkdir dir="target/test-resources/scenario2a_service_repo/modules" />
- <copy file="src/test/resources/security/s2a.client.axis2.xml" tofile="target/test-resources/scenario2a_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario2a_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s2a.service.axis2.xml" tofile="target/test-resources/scenario2a_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario2a_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s2a.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario2a_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
- <!-- Scenario 3 -->
- <mkdir dir="target/test-resources/scenario3_client_repo" />
- <mkdir dir="target/test-resources/scenario3_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario3_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario3_service_repo" />
- <mkdir dir="target/test-resources/scenario3_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario3_service_repo/services" />
- <mkdir dir="target/test-resources/scenario3_service_repo/modules" />
- <copy file="src/test/resources/security/s3.client.axis2.xml" tofile="target/test-resources/scenario3_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario3_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s3.service.axis2.xml" tofile="target/test-resources/scenario3_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario3_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s3.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario3_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario 4 -->
- <mkdir dir="target/test-resources/scenario4_client_repo" />
- <mkdir dir="target/test-resources/scenario4_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario4_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario4_service_repo" />
- <mkdir dir="target/test-resources/scenario4_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario4_service_repo/services" />
- <mkdir dir="target/test-resources/scenario4_service_repo/modules" />
- <copy file="src/test/resources/security/s4.client.axis2.xml" tofile="target/test-resources/scenario4_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario4_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s4.service.axis2.xml" tofile="target/test-resources/scenario4_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario4_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s4.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario4_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario 5 -->
- <mkdir dir="target/test-resources/scenario5_client_repo" />
- <mkdir dir="target/test-resources/scenario5_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario5_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario5_service_repo" />
- <mkdir dir="target/test-resources/scenario5_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario5_service_repo/services" />
- <mkdir dir="target/test-resources/scenario5_service_repo/modules" />
- <copy file="src/test/resources/security/s5.client.axis2.xml" tofile="target/test-resources/scenario5_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario5_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s5.service.axis2.xml" tofile="target/test-resources/scenario5_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario5_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s5.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario5_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario 6 -->
- <mkdir dir="target/test-resources/scenario6_client_repo" />
- <mkdir dir="target/test-resources/scenario6_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario6_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario6_service_repo" />
- <mkdir dir="target/test-resources/scenario6_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario6_service_repo/services" />
- <mkdir dir="target/test-resources/scenario6_service_repo/modules" />
- <copy file="src/test/resources/security/s6.client.axis2.xml" tofile="target/test-resources/scenario6_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario6_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s6.service.axis2.xml" tofile="target/test-resources/scenario6_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario6_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s6.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario6_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario 7 -->
- <mkdir dir="target/test-resources/scenario7_client_repo" />
- <mkdir dir="target/test-resources/scenario7_client_repo/conf" />
- <mkdir dir="target/test-resources/scenario7_client_repo/modules" />
- <mkdir dir="target/test-resources/scenario7_service_repo" />
- <mkdir dir="target/test-resources/scenario7_service_repo/conf" />
- <mkdir dir="target/test-resources/scenario7_service_repo/services" />
- <mkdir dir="target/test-resources/scenario7_service_repo/modules" />
- <copy file="src/test/resources/security/s7.client.axis2.xml" tofile="target/test-resources/scenario7_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario7_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s7.service.axis2.xml" tofile="target/test-resources/scenario7_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenario7_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/s7.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenario7_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Scenario ST1 -->
- <mkdir dir="target/test-resources/scenarioST1_client_repo" />
- <mkdir dir="target/test-resources/scenarioST1_client_repo/conf" />
- <mkdir dir="target/test-resources/scenarioST1_client_repo/modules" />
- <mkdir dir="target/test-resources/scenarioST1_service_repo" />
- <mkdir dir="target/test-resources/scenarioST1_service_repo/conf" />
- <mkdir dir="target/test-resources/scenarioST1_service_repo/services" />
- <mkdir dir="target/test-resources/scenarioST1_service_repo/modules" />
- <copy file="src/test/resources/security/sST1.client.axis2.xml" tofile="target/test-resources/scenarioST1_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenarioST1_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/sST1.service.axis2.xml" tofile="target/test-resources/scenarioST1_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/scenarioST1_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/sST1.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/scenarioST1_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- MTOM Optimized Security Test -->
- <mkdir dir="target/test-resources/mtom_sec_client_repo" />
- <mkdir dir="target/test-resources/mtom_sec_client_repo/conf" />
- <mkdir dir="target/test-resources/mtom_sec_client_repo/modules" />
- <mkdir dir="target/test-resources/mtom_sec_service_repo" />
- <mkdir dir="target/test-resources/mtom_sec_service_repo/conf" />
- <mkdir dir="target/test-resources/mtom_sec_service_repo/services" />
- <mkdir dir="target/test-resources/mtom_sec_service_repo/modules" />
- <copy file="src/test/resources/security/secMtom.client.axis2.xml" tofile="target/test-resources/mtom_sec_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/mtom_sec_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/secMtom.service.axis2.xml" tofile="target/test-resources/mtom_sec_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/mtom_sec_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="src/test/resources/security/secMtom.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <jar jarfile="target/test-resources/mtom_sec_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
-
- <!-- Test with addressing and MTOM -->
- <mkdir dir="target/test-resources/complete_client_repo" />
- <mkdir dir="target/test-resources/complete_client_repo/conf" />
- <mkdir dir="target/test-resources/complete_client_repo/modules" />
- <mkdir dir="target/test-resources/complete_service_repo" />
- <mkdir dir="target/test-resources/complete_service_repo/conf" />
- <mkdir dir="target/test-resources/complete_service_repo/services" />
- <mkdir dir="target/test-resources/complete_service_repo/modules" />
- <!-- Test with addressing and MTOM client repository-->
- <copy file="src/test/resources/security/complete.client.axis2.xml" tofile="target/test-resources/complete_client_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/complete_client_repo/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/complete_client_repo/modules/addressing-${axis2.version}.mar" />
- <!-- Test with addressing and MTOMservice repository-->
- <copy file="src/test/resources/security/complete.service.axis2.xml" tofile="target/test-resources/complete_service_repo/conf/axis2.xml" />
- <copy file="target/artifacts/rampart-${project.version}.mar" tofile="target/test-resources/complete_service_repo/modules/rampart-${project.version}.mar" />
- <copy file="target/artifacts/addressing-${axis2.version}.mar" tofile="target/test-resources/complete_service_repo/modules/addressing-${axis2.version}.mar" />
- <copy file="src/test/resources/security/complete.service.xml" tofile="target/temp-interop/META-INF/services.xml" overwrite="true" />
- <!-- Create the .aar file -->
- <jar jarfile="target/test-resources/complete_service_repo/services/PingPort.aar" basedir="target/temp-interop" />
</tasks>
</configuration>
<goals>
@@ -581,7 +399,13 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- Add the Xerces/Xalan versions expected by OpenSAML to the boot classpath so that the build succeeds on older 1.5 JDKs -->
- <argLine>-Xbootclasspath/p:${project.build.directory}/endorsed/xml-apis.jar${path.separator}${project.build.directory}/endorsed/xercesImpl.jar${path.separator}${project.build.directory}/endorsed/resolver.jar${path.separator}${project.build.directory}/endorsed/serializer.jar${path.separator}${project.build.directory}/endorsed/xalan.jar</argLine>
+ <argLine>${jacoco.surefireArgLine} -Xbootclasspath/p:${project.build.directory}/endorsed/xml-apis.jar${path.separator}${project.build.directory}/endorsed/xercesImpl.jar${path.separator}${project.build.directory}/endorsed/resolver.jar${path.separator}${project.build.directory}/endorsed/serializer.jar${path.separator}${project.build.directory}/endorsed/xalan.jar</argLine>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
</configuration>
</plugin>
</plugins>
@@ -592,16 +416,37 @@
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-policy</artifactId>
<version>${project.version}</version>
+ <!-- Use Jetty's servlet api (2.5) -->
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-trust</artifactId>
<version>${project.version}</version>
+ <!-- Use Jetty's servlet api (2.5) -->
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-core</artifactId>
<version>${project.version}</version>
+ <!-- Use Jetty's servlet api (2.5) -->
+ <exclusions>
+ <exclusion>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </exclusion>
+ </exclusions>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
@@ -629,10 +474,100 @@
<version>${axis2.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.rampart</groupId>
+ <artifactId>rampart</artifactId>
+ <version>${project.version}</version>
+ <type>mar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.rampart</groupId>
+ <artifactId>rahas</artifactId>
+ <version>${project.version}</version>
+ <type>mar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <type>mar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-core-annotations</artifactId>
+ <version>2.0.0-M21</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-protocol-shared</artifactId>
+ <version>2.0.0-M21</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-protocol-kerberos</artifactId>
+ <version>2.0.0-M21</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.server</groupId>
+ <artifactId>apacheds-interceptor-kerberos</artifactId>
+ <version>2.0.0-M21</version>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.api</groupId>
+ <artifactId>api-ldap-codec-standalone</artifactId>
+ <version>1.0.0-M33</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.directory.api</groupId>
+ <artifactId>api-ldap-extras-codec-api</artifactId>
+ <version>1.0.0-M33</version>
+ </dependency>
+ <dependency>
+ <groupId>commons-io</groupId>
+ <artifactId>commons-io</artifactId>
+ <version>2.4</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>commons-collections</groupId>
+ <artifactId>commons-collections</artifactId>
+ <version>3.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-truth</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>compile</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -642,20 +577,10 @@
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-testutils</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
</dependencies>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <configuration>
- <templateDirectory>${basedir}</templateDirectory>
- <menu ref="parent" />
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
</project>
diff --git a/modules/rampart-integration/src/main/java/org/apache/axis2/integration/TestConstants.java b/modules/rampart-integration/src/main/java/org/apache/axis2/integration/TestConstants.java
new file mode 100644
index 0000000..c20a517
--- /dev/null
+++ b/modules/rampart-integration/src/main/java/org/apache/axis2/integration/TestConstants.java
@@ -0,0 +1,25 @@
+/*
+ * 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.axis2.integration;
+
+public final class TestConstants {
+ public static final String TESTING_PATH = "target/test-resources/";
+
+ private TestConstants() {}
+}
diff --git a/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServer.java b/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServer.java
deleted file mode 100644
index 40fbe74..0000000
--- a/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServer.java
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.integration;
-
-import junit.framework.TestCase;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.Constants;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.context.ServiceGroupContext;
-import org.apache.axis2.deployment.DeploymentEngine;
-import org.apache.axis2.description.AxisModule;
-import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.AxisServiceGroup;
-import org.apache.axis2.description.TransportInDescription;
-import org.apache.axis2.engine.ListenerManager;
-import org.apache.axis2.transport.http.SimpleHTTPServer;
-
-import javax.xml.namespace.QName;
-import java.io.File;
-import java.io.FilenameFilter;
-
-public class UtilServer {
- private static int count = 0;
-
- private static SimpleHTTPServer receiver;
-
- public static final int TESTING_PORT = 5555;
-
- public static final String FAILURE_MESSAGE = "Intentional Failure";
-
-
- public static synchronized void deployService(AxisService service)
- throws AxisFault {
- receiver.getConfigurationContext().getAxisConfiguration().addService(
- service);
- }
-
- public static synchronized void unDeployService(QName service)
- throws AxisFault {
- receiver.getConfigurationContext().getAxisConfiguration()
- .removeService(service.getLocalPart());
- }
-
- public static synchronized void unDeployClientService() throws AxisFault {
- if (receiver.getConfigurationContext().getAxisConfiguration() != null) {
- receiver.getConfigurationContext().getAxisConfiguration()
- .removeService("AnonymousService");
- }
- }
-
- public static synchronized void start() throws Exception {
- start(org.apache.axis2.Constants.TESTING_REPOSITORY);
- }
-
- public static synchronized void start(String repository) throws Exception {
- if (count == 0) {
- ConfigurationContext er = getNewConfigurationContext(repository);
-
- receiver = new SimpleHTTPServer(er, TESTING_PORT);
-
- try {
- receiver.start();
- ListenerManager listenerManager = er.getListenerManager();
- TransportInDescription trsIn = new TransportInDescription(
- Constants.TRANSPORT_HTTP);
- trsIn.setReceiver(receiver);
- if (listenerManager == null) {
- listenerManager = new ListenerManager();
- listenerManager.init(er);
- }
- listenerManager.addListener(trsIn, true);
- System.out.print("Server started on port "
- + TESTING_PORT + ".....");
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e1) {
- throw new AxisFault("Thread interuptted", e1);
- }
-
-
- count++;
- }
-
- public static synchronized void start(String repository, String axis2xml) throws Exception {
- if (count == 0) {
- ConfigurationContext er = getNewConfigurationContext(repository, axis2xml);
-
- receiver = new SimpleHTTPServer(er, TESTING_PORT);
-
- try {
- receiver.start();
- System.out.print("Server started on port "
- + TESTING_PORT + ".....");
- } catch (Exception e) {
- throw new AxisFault(e.getMessage(), e);
- }
-
- try {
- Thread.sleep(2000);
- } catch (InterruptedException e1) {
- throw new AxisFault("Thread interuptted", e1);
- }
-
- }
- count++;
- }
-
- public static ConfigurationContext getNewConfigurationContext(
- String repository) throws Exception {
- File file = new File(repository);
- if (!file.exists()) {
- throw new Exception("repository directory "
- + file.getAbsolutePath() + " does not exists");
- }
- return ConfigurationContextFactory.createConfigurationContextFromFileSystem(file.getAbsolutePath(),
- file.getAbsolutePath() + "/conf/axis2.xml");
- }
-
- public static ConfigurationContext getNewConfigurationContext(
- String repository, String axis2xml) throws Exception {
- File file = new File(repository);
- if (!file.exists()) {
- throw new Exception("repository directory "
- + file.getAbsolutePath() + " does not exists");
- }
- return ConfigurationContextFactory.createConfigurationContextFromFileSystem(file.getAbsolutePath(),
- axis2xml);
- }
-
- public static synchronized void stop() throws AxisFault {
- if (count == 1) {
- receiver.stop();
- while (receiver.isRunning()) {
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e1) {
- //nothing to do here
- }
- }
- count = 0;
-// tp.doStop();
- System.out.print("Server stopped .....");
- } else {
- count--;
- }
- receiver.getConfigurationContext().terminate();
- }
-
- public static ConfigurationContext getConfigurationContext() {
- return receiver.getConfigurationContext();
- }
-
- public static ServiceContext createAdressedEnabledClientSide(
- AxisService service) throws AxisFault {
- File file = getAddressingMARFile();
- TestCase.assertTrue(file.exists());
- ConfigurationContext configContext = ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(
- "target/test-resources/integrationRepo", null);
- AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
- configContext.getAxisConfiguration().addModule(axisModule);
-
- configContext.getAxisConfiguration().addService(service);
-
- return new ServiceGroupContext(configContext, (AxisServiceGroup) service.getParent())
- .getServiceContext(service);
- }
-
- static class AddressingFilter implements FilenameFilter {
- public boolean accept(File dir, String name) {
- return name.startsWith("addressing") && name.endsWith(".mar");
- }
- }
-
- private static File getAddressingMARFile() {
- File dir = new File(org.apache.axis2.Constants.TESTING_REPOSITORY + "/modules");
- File[] files = dir.listFiles(new AddressingFilter());
- TestCase.assertTrue(files.length == 1);
- File file = files[0];
- TestCase.assertTrue(file.exists());
- return file;
- }
-
- public static ConfigurationContext createClientConfigurationContext() throws AxisFault {
- File file = getAddressingMARFile();
- TestCase.assertTrue(file.exists());
-
- ConfigurationContext configContext = ConfigurationContextFactory .createConfigurationContextFromFileSystem(
- "target/test-resources/integrationRepo",
- "target/test-resources/integrationRepo/conf/axis2.xml");
- AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
- configContext.getAxisConfiguration().addModule(axisModule);
- return configContext;
- }
-
- public static ConfigurationContext createClientConfigurationContext(String repo) throws AxisFault {
- return ConfigurationContextFactory .createConfigurationContextFromFileSystem(
- repo,
- repo + "/conf/axis2.xml");
- }
-
- public static ServiceContext createAdressedEnabledClientSide(
- AxisService service, String clientHome) throws AxisFault {
- File file = getAddressingMARFile();
- TestCase.assertTrue(file.exists());
-
- ConfigurationContext configContext = ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(clientHome, null);
- AxisModule axisModule = DeploymentEngine.buildModule(file,
- configContext.getAxisConfiguration());
-
- configContext.getAxisConfiguration().addModule(axisModule);
-// sysContext.getAxisConfiguration().engageModule(moduleDesc.getName());
-
- configContext.getAxisConfiguration().addService(service);
-
- return new ServiceGroupContext(configContext, (AxisServiceGroup) service.getParent())
- .getServiceContext(service);
- }
-
-}
diff --git a/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServerBasedTestCase.java b/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServerBasedTestCase.java
deleted file mode 100644
index 248ec07..0000000
--- a/modules/rampart-integration/src/main/java/org/apache/axis2/integration/UtilServerBasedTestCase.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* Copyright 2004-2006 The Apache Software Foundation.
-*
-* Licensed 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.axis2.integration;
-
-import junit.extensions.TestSetup;
-import junit.framework.Test;
-import junit.framework.TestCase;
-
-public class UtilServerBasedTestCase extends TestCase {
-
- public UtilServerBasedTestCase() {
- super(UtilServerBasedTestCase.class.getName());
- }
-
- public UtilServerBasedTestCase(java.lang.String string) {
- super(string);
- }
-
- protected static Test getTestSetup(Test test) {
- return new TestSetup(test) {
- public void setUp() throws Exception {
- UtilServer.start();
- }
-
- public void tearDown() throws Exception {
- UtilServer.stop();
- }
- };
- }
-
- protected static Test getTestSetup2(Test test, final String param) {
- return new TestSetup(test) {
- public void setUp() throws Exception {
- UtilServer.start(param);
- }
-
- public void tearDown() throws Exception {
- UtilServer.stop();
- }
- };
- }
-
- protected static Test getTestSetup3(Test test, final String param1, final String param2) {
- return new TestSetup(test) {
- public void setUp() throws Exception {
- UtilServer.start(param1, param2);
- }
-
- public void tearDown() throws Exception {
- UtilServer.stop();
- }
- };
- }
-}
diff --git a/modules/rampart-integration/src/main/java/org/apache/rahas/PWCallback.java b/modules/rampart-integration/src/main/java/org/apache/rahas/PWCallback.java
index ee636bb..08bf0d6 100755
--- a/modules/rampart-integration/src/main/java/org/apache/rahas/PWCallback.java
+++ b/modules/rampart-integration/src/main/java/org/apache/rahas/PWCallback.java
@@ -33,35 +33,6 @@
public class PWCallback implements CallbackHandler {
-
- /** Field key */
-
- private static final byte[] key = {
-
- (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
-
- (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
-
- (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
-
- (byte) 0x3e, (byte) 0x80, (byte) 0xae, (byte) 0x98, (byte) 0x51,
-
- (byte) 0xc8, (byte) 0x51, (byte) 0x34, (byte) 0x04,
-
- };
-
-
-
- /*
-
- * (non-Javadoc)
-
- * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
-
- */
-
-
-
/**
* Method handle
@@ -150,11 +121,7 @@
*/
- if (pc.getUsage() == WSPasswordCallback.KEY_NAME) {
-
- pc.setKey(key);
-
- } else if(pc.getIdentifier().equals("alice")) {
+ if(pc.getIdentifier().equals("alice")) {
pc.setPassword("password");
diff --git a/modules/rampart-integration/src/main/java/org/apache/rahas/TestClient.java b/modules/rampart-integration/src/main/java/org/apache/rahas/TestClient.java
index 88a957a..3b484c1 100644
--- a/modules/rampart-integration/src/main/java/org/apache/rahas/TestClient.java
+++ b/modules/rampart-integration/src/main/java/org/apache/rahas/TestClient.java
@@ -16,95 +16,54 @@
package org.apache.rahas;
+import static org.apache.axis2.integration.TestConstants.TESTING_PATH;
+
+import java.io.FileInputStream;
+import java.io.InputStream;
+
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.AddressingConstants;
-import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.integration.UtilServer;
+import org.apache.axis2.context.ServiceContext;
+import org.apache.axis2.testutils.ClientHelper;
+import org.apache.axis2.testutils.JettyServer;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
+import org.apache.rampart.RampartMessageData;
+import org.junit.Rule;
+import org.junit.Test;
-import javax.xml.namespace.QName;
+public abstract class TestClient {
-import junit.framework.TestCase;
+ @Rule
+ public final JettyServer server = new JettyServer(TESTING_PATH + getServiceRepo(), false);
-public abstract class TestClient extends TestCase {
-
- protected int port = UtilServer.TESTING_PORT;
-
- public TestClient(String name) {
- super(name);
- }
-
- protected void setUp() throws Exception {
- UtilServer.start(Constants.TESTING_PATH + getServiceRepo(), null);
- }
-
- protected void tearDown() throws Exception {
- UtilServer.stop();
- }
+ @Rule
+ public final ClientHelper clientHelper = new ClientHelper(server, TESTING_PATH + "rahas_client_repo");
/**
*/
+ @Test
public void testRequest() throws Exception {
- // Get the repository location from the args
- String repo = Constants.TESTING_PATH + "rahas_client_repo";
-
- ConfigurationContext configContext = ConfigurationContextFactory.createConfigurationContextFromFileSystem(repo,
- null);
- ServiceClient serviceClient = new ServiceClient(configContext, null);
- Options options = new Options();
-
- System.setProperty("javax.net.ssl.keyStorePassword", "password");
- System.setProperty("javax.net.ssl.keyStoreType", "JKS");
- System.setProperty("javax.net.ssl.trustStore", "/home/ruchith/Desktop/interop/certs/interop2.jks");
- System.setProperty("javax.net.ssl.trustStorePassword", "password");
- System.setProperty("javax.net.ssl.trustStoreType","JKS");
-
- options.setTo(new EndpointReference("http://127.0.0.1:" + port + "/axis2/services/SecureService"));
-// options.setTo(new EndpointReference("http://127.0.0.1:" + 9090 + "/axis2/services/UTSAMLHoK"));
-// options.setTo(new EndpointReference("https://www-lk.wso2.com:8443/axis2/services/UTSAMLHoK"));
-// options.setTo(new EndpointReference("https://192.18.49.133:2343/jaxws-s1-sts/sts"));
-// options.setTo(new EndpointReference("https://207.200.37.116/SxSts/Scenario_1_IssuedTokenOverTransport_UsernameOverTransport"));
-// options.setTo(new EndpointReference("http://localhost:9090/SxSts/Scenario_4_IssuedToken_MutualCertificate10"));
-
-// options.setTo(new EndpointReference("http://127.0.0.1:" + 9090 + "/axis2/services/MutualCertsSAMLHoK"));
-// options.setTo(new EndpointReference("http://www-lk.wso2.com:8888/axis2/services/MutualCertsSAMLHoK"));
-// options.setTo(new EndpointReference("https://131.107.72.15/trust/Addressing2004/UserName"));
-// options.setTo(new EndpointReference("https://131.107.72.15/trust/UserName"));
-// options.setTo(new EndpointReference("http://127.0.0.1:" + 9090 + "/trust/X509WSS10"));
-// options.setTo(new EndpointReference("https://131.107.72.15/trust/UserName"));
-// options.setTo(new EndpointReference("http://127.0.0.1:" + 9090 + "/jaxws-s4-sts/sts"));
-// options.setTo(new EndpointReference("http://127.0.0.1:9090/jaxws-s4/simple"));
-// options.setTo(new EndpointReference("http://127.0.0.1:" + 9090 + "/axis2/services/UTSAMLBearer"));
+ ServiceClient serviceClient = clientHelper.createServiceClient("SecureService");
+ Options options = serviceClient.getOptions();
options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
options.setAction(this.getRequestAction());
// options.setProperty(AddressingConstants.WS_ADDRESSING_VERSION, this.getWSANamespace());
options.setTimeOutInMilliSeconds(200 * 1000);
- OutflowConfiguration clientOutflowConfiguration = getClientOutflowConfiguration();
- if (clientOutflowConfiguration != null) {
- configContext.setProperty(WSSHandlerConstants.OUTFLOW_SECURITY, clientOutflowConfiguration.getProperty());
- }
- InflowConfiguration clientInflowConfiguration = getClientInflowConfiguration();
- if (clientInflowConfiguration != null) {
- configContext.setProperty(WSSHandlerConstants.INFLOW_SECURITY, clientInflowConfiguration.getProperty());
- }
+ ServiceContext context = serviceClient.getServiceContext();
+ context.setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy());
+
serviceClient.engageModule("addressing");
serviceClient.engageModule("rampart");
- serviceClient.setOptions(options);
-
//Blocking invocation
OMElement result = serviceClient.sendReceive(getRequest());
@@ -118,9 +77,7 @@
public abstract OMElement getRequest();
- public abstract OutflowConfiguration getClientOutflowConfiguration();
-
- public abstract InflowConfiguration getClientInflowConfiguration();
+ public abstract String getClientPolicyPath();
public abstract String getServiceRepo();
@@ -172,9 +129,16 @@
public abstract OMElement getRSTTemplate() throws TrustException;
protected Policy getPolicy(String filePath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(filePath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(filePath));
OMElement elem = builder.getDocumentElement();
return PolicyEngine.getPolicy(elem);
}
+
+ private Policy loadPolicy() throws Exception {
+ String path = getClientPolicyPath();
+ InputStream poilicyStream = TestClient.class.getResourceAsStream(path);
+ return PolicyEngine.getPolicy(poilicyStream);
+ }
+
}
diff --git a/modules/rampart-integration/src/main/resources/ping/ping.wsdl b/modules/rampart-integration/src/main/resources/ping/ping.wsdl
deleted file mode 100644
index 788518d..0000000
--- a/modules/rampart-integration/src/main/resources/ping/ping.wsdl
+++ /dev/null
@@ -1,68 +0,0 @@
-<definitions xmlns:s1="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
- xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
- xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
- xmlns:s="http://www.w3.org/2001/XMLSchema"
- xmlns:tns="http://xmlsoap.org/Ping"
- xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
- xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
- targetNamespace="http://xmlsoap.org/Ping"
- xmlns="http://schemas.xmlsoap.org/wsdl/">
- <types>
- <s:schema elementFormDefault="qualified" targetNamespace="http://xmlsoap.org/Ping">
- <s:import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
- <s:element name="Ping" nillable="true" type="tns:ping"/>
- <s:complexType name="ping">
- <s:sequence>
- <s:element minOccurs="0" maxOccurs="1" name="ticket" type="tns:ticketType"/>
- <s:element minOccurs="1" maxOccurs="1" name="text" nillable="true" type="s:string"/>
- </s:sequence>
- </s:complexType>
- <s:complexType name="ticketType">
- <s:simpleContent>
- <s:extension base="s:string">
- <s:attribute ref="s1:Id"/>
- </s:extension>
- </s:simpleContent>
- </s:complexType>
- <s:element name="PingResponse" nillable="true" type="tns:pingResponse"/>
- <s:complexType name="pingResponse">
- <s:sequence>
- <s:element minOccurs="1" maxOccurs="1" name="text" nillable="true" type="s:string"/>
- </s:sequence>
- </s:complexType>
- </s:schema>
- <s:schema elementFormDefault="qualified" targetNamespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
- <s:attribute name="Id" type="s:string"/>
- </s:schema>
- </types>
- <message name="PingRequest">
- <part name="ping" element="tns:Ping"/>
- </message>
- <message name="PingResponse">
- <part name="pingResponse" element="tns:PingResponse"/>
- </message>
- <portType name="PingPort">
- <operation name="Ping" >
- <input message="tns:PingRequest"/>
- <output message="tns:PingResponse"/>
- </operation>
- </portType>
- <binding name="PingBinding" type="tns:PingPort">
- <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
- <operation name="Ping">
- <soap:operation soapAction="urn:Ping" style="document"/>
- <input>
- <soap:body use="literal"/>
- </input>
- <output>
- <soap:body use="literal"/>
- </output>
- </operation>
- </binding>
- <service name="PingPort">
- <port name="Ping1" binding="tns:PingBinding">
- <soap:address location="http://localhost:9080/pingservice/Ping1"/>
- </port>
- </service>
-</definitions>
diff --git a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/oasis/ping/PingPortSkeleton.java b/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/oasis/ping/PingPortSkeleton.java
deleted file mode 100644
index 57ef4dd..0000000
--- a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/oasis/ping/PingPortSkeleton.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-* Copyright 2004,2005 The Apache Software Foundation.
-*
-* Licensed 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.axis2.oasis.ping;
-
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.ws.security.WSConstants;
-import org.apache.ws.security.WSSecurityEngineResult;
-import org.apache.ws.security.handler.WSHandlerConstants;
-import org.apache.ws.security.handler.WSHandlerResult;
-import org.xmlsoap.ping.PingDocument;
-import org.xmlsoap.ping.PingResponse;
-import org.xmlsoap.ping.PingResponseDocument;
-
-import java.security.Principal;
-import java.util.List;
-
-/**
- * Auto generated java skeleton for the service by the Axis code generator
- */
-public class PingPortSkeleton{
- /**
- * Auto generated method signature
- *
- * @param param0
- */
- public PingResponseDocument ping
- (PingDocument param0) {
- List<WSHandlerResult> results = null;
- MessageContext msgCtx = MessageContext.getCurrentMessageContext();
- if ((results =
- (List<WSHandlerResult>) msgCtx.getProperty(WSHandlerConstants.RECV_RESULTS))
- == null) {
- System.out.println("No security results!!");
- throw new RuntimeException("No security results!!");
- } else {
- System.out.println("Number of results: " + results.size());
- for (WSHandlerResult result : results) {
- List<WSSecurityEngineResult> wsSecEngineResults = result.getResults();
-
- for (WSSecurityEngineResult wser : wsSecEngineResults) {
- if (getAction(wser) != WSConstants.ENCR && getPrincipal(wser) != null) {
- System.out.println(getPrincipal(wser).getName());
- }
- }
- }
- PingResponseDocument response = PingResponseDocument.Factory.newInstance();
- PingResponse pingRes = response.addNewPingResponse();
- pingRes.setText("Response: " + param0.getPing().getText());
- return response;
- }
- }
-
- private int getAction(WSSecurityEngineResult result) {
- return (Integer)result.get(WSSecurityEngineResult.TAG_ACTION);
- }
-
- private Principal getPrincipal(WSSecurityEngineResult result) {
- return (Principal)result.get(WSSecurityEngineResult.TAG_PRINCIPAL);
- }
-
-}
-
\ No newline at end of file
diff --git a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/InteropScenarioClient.java b/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/InteropScenarioClient.java
deleted file mode 100644
index 4d2d889..0000000
--- a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/InteropScenarioClient.java
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
-import org.apache.axis2.Constants;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.oasis.ping.PingPortStub;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.xmlsoap.ping.Ping;
-import org.xmlsoap.ping.PingDocument;
-import org.xmlsoap.ping.PingResponse;
-import org.xmlsoap.ping.PingResponseDocument;
-import org.xmlsoap.ping.TicketType;
-
-import java.util.Enumeration;
-import java.util.Hashtable;
-
-/**
- * Client for the interop service This MUST be used with the codegen'ed classes
- */
-public class InteropScenarioClient {
-
- String soapNsURI = SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI;
-
- public InteropScenarioClient(boolean useSOAP12InStaticConfigTest) {
- if (useSOAP12InStaticConfigTest) {
- soapNsURI = SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI;
- }
- }
-
- public void invokeWithStaticConfig(String clientRepo, String url)
- throws Exception {
- TicketType ticket = TicketType.Factory.newInstance();
- ticket.setId("MyticketId");
-
- Ping ping = Ping.Factory.newInstance();
- ping.setText("Testing rampart");
- ping.setTicket(ticket);
-
- PingDocument pingDoc = PingDocument.Factory.newInstance();
- pingDoc.setPing(ping);
-
- ConfigurationContext configCtx = ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(clientRepo,
- clientRepo + "/conf/axis2.xml");
- PingPortStub stub = new PingPortStub(configCtx, url);
-
- // Enable MTOM to those scenarios where they are configured using:
- // <optimizeParts>xpathExpression</optimizeParts>
- stub._getServiceClient().getOptions().setProperty(
- Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
- stub._getServiceClient().getOptions().setSoapVersionURI(soapNsURI);
- stub._getServiceClient().engageModule("rampart");
-
- PingResponseDocument pingResDoc = stub.ping(pingDoc);
-
- PingResponse pingRes = pingResDoc.getPingResponse();
-
- System.out.println(pingRes.getText());
- }
-
- public void invokeWithGivenConfig(String clientRepo, String url,
- OutflowConfiguration outflowConfig, InflowConfiguration inflowConfig)
- throws Exception {
- TicketType ticket = TicketType.Factory.newInstance();
- ticket.setId("MyticketId"); // TODO need to figure out why "My ticket Id" is failing
-
- Ping ping = Ping.Factory.newInstance();
- ping.setText("Testing rampart");
- ping.setTicket(ticket);
-
- PingDocument pingDoc = PingDocument.Factory.newInstance();
- pingDoc.setPing(ping);
-
- PingPortStub stub = new PingPortStub(ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(clientRepo,
- clientRepo + "/conf/axis2.xml"), url);
-
- // Enable MTOM to those scenarios where they are configured using:
- // <optimizeParts>xpathExpression</optimizeParts>
- stub._getServiceClient().getOptions().setProperty(
- Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
- // Engage the security module
- stub._getServiceClient().engageModule("rampart");
-
- if (outflowConfig != null) {
- stub._getServiceClient().getServiceContext().setProperty(
- WSSHandlerConstants.OUTFLOW_SECURITY,
- outflowConfig.getProperty());
- }
- if (inflowConfig != null) {
- stub._getServiceClient().getServiceContext().setProperty(
- WSSHandlerConstants.INFLOW_SECURITY,
- inflowConfig.getProperty());
- }
- PingResponseDocument pingResDoc = stub.ping(pingDoc);
-
- PingResponse pingRes = pingResDoc.getPingResponse();
-
- System.out.println(pingRes.getText());
- stub = null;
- }
-
- public void invokeWithGivenConfigWithProRefs(String clientRepo, String url,
- OutflowConfiguration outflowConfig, InflowConfiguration inflowConfig,
- Hashtable propRefs)
- throws Exception {
- TicketType ticket = TicketType.Factory.newInstance();
- ticket.setId("MyticketId"); // TODO need to figure out why "My ticket Id" is failing
-
- Ping ping = Ping.Factory.newInstance();
- ping.setText("Testing rampart");
- ping.setTicket(ticket);
-
- PingDocument pingDoc = PingDocument.Factory.newInstance();
- pingDoc.setPing(ping);
-
- PingPortStub stub = new PingPortStub(ConfigurationContextFactory
- .createConfigurationContextFromFileSystem(clientRepo,
- clientRepo + "/conf/axis2.xml"), url);
-
- // Enable MTOM to those scenarios where they are configured using:
- // <optimizeParts>xpathExpression</optimizeParts>
- stub._getServiceClient().getOptions().setProperty(
- Constants.Configuration.ENABLE_MTOM, Constants.VALUE_TRUE);
- // Engage the security module
- stub._getServiceClient().engageModule("rampart");
-
- if (outflowConfig != null) {
- stub._getServiceClient().getServiceContext().setProperty(
- WSSHandlerConstants.OUTFLOW_SECURITY,
- outflowConfig.getProperty());
- }
- if (inflowConfig != null) {
- stub._getServiceClient().getServiceContext().setProperty(
- WSSHandlerConstants.INFLOW_SECURITY,
- inflowConfig.getProperty());
- }
-
- if(propRefs != null) {
- Enumeration keysEnum = propRefs.keys();
- while (keysEnum.hasMoreElements()) {
- String refKey = (String) keysEnum.nextElement();
-
- stub._getServiceClient().getServiceContext().setProperty(refKey,
- propRefs.get(refKey));
- }
- }
-
- PingResponseDocument pingResDoc = stub.ping(pingDoc);
-
- PingResponse pingRes = pingResDoc.getPingResponse();
-
- System.out.println(pingRes.getText());
- stub = null;
- }
-}
diff --git a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/PWCallback.java b/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/PWCallback.java
deleted file mode 100644
index a51b7e3..0000000
--- a/modules/rampart-integration/src/main/resources/ping/src/org/apache/axis2/security/PWCallback.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-import java.io.IOException;
-
-
-
-/**
-
- * Class PWCallback
-
- */
-
-public class PWCallback implements CallbackHandler {
-
-
-
- /** Field key */
-
- private static final byte[] key = {
-
- (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
-
- (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
-
- (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
-
- (byte) 0x3e, (byte) 0x80, (byte) 0xae, (byte) 0x98, (byte) 0x51,
-
- (byte) 0xc8, (byte) 0x51, (byte) 0x34, (byte) 0x04,
-
- };
-
-
-
- /*
-
- * (non-Javadoc)
-
- * @see javax.security.auth.callback.CallbackHandler#handle(javax.security.auth.callback.Callback[])
-
- */
-
-
-
- /**
-
- * Method handle
-
- *
-
- * @param callbacks
-
- * @throws java.io.IOException
-
- * @throws javax.security.auth.callback.UnsupportedCallbackException
-
- */
-
- public void handle(Callback[] callbacks)
-
- throws IOException, UnsupportedCallbackException {
-
-
-
- for (int i = 0; i < callbacks.length; i++) {
-
- if (callbacks[i] instanceof WSPasswordCallback) {
-
- WSPasswordCallback pc = (WSPasswordCallback) callbacks[i];
-
-
-
- /*
-
- * This usage type is used only in case we received a
-
- * username token with a password of type PasswordText or
-
- * an unknown password type.
-
- *
-
- * This case the WSPasswordCallback object contains the
-
- * identifier (aka username), the password we received, and
-
- * the password type string to identify the type.
-
- *
-
- * Here we perform only a very simple check.
-
- */
-
- if (pc.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN) {
-
- if(pc.getIdentifier().equals("Ron") && pc.getPassword().equals("noR")) {
-
- return;
-
- }
-
- if (pc.getPassword().equals("sirhC")) {
-
- return;
-
- }
-
- throw new UnsupportedCallbackException(callbacks[i],
-
- "check failed");
-
- }
-
- /*
-
- * here call a function/method to lookup the password for
-
- * the given identifier (e.g. a user name or keystore alias)
-
- * e.g.: pc.setPassword(passStore.getPassword(pc.getIdentfifier))
-
- * for Testing we supply a fixed name here.
-
- */
-
- if (pc.getUsage() == WSPasswordCallback.SECRET_KEY) {
-
- pc.setKey(key);
-
- } else if(pc.getIdentifier().equals("alice")) {
-
- pc.setPassword("password");
-
- } else if(pc.getIdentifier().equals("bob")) {
-
- pc.setPassword("password");
-
- } else if(pc.getIdentifier().equals("Ron")) {
-
- pc.setPassword("noR");
-
- } else {
-
- pc.setPassword("sirhC");
-
- }
-
- } else {
-
- throw new UnsupportedCallbackException(callbacks[i],
-
- "Unrecognized Callback");
-
- }
-
- }
-
- }
-
-}
-
-
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/AddressingMTOMSecurityTest.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/AddressingMTOMSecurityTest.java
deleted file mode 100644
index a5690e6..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/AddressingMTOMSecurityTest.java
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.axis2.Constants;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-
-public class AddressingMTOMSecurityTest extends InteropTestBase {
-
- protected OutflowConfiguration getOutflowConfiguration() {
-
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Timestamp Signature Encrypt");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setSignatureParts("{Element}{" + ADDR_NS + "}To;" +
- "{Element}{" + ADDR_NS + "}MessageID;" +
- "{Element}{" + WSU_NS + "}Timestamp");
- ofc.setOptimizeParts(
- "//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp Signature Encrypt");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
-
- return ifc;
- }
-
- protected String getClientRepo() {
- return COMPLETE_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return COMPLETE_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
-
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Timestamp Signature Encrypt");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropRefId("key1");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setSignatureParts("{Element}{" + ADDR_NS + "}To;" +
- "{Element}{" + ADDR_NS + "}MessageID;" +
- "{Element}{" + WSU_NS + "}Timestamp");
- ofc.setOptimizeParts(
- "//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp Signature Encrypt");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropRefId("key2");
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
-
- return table;
- }
-
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java
deleted file mode 100644
index 407a71e..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/InteropTestBase.java
+++ /dev/null
@@ -1,239 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.AddressingConstants;
-import org.apache.axis2.integration.UtilServer;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.lang.reflect.Constructor;
-import java.lang.reflect.Method;
-import java.util.Hashtable;
-
-import junit.framework.TestCase;
-
-public abstract class InteropTestBase extends TestCase {
-
- protected static final String SCENARIO1_SERVICE_REPOSITORY =
- "scenario1_service_repo";
-
- protected static final String SCENARIO1_CLIENT_REPOSITORY =
- "scenario1_client_repo";
-
- protected static final String SCENARIO2_SERVICE_REPOSITORY =
- "scenario2_service_repo";
-
- protected static final String SCENARIO2_CLIENT_REPOSITORY =
- "scenario2_client_repo";
-
- protected static final String SCENARIO2a_SERVICE_REPOSITORY =
- "scenario2a_service_repo";
-
- protected static final String SCENARIO2a_CLIENT_REPOSITORY =
- "scenario2a_client_repo";
-
- protected static final String SCENARIO3_SERVICE_REPOSITORY =
- "scenario3_service_repo";
-
- protected static final String SCENARIO3_CLIENT_REPOSITORY =
- "scenario3_client_repo";
-
- protected static final String SCENARIO4_SERVICE_REPOSITORY =
- "scenario4_service_repo";
-
- protected static final String SCENARIO4_CLIENT_REPOSITORY =
- "scenario4_client_repo";
-
- protected static final String SCENARIO5_SERVICE_REPOSITORY =
- "scenario5_service_repo";
-
- protected static final String SCENARIO5_CLIENT_REPOSITORY =
- "scenario5_client_repo";
-
- protected static final String SCENARIO6_SERVICE_REPOSITORY =
- "scenario6_service_repo";
-
- protected static final String SCENARIO6_CLIENT_REPOSITORY =
- "scenario6_client_repo";
-
- protected static final String SCENARIO7_SERVICE_REPOSITORY =
- "scenario7_service_repo";
-
- protected static final String SCENARIO7_CLIENT_REPOSITORY =
- "scenario7_client_repo";
-
- protected static final String SCENARIO_ST1_SERVICE_REPOSITORY =
- "scenarioST1_service_repo";
-
- protected static final String SCENARIO_ST1_CLIENT_REPOSITORY =
- "scenarioST1_client_repo";
-
- protected static final String SCENARIO_ST3_SERVICE_REPOSITORY =
- "scenarioST3_service_repo";
-
- protected static final String SCENARIO_ST3_CLIENT_REPOSITORY =
- "scenarioST3_client_repo";
-
- protected static final String SCENARIO_ST4_SERVICE_REPOSITORY =
- "scenarioST4_service_repo";
-
- protected static final String SCENARIO_ST4_CLIENT_REPOSITORY =
- "scenarioST4_client_repo";
-
- protected static final String MTOM_SEC_SERVICE_REPOSITORY =
- "mtom_sec_service_repo";
-
- protected static final String MTOM_SEC_CLIENT_REPOSITORY =
- "mtom_sec_client_repo";
-
- protected static final String COMPLETE_SERVICE_REPOSITORY =
- "complete_service_repo";
-
- protected static final String COMPLETE_CLIENT_REPOSITORY =
- "complete_client_repo";
-
- protected static final String DEFAULT_CLIENT_REPOSITORY =
- "default_security_client_repo";
-
- protected static final String WSSE_NS = WSConstants.WSSE_NS;
-
- protected static final String WSU_NS = WSConstants.WSU_NS;
-
- protected static final String ADDR_NS =
- AddressingConstants.Final.WSA_NAMESPACE;
-
- private String targetEpr = "http://127.0.0.1:" +
-// 5556 +
- UtilServer.TESTING_PORT +
- "/axis2/services/PingPort";
-
- public InteropTestBase() {
- super();
- }
-
- public InteropTestBase(String arg0) {
- super(arg0);
- }
-
- public void setUp() throws Exception {
- UtilServer.start(Constants.TESTING_PATH + getServiceRepo());
- }
-
- public void tearDown() throws Exception {
- UtilServer.stop();
- }
- /**
- * Do test
- */
- public void testInteropWithConfigFiles() {
- try {
-
- Class interopScenarioClientClass = Class
- .forName("org.apache.axis2.security.InteropScenarioClient");
-
- Constructor c = interopScenarioClientClass
- .getConstructor(new Class[]{boolean.class});
- Object clientObj = c.newInstance(new Object[]{this
- .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
- : Boolean.FALSE});
- Method m = interopScenarioClientClass.getMethod(
- "invokeWithStaticConfig", new Class[]{String.class,
- String.class});
- m.invoke(clientObj, new Object[]{
- Constants.TESTING_PATH + getClientRepo(), targetEpr});
-
- } catch (Exception e) {
- e.printStackTrace();
- fail("Error in introperating with " + targetEpr
- + ", client configuration: " + getClientRepo());
- }
- }
-
- public void testInteropWithDynamicConfig() {
- try {
- Class interopScenarioClientClass = Class
- .forName("org.apache.axis2.security.InteropScenarioClient");
- Constructor c = interopScenarioClientClass
- .getConstructor(new Class[]{boolean.class});
- Object clientObj = c.newInstance(new Object[]{this
- .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
- : Boolean.FALSE});
- Method m = interopScenarioClientClass.getMethod(
- "invokeWithGivenConfig", new Class[]{String.class,
- String.class, OutflowConfiguration.class,
- InflowConfiguration.class});
- m.invoke(clientObj, new Object[]{
- Constants.TESTING_PATH + DEFAULT_CLIENT_REPOSITORY,
- targetEpr, getOutflowConfiguration(),
- getInflowConfiguration()});
-
- } catch (Exception e) {
- e.printStackTrace();
- fail("Error in introperating with " + targetEpr
- + ", client configuration: " + getClientRepo());
- }
-
- }
-
- public void testInteropWithDynamicConfigWithProfRefs() {
- if(getPropertyRefs() != null) {
- try {
-
- Class interopScenarioClientClass = Class
- .forName("org.apache.axis2.security.InteropScenarioClient");
- Constructor c = interopScenarioClientClass
- .getConstructor(new Class[]{boolean.class});
- Object clientObj = c.newInstance(new Object[]{this
- .isUseSOAP12InStaticConfigTest() ? Boolean.TRUE
- : Boolean.FALSE});
- Method m = interopScenarioClientClass.getMethod(
- "invokeWithGivenConfigWithProRefs", new Class[]{
- String.class,
- String.class, OutflowConfiguration.class,
- InflowConfiguration.class, Hashtable.class});
- m.invoke(clientObj, new Object[]{
- Constants.TESTING_PATH + DEFAULT_CLIENT_REPOSITORY,
- targetEpr, getOutflowConfigurationWithRefs(),
- getInflowConfigurationWithRefs(),
- getPropertyRefs()});
- } catch (Exception e) {
- e.printStackTrace();
- fail("Error in introperating with " + targetEpr
- + ", client configuration: " + getClientRepo());
- }
- }
- }
-
- protected abstract OutflowConfiguration getOutflowConfiguration();
-
- protected abstract InflowConfiguration getInflowConfiguration();
-
- protected abstract OutflowConfiguration getOutflowConfigurationWithRefs();
-
- protected abstract InflowConfiguration getInflowConfigurationWithRefs();
-
- protected abstract Hashtable getPropertyRefs();
-
- protected abstract String getClientRepo();
-
- protected abstract String getServiceRepo();
-
- protected abstract boolean isUseSOAP12InStaticConfigTest();
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/MTOMOptimizedSecurityTest.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/MTOMOptimizedSecurityTest.java
deleted file mode 100644
index e96599e..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/MTOMOptimizedSecurityTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-
-/**
- * Testing optimizing the base 64 elements with
- * <code><parameter name="optimizeParts" locked="false">//xenc:Encrypted
- * Data/xenc:CipherData/xenc:CipherValue</parameter></code>
- */
-public class MTOMOptimizedSecurityTest extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setOptimizeParts("//xenc:EncryptedData/xenc:CipherData/" +
- "xenc:CipherValue");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
-
- return ifc;
- }
-
- protected String getClientRepo() {
- return MTOM_SEC_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return MTOM_SEC_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropRefId("key1");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setOptimizeParts("//xenc:EncryptedData/xenc:CipherData/" +
- "xenc:CipherValue");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropRefId("key2");
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
-
- return table;
- }
-
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario1Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario1Test.java
deleted file mode 100644
index 505b507..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario1Test.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-
-import java.util.Hashtable;
-
-
-/**
- * WS-Security interop scenario 1
- */
-public class Scenario1Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
- ofc.setActionItems("UsernameToken");
- ofc.setUser("Chris");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setPasswordType("PasswordText");
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- return null;
- }
-
- protected String getClientRepo() {
- return SCENARIO1_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO1_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- return null;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- return null;
- }
-
- protected Hashtable getPropertyRefs() {
- return null;
- }
-
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2Test.java
deleted file mode 100644
index 2e626b7..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2Test.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security inteorp scenario 2
- */
-public class Scenario2Test extends InteropTestBase {
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Encrypt");
- ofc.setUser("Chris");
- ofc.setAddUTElements("Nonce Created");
- ofc.setEncryptionParts("{Element}{" + WSSE_NS + "}UsernameToken");
- ofc.setEncryptionUser("bob");
- ofc.setEncryptionPropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setPasswordType(WSConstants.PW_TEXT);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- return null;
- }
-
- protected String getClientRepo() {
- return SCENARIO2_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO2_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- /* (non-Javadoc)
- * @see org.apache.axis2.security.InteropTestBase#getOutflowConfigurationWithRefs()
- */
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Encrypt");
- ofc.setUser("Chris");
- ofc.setAddUTElements("Nonce Created");
- ofc.setEncryptionParts("{Element}{" + WSSE_NS + "}UsernameToken");
- ofc.setEncryptionUser("bob");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setPasswordType(WSConstants.PW_TEXT);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
-
- ofc.setEncryptionPropRefId("key1");
-
- return ofc;
- }
-
- /* (non-Javadoc)
- * @see org.apache.axis2.security.InteropTestBase#getInflowConfigurationWithRefs()
- */
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- return null;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
-
- return table;
- }
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2aTest.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2aTest.java
deleted file mode 100644
index 2cbf860..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario2aTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-
-/**
- * WS-Security interop scenario 2a
- */
-public class Scenario2aTest extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameTokenSignature Encrypt Timestamp");
- ofc.setUser("Chris");
- ofc.setEncryptionParts("{Element}{" + WSSE_NS + "}UsernameToken");
- ofc.setEncryptionUser("bob");
- ofc.setEncryptionPropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- return null;
- }
-
- protected String getClientRepo() {
- return SCENARIO2a_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO2a_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameTokenSignature Encrypt Timestamp");
- ofc.setUser("Chris");
- ofc.setEncryptionParts("{Element}{" + WSSE_NS + "}UsernameToken");
- ofc.setEncryptionUser("bob");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
-
- ofc.setEncryptionPropRefId("key1");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- return null;
- }
-
- protected Hashtable getPropertyRefs() {
-
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
-
- return table;
-
- }
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario3Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario3Test.java
deleted file mode 100644
index 679cdce..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario3Test.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security interop scenario 3
- */
-public class Scenario3Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEnableSignatureConfirmation(false);
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
- ifc.setEnableSignatureConfirmation(false);
- return ifc;
- }
-
- protected String getClientRepo() {
- return SCENARIO3_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO3_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEnableSignatureConfirmation(false);
-
- ofc.setSignaturePropRefId("key1");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setEnableSignatureConfirmation(false);
-
- ifc.setSignaturePropRefId("key2");
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
-
- return table;
- }
-
-
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario4Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario4Test.java
deleted file mode 100644
index fb6565f..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario4Test.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security interop scenario 4
- */
-public class Scenario4Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.EMBEDDED_KEYNAME);
- ofc.setEmbeddedKeyName("SessionKey");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEmbeddedKeyCallbackClass("org.apache.axis2.security.PWCallback");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
-
- /**
- * This test is not "Basic Security Profile(BSP)" compatible. Cos we use
- * KeyInfo/KeyName. Therefore setting this test as not BSP compatible.
- */
- ifc.setBSPCompliant(false);
-
- return ifc;
- }
-
- protected String getClientRepo() {
- return SCENARIO4_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO4_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.EMBEDDED_KEYNAME);
- ofc.setEmbeddedKeyName("SessionKey");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEmbeddedKeyCallbackClass("org.apache.axis2.security.PWCallback");
-
- ofc.setSignaturePropRefId("key1");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
-
- ifc.setSignaturePropRefId("key2");
- ifc.setBSPCompliant(false);
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
-
- return table;
- }
-
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario5Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario5Test.java
deleted file mode 100644
index ef15ff4..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario5Test.java
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security interop scenario 5
- */
-public class Scenario5Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration(2);
-
- ofc.setActionItems("Signature");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setSignatureParts("{}{http://xmlsoap.org/Ping}ticket");
-
- ofc.nextAction();
-
- ofc.setActionItems("Signature Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- return null;
- }
-
- protected String getClientRepo() {
- return SCENARIO5_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO5_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration(2);
-
- ofc.setActionItems("Signature");
- ofc.setUser("alice");
- ofc.setSignaturePropRefId("key1");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setSignatureParts("{}{http://xmlsoap.org/Ping}ticket");
-
- ofc.nextAction();
-
- ofc.setActionItems("Signature Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropRefId("key2");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- return null;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
-
- //IMPORTANT: Note that the key of the first repetition has "1" appended to it
- table.put("key21", prop2);
-
- return table;
- }
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario6Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario6Test.java
deleted file mode 100644
index 3a5033d..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario6Test.java
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security interop scenario 6
- */
-public class Scenario6Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Encrypt Signature Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEmbeddedKeyCallbackClass("rg.apache.axis2.security.PWCallback");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Encrypt Signature Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
-
- return ifc;
- }
-
- protected String getClientRepo() {
- return SCENARIO6_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO6_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return true;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Encrypt Signature Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropRefId("key1");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEmbeddedKeyCallbackClass("rg.apache.axis2.security.PWCallback");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Encrypt Signature Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropRefId("key2");
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
-
- return table;
- }
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario7Test.java b/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario7Test.java
deleted file mode 100644
index af3e63f..0000000
--- a/modules/rampart-integration/src/test/java/org/apache/axis2/security/Scenario7Test.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.axis2.security;
-
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.ws.security.WSConstants;
-
-import java.util.Hashtable;
-import java.util.Properties;
-
-/**
- * WS-Security interop scenario 7
- */
-public class Scenario7Test extends InteropTestBase {
-
-
- protected OutflowConfiguration getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropFile("interop.properties");
- ofc.setEncryptionPropFile("interop.properties");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEmbeddedKeyCallbackClass("rg.apache.axis2.security.PWCallback");
- ofc.setSignatureParts("{}{" +
- SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI +
- "}Body;STRTransform");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropFile("interop.properties");
- ifc.setDecryptionPropFile("interop.properties");
-
- return ifc;
- }
-
- protected String getClientRepo() {
- return SCENARIO7_CLIENT_REPOSITORY;
- }
-
- protected String getServiceRepo() {
- return SCENARIO7_SERVICE_REPOSITORY;
- }
-
- protected boolean isUseSOAP12InStaticConfigTest() {
- return false;
- }
-
- protected OutflowConfiguration getOutflowConfigurationWithRefs() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("bob");
- ofc.setSignaturePropRefId("key1");
- ofc.setEncryptionPropRefId("key2");
- ofc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ofc.setEncryptionSymAlgorithm(WSConstants.TRIPLE_DES);
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEmbeddedKeyCallbackClass("rg.apache.axis2.security.PWCallback");
- ofc.setSignatureParts("{}{" +
- SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI +
- "}Body;STRTransform");
-
- return ofc;
- }
-
- protected InflowConfiguration getInflowConfigurationWithRefs() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass("org.apache.axis2.security.PWCallback");
- ifc.setSignaturePropRefId("key3");
- ifc.setDecryptionPropRefKey("key4");
-
- return ifc;
- }
-
- protected Hashtable getPropertyRefs() {
- Properties prop1 = new Properties();
- prop1.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop1.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop2 = new Properties();
- prop2.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop2.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop3 = new Properties();
- prop3.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop3.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop3.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop3.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Properties prop4 = new Properties();
- prop4.setProperty("org.apache.ws.security.crypto.provider", "org.apache.ws.security.components.crypto.Merlin");
- prop4.setProperty("org.apache.ws.security.crypto.merlin.keystore.type", "jks");
- prop4.setProperty("org.apache.ws.security.crypto.merlin.keystore.password", "password");
- prop4.setProperty("org.apache.ws.security.crypto.merlin.file", "interop2.jks");
-
- Hashtable table = new Hashtable();
- table.put("key1", prop1);
- table.put("key2", prop2);
- table.put("key3", prop3);
- table.put("key4", prop4);
-
- return table;
- }
-}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenCertForHoKTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenCertForHoKTest.java
index 1adfb5c..546bac4 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenCertForHoKTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenCertForHoKTest.java
@@ -1,14 +1,4 @@
-package org.apache.rahas;
-
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.neethi.Policy;
-import org.apache.ws.secpolicy.SP11Constants;
-
-import javax.xml.namespace.QName;/*
+/*
* Copyright 2004,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
@@ -24,32 +14,19 @@
* limitations under the License.
*/
+package org.apache.rahas;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.neethi.Policy;
+import org.apache.ws.secpolicy.SP11Constants;
+
+import static org.junit.Assert.assertNotNull;
+
+import javax.xml.namespace.QName;
+
public class RahasSAML2TokenCertForHoKTest extends TestClient{
- public RahasSAML2TokenCertForHoKTest(String name) {
- super(name);
- }
-
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("ip");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_1";
}
@@ -127,4 +104,9 @@
return RahasConstants.VERSION_05_02;
}
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
+
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenTest.java
index cdf406d..9e35c98 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenTest.java
@@ -19,41 +19,14 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-import org.apache.rampart.handler.config.InflowConfiguration;
import org.apache.neethi.Policy;
import org.apache.ws.secpolicy.SP11Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
+
public class RahasSAML2TokenTest extends TestClient{
- /**
- * @param name
- */
- public RahasSAML2TokenTest(String name) {
- super(name);
- }
-
-
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_1";
}
@@ -125,4 +98,10 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_02;
}
+
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenUTForBearerTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenUTForBearerTest.java
index 80a2989..76967c5 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenUTForBearerTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAML2TokenUTForBearerTest.java
@@ -20,8 +20,6 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
import org.opensaml.Configuration;
import org.opensaml.saml2.core.Assertion;
@@ -35,6 +33,10 @@
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.io.ByteArrayInputStream;
import java.util.List;
@@ -43,11 +45,6 @@
* @author Ruchith Fernando (ruchith.fernando@gmail.com)
*/
public class RahasSAML2TokenUTForBearerTest extends TestClient {
-
- public RahasSAML2TokenUTForBearerTest(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_02);
@@ -67,23 +64,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_3";
}
@@ -171,4 +151,9 @@
}
return assertion;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
index 7579887..8acb16e 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
@@ -1,21 +1,16 @@
package org.apache.rahas;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
public class RahasSAMLTokenAttributeTest extends TestClient{
-
- public RahasSAMLTokenAttributeTest(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_02);
@@ -35,23 +30,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_5";
}
@@ -99,4 +77,9 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_02;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKTest.java
index 45946e5..9bdcd87 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKTest.java
@@ -20,40 +20,13 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
-
public class RahasSAMLTokenCertForHoKTest extends TestClient {
-
- public RahasSAMLTokenCertForHoKTest(String name) {
- super(name);
- }
-
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("ip");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_1";
}
@@ -132,4 +105,9 @@
return RahasConstants.VERSION_05_02;
}
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
+
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKV1205Test.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKV1205Test.java
index f01ffc4..006b9a0 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKV1205Test.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenCertForHoKV1205Test.java
@@ -20,21 +20,13 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP12Constants;
-import org.apache.xml.security.encryption.XMLCipher;
+
+import static org.junit.Assert.assertNotNull;
import javax.xml.namespace.QName;
public class RahasSAMLTokenCertForHoKV1205Test extends TestClient {
-
-
- public RahasSAMLTokenCertForHoKV1205Test(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem =
@@ -62,41 +54,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
-// ofc.setActionItems("Timestamp Signature Encrypt");
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setEncryptionUser("ip");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setEncryptionKeyTransportAlgorithm(XMLCipher.RSA_OAEP);
-// ofc.setEncryptionSymAlgorithm(EncryptionConstants.ALGO_ID_BLOCKCIPHER_AES256);
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- ofc.setEnableSignatureConfirmation(false);
-// ofc.setSignatureParts("{Element}{http://schemas.xmlsoap.org/soap/envelope/}Body;" +
-// "{Element}{" + RahasConstants.WSA_NS + "}To;" +
-// "{Element}{" + RahasConstants.WSA_NS + "}ReplyTo;" +
-// "{Element}{" + RahasConstants.WSA_NS + "}MessageID;" +
-// "{Element}{" + RahasConstants.WSA_NS + "}Action;" +
-// "{Element}{" + WSConstants.WSU_NS + "}Timestamp");
-
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
- ifc.setEnableSignatureConfirmation(false);
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_1";
}
@@ -148,4 +105,9 @@
return RahasConstants.VERSION_05_12;
}
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
+
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenTest.java
index efd1f83..61ed5d2 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenTest.java
@@ -20,43 +20,13 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
public class RahasSAMLTokenTest extends TestClient {
-
-
- /**
- * @param name
- */
- public RahasSAMLTokenTest(String name) {
- super(name);
- }
-
-
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_1";
}
@@ -127,4 +97,10 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_02;
}
+
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerTest.java
index df2433c..93ed846 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerTest.java
@@ -20,8 +20,6 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
import org.opensaml.Configuration;
import org.opensaml.saml1.core.Assertion;
@@ -36,6 +34,10 @@
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+
import java.io.ByteArrayInputStream;
import java.util.List;
@@ -44,11 +46,6 @@
* @author Ruchith Fernando (ruchith.fernando@gmail.com)
*/
public class RahasSAMLTokenUTForBearerTest extends TestClient {
-
- public RahasSAMLTokenUTForBearerTest(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_02);
@@ -68,23 +65,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_3";
}
@@ -172,4 +152,9 @@
}
return assertion;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerV1205Test.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerV1205Test.java
index 9a93afc..bfd771f 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerV1205Test.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForBearerV1205Test.java
@@ -20,21 +20,13 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP12Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
public class RahasSAMLTokenUTForBearerV1205Test extends TestClient {
-
- /**
- * @param name
- */
- public RahasSAMLTokenUTForBearerV1205Test(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_12);
@@ -54,23 +46,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_3";
}
@@ -122,4 +97,9 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_12;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKTest.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKTest.java
index 677c10e..9e21c61 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKTest.java
@@ -20,18 +20,13 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP11Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
public class RahasSAMLTokenUTForHoKTest extends TestClient {
-
- public RahasSAMLTokenUTForHoKTest(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_02);
@@ -51,23 +46,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_3";
}
@@ -116,4 +94,9 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_02;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKV1205Test.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKV1205Test.java
index 9af8b92..d15ba09 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKV1205Test.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenUTForHoKV1205Test.java
@@ -16,30 +16,22 @@
package org.apache.rahas;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.util.Base64;
+import org.apache.axiom.util.base64.Base64Utils;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP12Constants;
-import org.apache.ws.security.WSConstants;
import org.apache.ws.security.util.WSSecurityUtil;
public class RahasSAMLTokenUTForHoKV1205Test extends TestClient {
byte[] clientEntr;
- /**
- * @param name
- */
- public RahasSAMLTokenUTForHoKV1205Test(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_12);
@@ -57,7 +49,7 @@
byte[] nonce = WSSecurityUtil.generateNonce(16);
clientEntr = nonce;
OMElement entrElem = TrustUtil.createEntropyElement(RahasConstants.VERSION_05_12, rstElem);
- TrustUtil.createBinarySecretElement(RahasConstants.VERSION_05_12, entrElem, RahasConstants.BIN_SEC_TYPE_NONCE).setText(Base64.encode(nonce));
+ TrustUtil.createBinarySecretElement(RahasConstants.VERSION_05_12, entrElem, RahasConstants.BIN_SEC_TYPE_NONCE).setText(Base64Utils.encode(nonce));
TrustUtil.createComputedKeyAlgorithm(RahasConstants.VERSION_05_12,rstElem, RahasConstants.COMPUTED_KEY_PSHA1);
return rstElem;
@@ -67,24 +59,6 @@
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("UsernameToken Timestamp");
- ofc.setUser("joe");
- ofc.setPasswordType(WSConstants.PW_TEXT);
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Timestamp");
-
- return ifc;
- }
-
public String getServiceRepo() {
return "rahas_service_repo_3";
}
@@ -158,6 +132,11 @@
public int getTrstVersion() {
return RahasConstants.VERSION_05_12;
}
+
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/3.xml";
+ }
// private void requestService(OMElement assertion, byte[] reqEnt, byte[] respEnt) throws Exception {
//
diff --git a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenV1205Test.java b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenV1205Test.java
index 9a3a9a7..3fddd7f 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenV1205Test.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenV1205Test.java
@@ -20,24 +20,16 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.neethi.Policy;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
import org.apache.ws.secpolicy.SP12Constants;
+import static org.junit.Assert.assertNotNull;
+
import javax.xml.namespace.QName;
/**
* RahasSAMLTokenTest with the WS-SX namespaces
*/
public class RahasSAMLTokenV1205Test extends TestClient {
-
- /**
- * @param name
- */
- public RahasSAMLTokenV1205Test(String name) {
- super(name);
- }
-
public OMElement getRequest() {
try {
OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_12);
@@ -56,25 +48,6 @@
throw new RuntimeException(e);
}
}
- public OutflowConfiguration getClientOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- ofc.setActionItems("Signature Encrypt Timestamp");
- ofc.setUser("alice");
- ofc.setSignaturePropFile("rahas/rahas-sec.properties");
- ofc.setPasswordCallbackClass(PWCallback.class.getName());
- return ofc;
- }
-
- public InflowConfiguration getClientInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems("Signature Encrypt Timestamp");
- ifc.setPasswordCallbackClass(PWCallback.class.getName());
- ifc.setSignaturePropFile("rahas/rahas-sec.properties");
-
- return ifc;
- }
public String getServiceRepo() {
return "rahas_service_repo_1";
@@ -129,4 +102,9 @@
return RahasConstants.VERSION_05_12;
}
+ @Override
+ public String getClientPolicyPath() {
+ return "/rahas/1.xml";
+ }
+
}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationService.java b/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationService.java
new file mode 100644
index 0000000..c007569
--- /dev/null
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationService.java
@@ -0,0 +1,78 @@
+/*
+ * 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.rampart;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.neethi.Policy;
+import org.apache.rampart.policy.model.KerberosConfig;
+import org.apache.rampart.policy.model.RampartConfig;
+
+public class KerberosDelegationService extends PolicyBasedResultsValidator{
+ public OMElement echo(OMElement elem) throws Exception {
+ final String serviceName = "KerberosOverTransportKeytab";
+
+ ServiceClient serviceClient = RampartKerberosTest.clientHelper.createServiceClient(serviceName, null, null);
+
+ RampartConfig rampartConfig = new RampartConfig();
+
+ KerberosConfig kerberosConfig = new KerberosConfig();
+ rampartConfig.setKerberosConfig(kerberosConfig);
+ kerberosConfig.setJaasContext("KerberosDelegation");
+ kerberosConfig.setDelegationCredential(KerberosDelegationServiceValidator.getDelegationCredential());
+
+ Policy policy = new Policy();
+ policy.addAssertion(rampartConfig);
+
+ serviceClient.getAxisService().getPolicySubject().attachPolicyComponent(policy);
+
+ //Blocking invocation
+ QName operation = new QName("http://rampart.apache.org", "echo");
+ OMElement echoElement = getEchoElement();
+ OMElement result = serviceClient.sendReceive(operation, echoElement);
+ return result;
+ }
+
+ protected OMElement getEchoElement() {
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace(
+ "http://example1.org/example1", "example1");
+ OMElement method = fac.createOMElement("echo", omNs);
+ OMElement value = fac.createOMElement("Text", omNs);
+ value.addChild(fac.createOMText(value, "Testing Rampart with WS-SecPolicy"));
+ method.addChild(value);
+
+ return method;
+ }
+
+ /**
+ * New service method for testing negative scenario where service throws an exception
+ * @param element
+ * @return
+ * @throws Exception
+ */
+ public OMElement returnError(OMElement element) throws Exception {
+ throw new Exception("Testing negative scenarios with Apache Rampart. Intentional Exception");
+ }
+}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationServiceValidator.java b/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationServiceValidator.java
new file mode 100644
index 0000000..32fc013
--- /dev/null
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/KerberosDelegationServiceValidator.java
@@ -0,0 +1,46 @@
+/*
+ * 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.rampart;
+
+import java.util.List;
+
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSecurityEngineResult;
+import org.ietf.jgss.GSSCredential;
+
+public class KerberosDelegationServiceValidator extends PolicyBasedResultsValidator {
+ private static GSSCredential delegationCredential;
+
+ @Override
+ public void validate(ValidatorData data, List<WSSecurityEngineResult> results) throws RampartException {
+ super.validate(data, results);
+ for (WSSecurityEngineResult wsSecEngineResult : results) {
+ Integer actInt = (Integer) wsSecEngineResult.get(WSSecurityEngineResult.TAG_ACTION);
+ if (actInt == WSConstants.BST) {
+ delegationCredential = (GSSCredential) wsSecEngineResult.
+ get(WSSecurityEngineResult.TAG_DELEGATION_CREDENTIAL);
+ break;
+ }
+ }
+ }
+
+ static GSSCredential getDelegationCredential(){
+ return delegationCredential;
+ }
+}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/RampartKerberosTest.java b/modules/rampart-integration/src/test/java/org/apache/rampart/RampartKerberosTest.java
new file mode 100644
index 0000000..c9b27de
--- /dev/null
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/RampartKerberosTest.java
@@ -0,0 +1,296 @@
+/*
+ * 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.rampart;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.testutils.ClientHelper;
+import org.apache.axis2.testutils.JettyServer;
+import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.commons.io.IOUtils;
+import org.apache.neethi.Policy;
+import org.apache.rampart.policy.model.KerberosConfig;
+import org.apache.rampart.policy.model.RampartConfig;
+import org.apache.rampart.util.KerberosServer;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.ClassRule;
+import org.junit.Test;
+
+/**
+ * Tests Kerberos authentication over transport binding using a Kerberos token as supporting endorsing token.
+ * The test will use Apache DS Kerberos server, see {@link KerberosServer}.
+ *
+ * The test is tailored for Oracle Java execution since it uses <code>com.sun.security.auth.module.Krb5LoginModule</code> JAAS login module for Kerberos authentication.
+ */
+public class RampartKerberosTest {
+
+ /**
+ * Java system property for setting JAAS configuration file: {@value}
+ */
+ public static final String JAAS_CONF_SYS_PROP = "java.security.auth.login.config";
+
+ /**
+ * Java system property for setting Kerberos 5 configuration file: {@value}
+ */
+ public static final String KRB5_CONF_SYS_PROP = "java.security.krb5.conf";
+
+ /**
+ * JAAS configuration file to use: {@value}
+ * <p>
+ * Contains Kerberos login module entries for authenticating client and server principals:
+ * </p>
+ */
+ public static final String KERBEROS_JAAS_CONF = "src/test/resources/kerberos/jaas.conf";
+
+ /**
+ * Kerberos configuration file <b>template</b> to use: {@value}
+ * <p>
+ * Specifies the Kerberos realm and KDC server to use, the configuration must contain a <code>KDC_PORT</code> literal
+ * which will be replaced with actual KDC server port.
+ * </p>
+ */
+ public static final String KERBEROS_CONF_TEMPLATE = "src/test/resources/kerberos/krb5.conf.template";
+
+ /**
+ * A token literal in kerberos5 configuration file template that must be replaced with actual KDC port value: {@value}
+ */
+ public static final String KERBEROS_CONF_KDC_PORT_TOKEN = "KDC_PORT";
+
+ @ClassRule
+ public static final JettyServer server = new JettyServer("target/test-resources/rampart_service_repo", true);
+
+ @ClassRule
+ public static final ClientHelper clientHelper = new ClientHelper(server, "target/test-resources/rampart_client_repo") {
+ @Override
+ protected void configureServiceClient(ServiceClient serviceClient) throws Exception {
+ int timeout = 200000;
+ serviceClient.getOptions().setTimeOutInMilliSeconds(timeout);
+ serviceClient.getOptions().setProperty(HTTPConstants.SO_TIMEOUT, timeout);
+ serviceClient.getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, timeout);
+
+ serviceClient.engageModule("addressing");
+ serviceClient.engageModule("rampart");
+ }
+ };
+
+ @ClassRule
+ public static final KerberosServer kerberosServer = new KerberosServer();
+
+ /**
+ * Stores any original JAAS configuration set via {@link #JAAS_CONF_SYS_PROP} property to restore it after test execution.
+ */
+ protected String jaasConf;
+
+ /**
+ * Stores any original Kerberos 5 configuration set via {@link #KRB5_CONF_SYS_PROP} property to restore it after test execution.
+ */
+ protected String krb5Conf;
+
+ private static OMElement getEchoElement() {
+ OMFactory fac = OMAbstractFactory.getOMFactory();
+ OMNamespace omNs = fac.createOMNamespace(
+ "http://example1.org/example1", "example1");
+ OMElement method = fac.createOMElement("echo", omNs);
+ OMElement value = fac.createOMElement("Text", omNs);
+ value.addChild(fac.createOMText(value, "Testing Rampart with WS-SecPolicy"));
+ method.addChild(value);
+
+ return method;
+ }
+
+ @Test
+ public void testKerberosOverTransportKeytab() throws Exception {
+ final String serviceName = "KerberosOverTransportKeytab";
+
+ ServiceClient serviceClient = clientHelper.createServiceClient(serviceName, null, null);
+
+ System.out.println("Testing WS-Sec: Kerberos scenario: " + serviceName);
+
+
+ RampartConfig rampartConfig = new RampartConfig();
+ KerberosConfig kerberosConfig = new KerberosConfig();
+ rampartConfig.setKerberosConfig(kerberosConfig);
+
+ kerberosConfig.setJaasContext(serviceName + "Client");
+
+ Policy policy = new Policy();
+ policy.addAssertion(rampartConfig);
+ serviceClient.getAxisService().getPolicySubject().attachPolicyComponent(policy);
+
+ //Blocking invocation
+ QName operation = new QName("http://rampart.apache.org", "echo");
+ OMElement echoElement = getEchoElement();
+ OMElement result = serviceClient.sendReceive(operation, echoElement);
+ assertAbout(xml()).that(result).ignoringNamespaceDeclarations().hasSameContentAs(echoElement);
+ }
+
+ @Test
+ public void testKerberosOverTransportPWCB() throws Exception {
+ final String serviceName = "KerberosOverTransportPWCB";
+
+ ServiceClient serviceClient = clientHelper.createServiceClient(serviceName, null, null);
+
+ System.out.println("Testing WS-Sec: Kerberos scenario: " + serviceName);
+
+ RampartConfig rampartConfig = new RampartConfig();
+ rampartConfig.setUser("alice");
+ rampartConfig.setPwCbClass(org.apache.rahas.PWCallback.class.getName());
+
+ KerberosConfig kerberosConfig = new KerberosConfig();
+ rampartConfig.setKerberosConfig(kerberosConfig);
+
+ kerberosConfig.setJaasContext(serviceName + "Client");
+
+ Policy policy = new Policy();
+ policy.addAssertion(rampartConfig);
+ serviceClient.getAxisService().getPolicySubject().attachPolicyComponent(policy);
+
+ //Blocking invocation
+ QName operation = new QName("http://rampart.apache.org", "echo");
+ OMElement echoElement = getEchoElement();
+ OMElement result = serviceClient.sendReceive(operation, echoElement);
+ assertAbout(xml()).that(result).ignoringNamespaceDeclarations().hasSameContentAs(echoElement);
+ }
+
+ @Test
+ public void testKerberosDelegation() throws Exception {
+ final String serviceName = "KerberosDelegation";
+
+ ServiceClient serviceClient = clientHelper.createServiceClient(serviceName, null, null);
+
+ System.out.println("Testing WS-Sec: Kerberos scenario: " + serviceName);
+
+
+ RampartConfig rampartConfig = new RampartConfig();
+ KerberosConfig kerberosConfig = new KerberosConfig();
+ rampartConfig.setKerberosConfig(kerberosConfig);
+
+ kerberosConfig.setJaasContext(serviceName + "Client");
+ kerberosConfig.setRequstCredentialDelegation(true);
+
+ Policy policy = new Policy();
+ policy.addAssertion(rampartConfig);
+ serviceClient.getAxisService().getPolicySubject().attachPolicyComponent(policy);
+
+ //Blocking invocation
+ QName operation = new QName("http://rampart.apache.org", "echo");
+ OMElement echoElement = getEchoElement();
+ OMElement result = serviceClient.sendReceive(operation, echoElement);
+ assertAbout(xml()).that(result).ignoringNamespaceDeclarations().hasSameContentAs(echoElement);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ System.setProperty("sun.security.krb5.debug", "true");
+ System.setProperty("sun.security.jgss.debug", "true");
+
+ //configure JGSS
+ krb5Conf = System.getProperty(KRB5_CONF_SYS_PROP);
+
+ File krb5ConfFile = generateKerberosConf();
+ System.out.println("Using Kerberos configuration file: " + krb5ConfFile.getAbsolutePath());
+ System.setProperty(KRB5_CONF_SYS_PROP, krb5ConfFile.getAbsolutePath());
+
+ //configure JAAS
+ jaasConf = System.getProperty(JAAS_CONF_SYS_PROP);
+ System.out.println("Using Kerberos JAAS configuration file: " + new File(KERBEROS_JAAS_CONF).getAbsolutePath());
+ System.setProperty(JAAS_CONF_SYS_PROP, KERBEROS_JAAS_CONF);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ if (jaasConf != null) {
+ System.setProperty(JAAS_CONF_SYS_PROP, jaasConf);
+ }
+ else {
+ System.clearProperty(JAAS_CONF_SYS_PROP);
+ }
+
+ if (krb5Conf != null) {
+ System.setProperty(KRB5_CONF_SYS_PROP, krb5Conf);
+ }
+ else {
+ System.clearProperty(KRB5_CONF_SYS_PROP);
+ }
+ }
+
+ /**
+ * Generates a Kerberos configuration file (krb5.conf) out of the {@link #KERBEROS_CONF_TEMPLATE} file,
+ * replacing the {@link #KERBEROS_CONF_KDC_PORT_TOKEN} with actual KDC port.
+ *
+ * @return The generated Kerberos configuration file. It will be generated under the following path:
+ * <code>target/tmp/{thisClassSimpleName}_krb5.conf</code>
+ *
+ * @throws IOException
+ */
+ protected File generateKerberosConf() throws IOException {
+ File tmpDir = new File("target" + File.separator + "tmp");
+ if (!tmpDir.exists() && !tmpDir.mkdirs()) {
+ throw new RuntimeException("Failed to create temp directory: " + tmpDir.getAbsolutePath());
+ }
+
+ File krb5ConfTemplate = new File(KERBEROS_CONF_TEMPLATE);
+ if (!krb5ConfTemplate.exists()) {
+ throw new IllegalArgumentException("Cannot find kerberos configuration file template: " + krb5ConfTemplate.getAbsolutePath());
+ }
+
+ FileInputStream krb5ConfTemplateIn = null;
+ String krb5ConfContent;
+ try {
+ krb5ConfTemplateIn = new FileInputStream(krb5ConfTemplate);
+ krb5ConfContent = IOUtils.toString(krb5ConfTemplateIn);
+ }
+ finally {
+ IOUtils.closeQuietly(krb5ConfTemplateIn);
+ }
+
+ if (krb5ConfContent.indexOf(KERBEROS_CONF_KDC_PORT_TOKEN) == -1) {
+ throw new IllegalArgumentException(String.format("Cannot find any %s token in kerberos configuration file template: %s",
+ KERBEROS_CONF_KDC_PORT_TOKEN, krb5ConfTemplate.getAbsolutePath()));
+ }
+
+ krb5ConfContent = krb5ConfContent.replace(KERBEROS_CONF_KDC_PORT_TOKEN, String.valueOf(kerberosServer.getPort()));
+
+ File krb5Conf = new File(tmpDir, this.getClass().getSimpleName() + "_krb5.conf");
+ FileOutputStream krb5ConfOut = null;
+ try {
+ krb5ConfOut = new FileOutputStream(krb5Conf);
+ IOUtils.write(krb5ConfContent, krb5ConfOut);
+ }
+ finally {
+ IOUtils.closeQuietly(krb5ConfOut);
+ }
+
+ return krb5Conf;
+ }
+}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java b/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
index 7451dd4..1791434 100644
--- a/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
@@ -16,7 +16,10 @@
package org.apache.rampart;
-import junit.framework.TestCase;
+import static org.apache.axis2.integration.TestConstants.TESTING_PATH;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
@@ -25,26 +28,47 @@
import org.apache.axiom.soap.SOAPHeaderBlock;
import org.apache.axis2.AxisFault;
import org.apache.axis2.Constants;
-import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.axis2.context.ServiceContext;
-import org.apache.axis2.integration.UtilServer;
+import org.apache.axis2.testutils.ClientHelper;
+import org.apache.axis2.testutils.JettyServer;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyEngine;
+import org.junit.Rule;
+import org.junit.Test;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
-
-public class RampartTest extends TestCase {
-
- public final static int PORT = UtilServer.TESTING_PORT;
+public class RampartTest {
private static ResourceBundle resources;
-
+
+ @Rule
+ public final JettyServer server = new JettyServer(TESTING_PATH + "rampart_service_repo", false);
+
+ @Rule
+ public final ClientHelper clientHelper = new ClientHelper(server, TESTING_PATH + "rampart_client_repo") {
+ @Override
+ protected void configureServiceClient(ServiceClient serviceClient) throws Exception {
+ serviceClient.engageModule("addressing");
+ serviceClient.engageModule("rampart");
+ }
+ };
+
+ @Rule
+ public final JettyServer secureServer = new JettyServer(TESTING_PATH + "rampart_service_repo", true);
+
+ @Rule
+ public final ClientHelper secureClientHelper = new ClientHelper(secureServer, TESTING_PATH + "rampart_client_repo") {
+ @Override
+ protected void configureServiceClient(ServiceClient serviceClient) throws Exception {
+ serviceClient.engageModule("addressing");
+ serviceClient.engageModule("rampart");
+ }
+ };
+
static {
try {
resources = ResourceBundle.getBundle("org.apache.rampart.errors");
@@ -53,40 +77,9 @@
}
}
- public RampartTest(String name) {
- super(name);
- }
-
- protected void setUp() throws Exception {
- UtilServer.start(Constants.TESTING_PATH + "rampart_service_repo" ,null);
- }
-
-
- protected void tearDown() throws Exception {
- UtilServer.stop();
- }
-
- private ServiceClient getServiceClientInstance() throws AxisFault {
-
- String repository = Constants.TESTING_PATH + "rampart_client_repo";
-
- ConfigurationContext configContext = ConfigurationContextFactory.
- createConfigurationContextFromFileSystem(repository, null);
- ServiceClient serviceClient = new ServiceClient(configContext, null);
-
-
- serviceClient.engageModule("addressing");
- serviceClient.engageModule("rampart");
-
- return serviceClient;
-
- }
-
+ @Test
public void testWithPolicy() {
try {
-
- ServiceClient serviceClient = getServiceClientInstance();
-
//TODO : figure this out !!
boolean basic256Supported = false;
@@ -96,7 +89,7 @@
}
//for (int i = 34; i <= 34; i++) { //<-The number of tests we have
- for (int i = 1; i <= 34; i++) { //<-The number of tests we have
+ for (int i = 1; i <= 35; i++) { //<-The number of tests we have
if(!basic256Supported && (i == 3 || i == 4 || i == 5)) {
//Skip the Basic256 tests
continue;
@@ -106,25 +99,22 @@
// Testcase - 25 is failing, for the moment skipping it.
continue;
}
- Options options = new Options();
+
+ ServiceClient serviceClient = (i == 13 ? secureClientHelper : clientHelper).createServiceClient("SecureService" + i);
+ Options options = serviceClient.getOptions();
if( i == 13 ) {
- continue; // Can't test Transport binding with Simple HTTP Server
//Username token created with user/pass from options
- //options.setUserName("alice");
- //options.setPassword("password");
+ options.setUserName("alice");
+ options.setPassword("password");
}
System.out.println("Testing WS-Sec: custom scenario " + i);
options.setAction("urn:echo");
- options.setTo(new EndpointReference("http://127.0.0.1:" +
- PORT +
- "/axis2/services/SecureService" + i));
-
+
ServiceContext context = serviceClient.getServiceContext();
context.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
loadPolicy("/rampart/policy/" + i + ".xml"));
- serviceClient.setOptions(options);
if (i == 31) {
OMNamespace omNamespace = OMAbstractFactory.getOMFactory().createOMNamespace(
@@ -178,22 +168,21 @@
//Skip the Basic256 tests
continue;
}
- Options options = new Options();
+
+ ServiceClient serviceClient = (i == 13 ? secureClientHelper : clientHelper).createServiceClient("SecureService" + i);
+ Options options = serviceClient.getOptions();
if (i == 13) {
- continue;
+ //Username token created with user/pass from options
+ options.setUserName("alice");
+ options.setPassword("password");
}
-
System.out.println("Testing WS-Sec: negative scenario " + i);
options.setAction("urn:returnError");
- options.setTo(new EndpointReference("http://127.0.0.1:" +
- PORT +
- "/axis2/services/SecureService" + i));
ServiceContext context = serviceClient.getServiceContext();
context.setProperty(RampartMessageData.KEY_RAMPART_POLICY,
loadPolicy("/rampart/policy/" + i + ".xml"));
- serviceClient.setOptions(options);
try {
//Blocking invocation
@@ -207,21 +196,19 @@
for (int i = 1; i <= 6; i++) { //<-The number of tests we have
-
+ ServiceClient serviceClient;
if (i == 3 || i == 6) {
- continue; // Can't test Transport binding scenarios with Simple HTTP Server
+ serviceClient = secureClientHelper.createServiceClient("SecureServiceSC" + i);
}
+ else {
+ serviceClient = clientHelper.createServiceClient("SecureServiceSC" + i);
+ }
+ Options options = serviceClient.getOptions();
- Options options = new Options();
System.out.println("Testing WS-SecConv: custom scenario " + i);
options.setAction("urn:echo");
- options.setTo(new EndpointReference("http://127.0.0.1:" + PORT + "/axis2/services/SecureServiceSC" + i));
-
- //Create a new service client instance for each secure conversation scenario
- serviceClient = getServiceClientInstance();
serviceClient.getServiceContext().setProperty(RampartMessageData.KEY_RAMPART_POLICY, loadPolicy("/rampart/policy/sc-" + i + ".xml"));
- serviceClient.setOptions(options);
//Blocking invocation
serviceClient.sendReceive(getEchoElement());
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosServer.java b/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosServer.java
new file mode 100644
index 0000000..e9533e3
--- /dev/null
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosServer.java
@@ -0,0 +1,207 @@
+/**
+ * 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.rampart.util;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.DatagramSocket;
+import java.nio.file.Files;
+import java.security.Provider;
+import java.security.Security;
+import java.util.List;
+
+import org.apache.axis2.testutils.PortAllocator;
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.directory.api.ldap.model.entry.DefaultEntry;
+import org.apache.directory.api.ldap.model.ldif.LdifEntry;
+import org.apache.directory.api.ldap.model.ldif.LdifReader;
+import org.apache.directory.server.core.api.DirectoryService;
+import org.apache.directory.server.core.api.interceptor.Interceptor;
+import org.apache.directory.server.core.api.partition.Partition;
+import org.apache.directory.server.core.factory.DefaultDirectoryServiceFactory;
+import org.apache.directory.server.core.factory.DirectoryServiceFactory;
+import org.apache.directory.server.core.factory.PartitionFactory;
+import org.apache.directory.server.core.kerberos.KeyDerivationInterceptor;
+import org.apache.directory.server.kerberos.KerberosConfig;
+import org.apache.directory.server.kerberos.kdc.KdcServer;
+import org.apache.directory.server.protocol.shared.transport.Transport;
+import org.apache.directory.server.protocol.shared.transport.UdpTransport;
+import org.apache.directory.shared.kerberos.codec.types.EncryptionType;
+import org.junit.rules.ExternalResource;
+
+/**
+ * Runs an Apache DS Kerberos server.
+ */
+public final class KerberosServer extends ExternalResource {
+
+ private static final Log log = LogFactory.getLog(KerberosServer.class);
+
+ /**
+ * The used DirectoryService instance
+ */
+ private DirectoryService directoryService;
+
+ /**
+ * The used KdcServer instance
+ */
+ private KdcServer kdcServer;
+
+ private Provider provider;
+ private int providerPos = 2;
+
+ private File workDir;
+
+ @Override
+ protected void before() throws Throwable {
+ int kdcPort = PortAllocator.allocatePort();
+
+ DatagramSocket datagramSocket = new DatagramSocket(kdcPort);
+ datagramSocket.setReuseAddress(true);
+ datagramSocket.close();
+
+ //Ok, apache ds doesn't like the bouncy castle provider at position 2
+ //Caused by: KrbException: Integrity check on decrypted field failed (31) - Integrity check on decrypted field failed
+ Provider[] installedProviders = Security.getProviders();
+ for (int i = 0; i < installedProviders.length; i++) {
+ Provider installedProvider = installedProviders[i];
+ if ("BC".equals(installedProvider.getName())) {
+ provider = installedProvider;
+ providerPos = i;
+ Security.removeProvider("BC");
+ break;
+ }
+ }
+ if (provider != null) {
+ Security.addProvider(provider);
+ }
+
+ workDir = Files.createTempDirectory("server-work").toFile();
+
+ DirectoryServiceFactory directoryServiceFactory = new DefaultDirectoryServiceFactory();
+ directoryService = directoryServiceFactory.getDirectoryService();
+ directoryService.setAccessControlEnabled(false);
+ directoryService.setAllowAnonymousAccess(false);
+ directoryService.getChangeLog().setEnabled(true);
+
+ List<Interceptor> interceptors = directoryService.getInterceptors();
+ interceptors.add(new KeyDerivationInterceptor());
+ directoryService.setInterceptors(interceptors);
+ directoryServiceFactory.init("defaultDS");
+
+ PartitionFactory partitionFactory = directoryServiceFactory.getPartitionFactory();
+ Partition partition = partitionFactory.createPartition(directoryService.getSchemaManager(),
+ directoryService.getDnFactory(), "example", "dc=example,dc=com", 1000, workDir);
+
+ partitionFactory.addIndex(partition, "objectClass", 1000);
+ partitionFactory.addIndex(partition, "dc", 1000);
+ partitionFactory.addIndex(partition, "ou", 1000);
+
+ partition.setSchemaManager(directoryService.getSchemaManager());
+ // Inject the partition into the DirectoryService
+ directoryService.addPartition(partition);
+
+ InputStream is = KerberosServer.class.getClassLoader().getResourceAsStream("kerberos/users.ldif");
+ LdifReader ldifReader = new LdifReader(is);
+ for (LdifEntry entry : ldifReader) {
+ directoryService.getAdminSession().add(new DefaultEntry(directoryService.getSchemaManager(), entry.getEntry()));
+ }
+ ldifReader.close();
+
+ KerberosConfig kerberosConfig = new KerberosConfig();
+ kerberosConfig.setServicePrincipal("krbtgt/EXAMPLE.COM@EXAMPLE.COM");
+ kerberosConfig.setPrimaryRealm("EXAMPLE.COM");
+ kerberosConfig.setSearchBaseDn("dc=example,dc=com");
+ kerberosConfig.setMaximumTicketLifetime(60000 * 1440);
+ kerberosConfig.setMaximumRenewableLifetime(60000 * 10080);
+ kerberosConfig.setEncryptionTypes(new EncryptionType[]{EncryptionType.AES128_CTS_HMAC_SHA1_96});
+
+ kdcServer = new KdcServer(kerberosConfig);
+ kdcServer.setServiceName("DefaultKrbServer");
+
+ final String kdcHostname = "localhost";
+ log.info(String.format("Starting service on %s:%s", kdcHostname, kdcPort));
+
+ UdpTransport udp = new UdpTransport(kdcHostname, kdcPort);
+ kdcServer.addTransports(udp);
+ kdcServer.setDirectoryService(directoryService);
+ kdcServer.start();
+ }
+
+ /**
+ * @return The Apache DS Kerberos server port.
+ * @throws IllegalArgumentException If server or respective transport are not initialized
+ */
+ public int getPort() throws IllegalArgumentException {
+ if (kdcServer == null) {
+ throw new IllegalStateException("Kerberos server is not initialized");
+ }
+
+ Transport[] transports = kdcServer.getTransports();
+ if (transports == null || transports.length == 0) {
+ throw new IllegalStateException("Kerberos server does not configure any transports");
+ }
+
+ for (Transport transport : transports) {
+ if (transport instanceof UdpTransport) {
+ return transport.getPort();
+ }
+ }
+
+ throw new IllegalStateException(
+ String.format("Cannot identify Kerberos server port. List of transports does not contain an %s instance",
+ UdpTransport.class.getName()));
+ }
+
+ @Override
+ protected void after() {
+ log.info("Stop called");
+ try {
+ if (directoryService != null) {
+ try {
+ directoryService.shutdown();
+ } catch (Exception ex) {
+ log.error("Failed to stop server", ex);
+ } finally {
+ try {
+ FileUtils.deleteDirectory(workDir);
+ }
+ catch (IOException e) {
+ log.error("Failed to delete Apache DS working directory: " + workDir.getAbsolutePath() , e);
+ }
+ }
+ directoryService = null;
+ }
+ }
+ finally {
+ if (kdcServer != null) {
+ kdcServer.stop();
+ kdcServer = null;
+ }
+
+ if (provider != null) {
+ //restore BC position
+ Security.removeProvider("BC");
+ Security.insertProviderAt(provider, providerPos);
+ }
+ }
+ }
+}
diff --git a/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosTokenDecoderImpl.java b/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosTokenDecoderImpl.java
new file mode 100644
index 0000000..8779ff1
--- /dev/null
+++ b/modules/rampart-integration/src/test/java/org/apache/rampart/util/KerberosTokenDecoderImpl.java
@@ -0,0 +1,156 @@
+/**
+ * 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.rampart.util;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.security.auth.Subject;
+
+import org.apache.directory.shared.kerberos.codec.KerberosDecoder;
+import org.apache.directory.shared.kerberos.components.EncTicketPart;
+import org.apache.ws.security.WSSecurityException;
+import org.apache.ws.security.validate.KerberosTokenDecoder;
+
+/**
+ * A copy of wss4j 2.0 Kerberos token decoder implementation.
+ *
+ * @see org.apache.wss4j.common.kerberos.KerberosTokenDecoderImpl
+ *
+ * TODO Once Rampart adopts wss4j 2.0, this class must be removed in favor of wss4j's
+ */
+public class KerberosTokenDecoderImpl implements KerberosTokenDecoder {
+
+ private static final String KERBEROS_OID = "1.2.840.113554.1.2.2";
+
+ private byte[] serviceTicket;
+ private Subject subject;
+
+ private boolean decoded = false;
+ private EncTicketPart encTicketPart;
+
+ /**
+ * Clear all internal information
+ */
+ public void clear() {
+ serviceTicket = null;
+ subject = null;
+ decoded = false;
+ encTicketPart = null;
+ }
+
+ /**
+ * Set the AP-REQ Kerberos Token
+ *
+ * @param token the AP-REQ Kerberos Token
+ */
+ public void setToken(byte[] token) {
+ serviceTicket = token;
+ }
+
+ /**
+ * Set the Subject
+ *
+ * @param subject the Subject
+ */
+ public void setSubject(Subject subject) {
+ this.subject = subject;
+ }
+
+ /**
+ * Get the session key from the token
+ *
+ * @return the session key from the token
+ */
+ public byte[] getSessionKey() {
+ if (!decoded) {
+ decodeServiceTicket();
+ }
+ if (encTicketPart != null && encTicketPart.getKey() != null) {
+ return encTicketPart.getKey().getKeyValue();
+ }
+ return null;
+ }
+
+ /**
+ * Get the client principal name from the decoded service ticket.
+ *
+ * @return the client principal name
+ */
+ public String getClientPrincipalName() {
+ if (!decoded) {
+ decodeServiceTicket();
+ }
+ return encTicketPart.getCName().toString();
+ }
+
+ // Decode the service ticket.
+ private synchronized void decodeServiceTicket() {
+ parseServiceTicket(serviceTicket);
+ decoded = true;
+ }
+
+ // Parses the service ticket (GSS AP-REQ token)
+ private void parseServiceTicket(byte[] ticket) {
+ try {
+ // I didn't find a better way how to parse this Kerberos Message...
+ org.bouncycastle.asn1.ASN1InputStream asn1InputStream =
+ new org.bouncycastle.asn1.ASN1InputStream(new ByteArrayInputStream(ticket));
+ org.bouncycastle.asn1.DERApplicationSpecific derToken =
+ (org.bouncycastle.asn1.DERApplicationSpecific) asn1InputStream.readObject();
+ if (derToken == null || !derToken.isConstructed()) {
+ asn1InputStream.close();
+ throw new WSSecurityException("invalid kerberos token");
+ }
+ asn1InputStream.close();
+
+ asn1InputStream = new org.bouncycastle.asn1.ASN1InputStream(new ByteArrayInputStream(derToken.getContents()));
+ org.bouncycastle.asn1.DERObjectIdentifier kerberosOid =
+ (org.bouncycastle.asn1.DERObjectIdentifier) asn1InputStream.readObject();
+ if (!kerberosOid.getId().equals(KERBEROS_OID)) {
+ asn1InputStream.close();
+ throw new WSSecurityException("invalid kerberos token");
+ }
+
+ int readLowByte = asn1InputStream.read() & 0xff;
+ int readHighByte = asn1InputStream.read() & 0xff;
+ int read = (readHighByte << 8) + readLowByte; //NOPMD
+ if (read != 0x01) {
+ throw new WSSecurityException("invalid kerberos token");
+ }
+
+ this.encTicketPart = KerberosDecoder.decodeEncTicketPart(toByteArray(asn1InputStream));
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ private static byte[] toByteArray(InputStream inputStream) throws IOException {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ int read;
+ byte[] buf = new byte[1024];
+ while ((read = inputStream.read(buf)) != -1) {
+ byteArrayOutputStream.write(buf, 0, read);
+ }
+ return byteArrayOutputStream.toByteArray();
+ }
+}
diff --git a/modules/rampart-integration/src/test/resources/conf/axis2.xml b/modules/rampart-integration/src/test/resources/conf/axis2.xml
index d4d8ec2..12059a9 100755
--- a/modules/rampart-integration/src/test/resources/conf/axis2.xml
+++ b/modules/rampart-integration/src/test/resources/conf/axis2.xml
@@ -91,32 +91,16 @@
<!-- ================================================= -->
<!-- Transport Ins -->
<!-- ================================================= -->
+ <!-- The default configuration assumes that AxisServlet only receives requests
+ through HTTP. To allow HTTPS as well, configure a second AxisServletListener
+ with name="https" and specify the port parameter on both receivers.
+ For more information, please have a look at the servlet transport documentation:
+ http://axis.apache.org/axis2/java/core/docs/servlet-transport.html -->
<transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills us (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname" locked="false">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer" locked="false">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout" locked="false">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay" locked="false">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize" locked="false">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize" locked="false">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime" locked="false">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit" locked="false">MILLISECONDS</parameter> -->
- </transportReceiver>
+ class="org.apache.axis2.transport.http.AxisServletListener"/>
+
+ <transportReceiver name="https"
+ class="org.apache.axis2.transport.http.AxisServletListener"/>
<!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
<transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
@@ -155,12 +139,12 @@
<transportSender name="local"
class="org.apache.axis2.transport.local.LocalTransportSender"/>
<transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
</transportSender>
<transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
<parameter name="Transfer-Encoding" locked="false">chunked</parameter>
</transportSender>
@@ -179,9 +163,10 @@
<!-- ================================================= -->
<!-- Global Modules -->
<!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
+ <!-- Comment this to disable Addressing
<module ref="addressing"/>
-
+ -->
+
<!--Configuring module , providing parameters for modules whether they refer or not-->
<moduleConfig name="addressing">
<parameter name="includeOptionalHeaders" locked="false">true</parameter>
diff --git a/modules/rampart-integration/src/test/resources/kerberos/alice.keytab b/modules/rampart-integration/src/test/resources/kerberos/alice.keytab
new file mode 100644
index 0000000..053b248
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/alice.keytab
Binary files differ
diff --git a/modules/rampart-integration/src/test/resources/kerberos/bob.keytab b/modules/rampart-integration/src/test/resources/kerberos/bob.keytab
new file mode 100644
index 0000000..5be6b13
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/bob.keytab
Binary files differ
diff --git a/modules/rampart-integration/src/test/resources/kerberos/jaas.conf b/modules/rampart-integration/src/test/resources/kerberos/jaas.conf
new file mode 100644
index 0000000..b236d4a
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/jaas.conf
@@ -0,0 +1,49 @@
+KerberosOverTransportKeytab {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="target/test-classes/kerberos/bob.keytab"
+ principal=bob
+ storeKey=true
+ isInitiator=false
+ refreshKrb5Config=true;
+};
+
+KerberosOverTransportKeytabClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="target/test-classes/kerberos/alice.keytab"
+ principal=alice
+ refreshKrb5Config=true;
+};
+
+KerberosOverTransportPWCB {
+ com.sun.security.auth.module.Krb5LoginModule required
+ principal=bob
+ storeKey=true
+ isInitiator=false
+ refreshKrb5Config=true;
+};
+
+KerberosOverTransportPWCBClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ principal=alice
+ refreshKrb5Config=true;
+};
+
+KerberosDelegation {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="target/test-classes/kerberos/bob.keytab"
+ principal=bob
+ storeKey=true
+ isInitiator=true
+ refreshKrb5Config=true;
+};
+
+KerberosDelegationClient {
+ com.sun.security.auth.module.Krb5LoginModule required
+ useKeyTab=true
+ keyTab="target/test-classes/kerberos/alice.keytab"
+ principal=alice
+ refreshKrb5Config=true;
+};
\ No newline at end of file
diff --git a/modules/rampart-integration/src/test/resources/kerberos/krb5.conf.template b/modules/rampart-integration/src/test/resources/kerberos/krb5.conf.template
new file mode 100644
index 0000000..30a9ebf
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/krb5.conf.template
@@ -0,0 +1,8 @@
+[libdefaults]
+ default_realm = EXAMPLE.COM
+ forwardable = true
+
+[realms]
+ EXAMPLE.COM = {
+ kdc = localhost:KDC_PORT
+ }
\ No newline at end of file
diff --git a/modules/rampart-integration/src/test/resources/kerberos/readme b/modules/rampart-integration/src/test/resources/kerberos/readme
new file mode 100644
index 0000000..9c04c80
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/readme
@@ -0,0 +1,9 @@
+In order to create alice.keytab and bob.keytab, in src/test/resources/kerberos directory, execute the following commands depending on the underlying OS:
+
+Windows:
+<java_home>/bin/ktab.exe -a alice@EXAMPLE.COM password -k alice.keytab
+<java_home>/bin/ktab.exe -a bob@EXAMPLE.COM password -k bob.keytab
+
+Unix (requires ktutil)
+ktutil add_entry -password -p alice@EXAMPLE.COM -k 1 -e aes128-cts-hmac-sha1-96\npassword\n write_kt alice.keytab\n quit
+ktutil add_entry -password -p bob@EXAMPLE.COM -k 1 -e aes128-cts-hmac-sha1-96\npassword\n write_kt bob.keytab\n quit
\ No newline at end of file
diff --git a/modules/rampart-integration/src/test/resources/kerberos/users.ldif b/modules/rampart-integration/src/test/resources/kerberos/users.ldif
new file mode 100644
index 0000000..f0557ec
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/kerberos/users.ldif
@@ -0,0 +1,60 @@
+version: 1
+
+dn: dc=example,dc=com
+objectClass: top
+objectClass: domain
+objectClass: extensibleObject
+dc: example
+
+dn: ou=users,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: users
+
+dn: ou=services,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+ou: services
+
+dn: krb5PrincipalName=bob@EXAMPLE.COM+uid=bob+sn=bob+cn=bob,ou=services,dc=example,dc=com
+objectClass: top
+objectClass: inetOrgPerson
+objectClass: krb5KDCEntry
+objectClass: uidObject
+objectClass: person
+objectClass: krb5Principal
+objectClass: organizationalPerson
+cn: bob
+krb5KeyVersionNumber: 0
+krb5PrincipalName: bob@EXAMPLE.COM
+sn: bob
+uid: bob
+userPassword: password
+
+dn: uid=krbtgt+krb5PrincipalName=krbtgt/EXAMPLE.COM@EXAMPLE.COM+ou=TGT,ou=se
+ rvices,dc=example,dc=com
+objectClass: top
+objectClass: organizationalUnit
+objectClass: krb5KDCEntry
+objectClass: uidObject
+objectClass: krb5Principal
+krb5KeyVersionNumber: 0
+krb5PrincipalName: krbtgt/EXAMPLE.COM@EXAMPLE.COM
+ou: TGT
+uid: krbtgt
+userPassword: randomKey
+
+dn: cn=alice+krb5PrincipalName=alice@EXAMPLE.COM+uid=alice,ou=users,dc=example,dc=com
+objectClass: top
+objectClass: krb5KDCEntry
+objectClass: inetOrgPerson
+objectClass: uidObject
+objectClass: krb5Principal
+objectClass: person
+objectClass: organizationalPerson
+cn: alice
+krb5KeyVersionNumber: 0
+krb5PrincipalName: alice@EXAMPLE.COM
+sn: alice
+uid: alice
+userPassword: password
diff --git a/modules/rampart-integration/src/test/resources/log4j.properties b/modules/rampart-integration/src/test/resources/log4j.properties
index 8a80313..b81a5b4 100644
--- a/modules/rampart-integration/src/test/resources/log4j.properties
+++ b/modules/rampart-integration/src/test/resources/log4j.properties
@@ -23,3 +23,9 @@
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c - %m%n
+log4j.appender.JETTY=org.apache.log4j.ConsoleAppender
+log4j.appender.JETTY.layout=org.apache.log4j.PatternLayout
+log4j.appender.JETTY.layout.ConversionPattern=[%C{1}] - %m%n
+
+log4j.category.org.apache.axis2.integration.JettyServer=INFO, JETTY
+log4j.additivity.org.apache.axis2.integration.JettyServer = false
diff --git a/modules/rampart-integration/src/test/resources/rahas/1.xml b/modules/rampart-integration/src/test/resources/rahas/1.xml
new file mode 100644
index 0000000..9446a8c
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rahas/1.xml
@@ -0,0 +1,74 @@
+<wsp:Policy wsu:Id="SigEncr" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:InitiatorToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:InitiatorToken>
+ <sp:RecipientToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:RecipientToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:AsymmetricBinding>
+ <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ </wsp:Policy>
+ </sp:Wss10>
+ <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:EncryptedParts>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>alice</ramp:user>
+ <ramp:encryptionUser>ip</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rahas.PWCallback</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rahas/rahas-sts.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rahas/rahas-sts.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ </ramp:RampartConfig>
+
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-integration/src/test/resources/rahas/3.xml b/modules/rampart-integration/src/test/resources/rahas/3.xml
new file mode 100644
index 0000000..8fd5491
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rahas/3.xml
@@ -0,0 +1,37 @@
+<wsp:Policy wsu:Id="UTOverTransport" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+<wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <!-- <sp:HttpsToken RequireClientCertificate="false"/> -->
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>joe</ramp:user>
+ <ramp:passwordCallbackClass>org.apache.rahas.PWCallback</ramp:passwordCallbackClass>
+ </ramp:RampartConfig>
+
+ </wsp:All>
+</wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-integration/src/test/resources/rahas/issuer.properties b/modules/rampart-integration/src/test/resources/rahas/issuer.properties
deleted file mode 100755
index 40abfa2..0000000
--- a/modules/rampart-integration/src/test/resources/rahas/issuer.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
-org.apache.ws.security.crypto.merlin.keystore.type=jks
-org.apache.ws.security.crypto.merlin.keystore.password=password
-org.apache.ws.security.crypto.merlin.file=rahas-sts.jks
diff --git a/modules/rampart-integration/src/test/resources/rahas/rahas-sec.properties b/modules/rampart-integration/src/test/resources/rahas/rahas-sec.properties
deleted file mode 100755
index 9a97673..0000000
--- a/modules/rampart-integration/src/test/resources/rahas/rahas-sec.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
-org.apache.ws.security.crypto.merlin.keystore.type=jks
-org.apache.ws.security.crypto.merlin.keystore.password=password
-org.apache.ws.security.crypto.merlin.file=rahas/rahas-sts.jks
-
diff --git a/modules/rampart-integration/src/test/resources/rahas/s1-services.xml b/modules/rampart-integration/src/test/resources/rahas/s1-services.xml
index 1bc8b06..7486b37 100644
--- a/modules/rampart-integration/src/test/resources/rahas/s1-services.xml
+++ b/modules/rampart-integration/src/test/resources/rahas/s1-services.xml
@@ -50,25 +50,79 @@
</trusted-services>
</saml-issuer-config>
</parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <signaturePropFile>issuer.properties</signaturePropFile>
- <decryptionPropFile>issuer.properties</decryptionPropFile>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>ip</user>
- <encryptionUser>useReqSigCert</encryptionUser>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <signaturePropFile xmlns="">issuer.properties</signaturePropFile>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
+ <wsp:Policy wsu:Id="SigEncr" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:AsymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:InitiatorToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:InitiatorToken>
+ <sp:RecipientToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:RecipientToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:AsymmetricBinding>
+ <sp:Wss10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ </wsp:Policy>
+ </sp:Wss10>
+ <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:EncryptedParts>
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>ip</ramp:user>
+ <ramp:encryptionUser>useReqSigCert</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rahas.PWCallback</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rahas-sts.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rahas-sts.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
</service>
diff --git a/modules/rampart-integration/src/test/resources/rahas/s3-services.xml b/modules/rampart-integration/src/test/resources/rahas/s3-services.xml
index 5d81ffd..df37b46 100644
--- a/modules/rampart-integration/src/test/resources/rahas/s3-services.xml
+++ b/modules/rampart-integration/src/test/resources/rahas/s3-services.xml
@@ -51,20 +51,42 @@
</saml-issuer-config>
</parameter>
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken Timestamp</items>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
+ <wsp:Policy wsu:Id="UTOverTransport" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <!-- <sp:HttpsToken RequireClientCertificate="false"/> -->
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>ip</ramp:user>
+ <ramp:passwordCallbackClass>org.apache.rampart.PWCallback</ramp:passwordCallbackClass>
+ </ramp:RampartConfig>
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp</items>
- <user>ip</user>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
</service>
diff --git a/modules/rampart-integration/src/test/resources/rahas/s5-services.xml b/modules/rampart-integration/src/test/resources/rahas/s5-services.xml
index 406eccf..a2819b6 100644
--- a/modules/rampart-integration/src/test/resources/rahas/s5-services.xml
+++ b/modules/rampart-integration/src/test/resources/rahas/s5-services.xml
@@ -51,20 +51,44 @@
</saml-issuer-config>
</parameter>
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken Timestamp</items>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp</items>
- <user>ip</user>
- <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
+ <wsp:Policy wsu:Id="UTOverTransport" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <!-- <sp:HttpsToken RequireClientCertificate="false"/> -->
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient" />
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>ip</ramp:user>
+ <ramp:passwordCallbackClass>org.apache.rampart.PWCallback</ramp:passwordCallbackClass>
+ </ramp:RampartConfig>
+
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
</service>
diff --git a/modules/rampart-integration/src/test/resources/rahas/saml.s1.properties b/modules/rampart-integration/src/test/resources/rahas/saml.s1.properties
deleted file mode 100644
index 90487b1..0000000
--- a/modules/rampart-integration/src/test/resources/rahas/saml.s1.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-org.apache.ws.security.saml.issuerClass=org.apache.ws.security.saml.SAMLIssuerImpl
-org.apache.ws.security.saml.issuer.cryptoProp.file=sctIssuer.properties
-org.apache.ws.security.saml.issuer.key.name=bob
-org.apache.ws.security.saml.issuer.key.password=security
-org.apache.ws.security.saml.issuer=www.example.com
-org.apache.ws.security.saml.subjectNameId.name=uid=joe,ou=people,ou=saml-demo,o=example.com
-org.apache.ws.security.saml.subjectNameId.qualifier=www.example.com
-org.apache.ws.security.saml.authenticationMethod=password
-#org.apache.ws.security.saml.confirmationMethod=senderVouches
diff --git a/modules/rampart-integration/src/test/resources/rahas/samlIssuer.properties b/modules/rampart-integration/src/test/resources/rahas/samlIssuer.properties
deleted file mode 100755
index c126c57..0000000
--- a/modules/rampart-integration/src/test/resources/rahas/samlIssuer.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
-org.apache.ws.security.crypto.merlin.keystore.type=jks
-org.apache.ws.security.crypto.merlin.keystore.password=password
-org.apache.ws.security.crypto.merlin.file=sts.jks
diff --git a/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosDelegation.xml b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosDelegation.xml
new file mode 100644
index 0000000..5ba8922
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosDelegation.xml
@@ -0,0 +1,86 @@
+<service name="KerberosDelegation">
+
+ <module ref="addressing" />
+ <module ref="rampart" />
+
+ <parameter locked="false" name="ServiceClass">org.apache.rampart.KerberosDelegationService</parameter>
+
+ <transports>
+ <transport>https</transport>
+ </transports>
+
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:echo</actionMapping>
+ </operation>
+
+ <operation name="returnError">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:returnError</actionMapping>
+ </operation>
+
+ <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+
+ <wsp:AppliesTo>
+ <policy-subject identifier="binding:soap" />
+ <policy-subject identifier="binding:soap12" />
+ </wsp:AppliesTo>
+
+ <wsp:Policy wsu:Id="KerberosOverTransport"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding>
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <sp:HttpsToken />
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128 />
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:IncludeTimestamp />
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ <sp:Wss11>
+ <wsp:Policy />
+ </sp:Wss11>
+ <wsaw:UsingAddressing />
+
+ <rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy">
+ <rampart:kerberosConfig>
+ <rampart:jaasContext>KerberosDelegation</rampart:jaasContext>
+ <rampart:servicePrincipalNameForm>username</rampart:servicePrincipalNameForm>
+ <rampart:kerberosTokenDecoderClass>org.apache.rampart.util.KerberosTokenDecoderImpl</rampart:kerberosTokenDecoderClass>
+ </rampart:kerberosConfig>
+ <rampart:policyValidatorCbClass>org.apache.rampart.KerberosDelegationServiceValidator</rampart:policyValidatorCbClass>
+ </rampart:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
+ </wsp:PolicyAttachment>
+
+ <!-- Configure SPN using addressingIdentity extensibility element -->
+ <parameter name="addressingIdentity">
+ <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+ <Upn>bob@EXAMPLE.COM</Upn>
+ </Identity>
+ </parameter>
+
+</service>
diff --git a/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportKeytab.xml b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportKeytab.xml
new file mode 100644
index 0000000..27c4dc9
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportKeytab.xml
@@ -0,0 +1,85 @@
+<service name="KerberosOverTransportKeytab">
+
+ <module ref="addressing" />
+ <module ref="rampart" />
+
+ <parameter locked="false" name="ServiceClass">org.apache.rampart.Service</parameter>
+
+ <transports>
+ <transport>https</transport>
+ </transports>
+
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:echo</actionMapping>
+ </operation>
+
+ <operation name="returnError">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:returnError</actionMapping>
+ </operation>
+
+ <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+
+ <wsp:AppliesTo>
+ <policy-subject identifier="binding:soap" />
+ <policy-subject identifier="binding:soap12" />
+ </wsp:AppliesTo>
+
+ <wsp:Policy wsu:Id="KerberosOverTransport"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding>
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <sp:HttpsToken />
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128 />
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:IncludeTimestamp />
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ <sp:Wss11>
+ <wsp:Policy />
+ </sp:Wss11>
+ <wsaw:UsingAddressing />
+
+ <rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy">
+ <rampart:kerberosConfig>
+ <rampart:jaasContext>KerberosOverTransportKeytab</rampart:jaasContext>
+ <rampart:servicePrincipalNameForm>username</rampart:servicePrincipalNameForm>
+ <rampart:kerberosTokenDecoderClass>org.apache.rampart.util.KerberosTokenDecoderImpl</rampart:kerberosTokenDecoderClass>
+ </rampart:kerberosConfig>
+ </rampart:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
+ </wsp:PolicyAttachment>
+
+ <!-- Configure SPN using addressingIdentity extensibility element -->
+ <parameter name="addressingIdentity">
+ <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+ <Upn>bob@EXAMPLE.COM</Upn>
+ </Identity>
+ </parameter>
+
+</service>
diff --git a/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportPWCB.xml b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportPWCB.xml
new file mode 100644
index 0000000..fc3a3a3
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rampart/kerberos/KerberosOverTransportPWCB.xml
@@ -0,0 +1,88 @@
+<service name="KerberosOverTransportPWCB">
+
+ <module ref="addressing" />
+ <module ref="rampart" />
+
+ <parameter locked="false" name="ServiceClass">org.apache.rampart.Service</parameter>
+
+ <transports>
+ <transport>https</transport>
+ </transports>
+
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:echo</actionMapping>
+ </operation>
+
+ <operation name="returnError">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />
+ <actionMapping>urn:returnError</actionMapping>
+ </operation>
+
+ <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+
+ <wsp:AppliesTo>
+ <policy-subject identifier="binding:soap" />
+ <policy-subject identifier="binding:soap12" />
+ </wsp:AppliesTo>
+
+ <wsp:Policy wsu:Id="KerberosOverTransport"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:TransportBinding>
+ <wsp:Policy>
+ <sp:TransportToken>
+ <wsp:Policy>
+ <sp:HttpsToken />
+ </wsp:Policy>
+ </sp:TransportToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128 />
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:IncludeTimestamp />
+ </wsp:Policy>
+ </sp:TransportBinding>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ <sp:Wss11>
+ <wsp:Policy />
+ </sp:Wss11>
+ <wsaw:UsingAddressing />
+
+ <rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy">
+ <rampart:user>alice</rampart:user>
+ <rampart:passwordCallbackClass>org.apache.rampart.PWCallback</rampart:passwordCallbackClass>
+
+ <rampart:kerberosConfig>
+ <rampart:jaasContext>KerberosOverTransportPWCB</rampart:jaasContext>
+ <rampart:servicePrincipalNameForm>username</rampart:servicePrincipalNameForm>
+ <rampart:kerberosTokenDecoderClass>org.apache.rampart.util.KerberosTokenDecoderImpl</rampart:kerberosTokenDecoderClass>
+ </rampart:kerberosConfig>
+ </rampart:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
+ </wsp:PolicyAttachment>
+
+ <!-- Configure SPN using addressingIdentity extensibility element -->
+ <parameter name="addressingIdentity">
+ <Identity xmlns="http://schemas.xmlsoap.org/ws/2006/02/addressingidentity">
+ <Upn>bob@EXAMPLE.COM</Upn>
+ </Identity>
+ </parameter>
+
+</service>
diff --git a/modules/rampart-integration/src/test/resources/rampart/policy/35.xml b/modules/rampart-integration/src/test/resources/rampart/policy/35.xml
new file mode 100644
index 0000000..a19d25c
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rampart/policy/35.xml
@@ -0,0 +1,76 @@
+<wsp:Policy wsu:Id="EncrSupTokensUTNoPasswd"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding>
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference />
+ <sp:WssX509V3Token10 />
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128 />
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax />
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:OnlySignEntireHeadersAndBody />
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:EncryptedParts>
+ <sp:Body />
+ </sp:EncryptedParts>
+ <sp:SignedParts>
+ <sp:Body />
+ </sp:SignedParts>
+ <sp:EncryptedSupportingTokens>
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:WssUsernameToken11 />
+ <sp:NoPassword />
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </sp:UsernameToken>
+ </wsp:Policy>
+ </sp:EncryptedSupportingTokens>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>alice</ramp:user>
+ <ramp:encryptionUser>bob</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.PWCallback</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rampart/store.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rampart/store.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-integration/src/test/resources/rampart/services-35.xml b/modules/rampart-integration/src/test/resources/rampart/services-35.xml
new file mode 100644
index 0000000..a0c1342
--- /dev/null
+++ b/modules/rampart-integration/src/test/resources/rampart/services-35.xml
@@ -0,0 +1,94 @@
+<service name="SecureService35">
+
+ <module ref="addressing"/>
+ <module ref="rampart"/>
+
+ <parameter locked="false" name="ServiceClass">org.apache.rampart.Service</parameter>
+
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ <actionMapping>urn:echo</actionMapping>
+ </operation>
+
+ <operation name="returnError">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ <actionMapping>urn:returnError</actionMapping>
+ </operation>
+
+ <wsp:Policy wsu:Id="EncrSupTokensUTNoPasswd"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding>
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference />
+ <sp:WssX509V3Token10 />
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128 />
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax />
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:OnlySignEntireHeadersAndBody />
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:EncryptedParts>
+ <sp:Body />
+ </sp:EncryptedParts>
+ <sp:SignedParts>
+ <sp:Body />
+ </sp:SignedParts>
+ <sp:EncryptedSupportingTokens>
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:WssUsernameToken11 />
+ <sp:NoPassword />
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </sp:UsernameToken>
+ </wsp:Policy>
+ </sp:EncryptedSupportingTokens>
+
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>bob</ramp:user>
+ <ramp:encryptionUser>alice</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.PWCallback</ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rampart/store.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">rampart/store.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">password</ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+</service>
diff --git a/modules/rampart-integration/src/test/resources/security/complete.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/complete.client.axis2.xml
deleted file mode 100644
index c1cf806..0000000
--- a/modules/rampart-integration/src/test/resources/security/complete.client.axis2.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <moduleConfig name="addressing">
- <parameter name="includeOptionalHeaders" locked="false">true</parameter>
- </moduleConfig>
-
- <!-- Test with addressing and MTOM: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>bob</encryptionUser>
- <signatureParts>{Element}{http://www.w3.org/2005/08/addressing}To;{Element}{http://www.w3.org/2005/08/addressing}MessageID;{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp</signatureParts>
-
- <optimizeParts>//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</optimizeParts>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- Test with addressing and MTOM: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/complete.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/complete.service.axis2.xml
deleted file mode 100644
index 7759bd7..0000000
--- a/modules/rampart-integration/src/test/resources/security/complete.service.axis2.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
- <parameter name="enableMTOM" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the addressing module -->
- <module ref="addressing"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <moduleConfig name="addressing">
- <parameter name="includeOptionalHeaders" locked="false">true</parameter>
- </moduleConfig>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/complete.service.xml b/modules/rampart-integration/src/test/resources/security/complete.service.xml
deleted file mode 100644
index 7988cb1..0000000
--- a/modules/rampart-integration/src/test/resources/security/complete.service.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>alice</encryptionUser>
- <signatureParts>{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp</signatureParts>
-
- <optimizeParts>//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</optimizeParts>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s1.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s1.client.axis2.xml
deleted file mode 100644
index 256b7eb..0000000
--- a/modules/rampart-integration/src/test/resources/security/s1.client.axis2.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 1: Client's Configuration:START-->
- <parameter name="OutflowSecurity">
- <action>
- <items>UsernameToken</items>
- <user>Chris</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <passwordType>PasswordText</passwordType>
- </action>
- </parameter>
- <!-- Scenario 1: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s1.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s1.service.axis2.xml
deleted file mode 100644
index 1c5bbf0..0000000
--- a/modules/rampart-integration/src/test/resources/security/s1.service.axis2.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s1.service.xml b/modules/rampart-integration/src/test/resources/security/s1.service.xml
deleted file mode 100644
index d6afa98..0000000
--- a/modules/rampart-integration/src/test/resources/security/s1.service.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s2.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s2.client.axis2.xml
deleted file mode 100644
index 334d060..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2.client.axis2.xml
+++ /dev/null
@@ -1,128 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 2: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>UsernameToken Encrypt</items>
- <user>Chris</user>
- <addUTElements>Nonce Created</addUTElements>
- <encryptionParts>{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UsernameToken</encryptionParts>
- <encryptionUser>bob</encryptionUser>
- <encryptionPropFile>interop.properties</encryptionPropFile>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <passwordType>PasswordText</passwordType>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- </action>
- </parameter>
-
- <!-- Scenario 2: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s2.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s2.service.axis2.xml
deleted file mode 100644
index d0d3d19..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2.service.axis2.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s2.service.xml b/modules/rampart-integration/src/test/resources/security/s2.service.xml
deleted file mode 100644
index 77c8eac..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2.service.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken Encrypt</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <decryptionPropFile>interop.properties</decryptionPropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s2a.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s2a.client.axis2.xml
deleted file mode 100644
index e2c8f86..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2a.client.axis2.xml
+++ /dev/null
@@ -1,126 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 2: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>UsernameTokenSignature Encrypt Timestamp</items>
- <user>Chris</user>
- <encryptionParts>{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}UsernameToken</encryptionParts>
- <encryptionUser>bob</encryptionUser>
- <encryptionPropFile>interop.properties</encryptionPropFile>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- </action>
- </parameter>
-
- <!-- Scenario 2: Client's Configuration:END-->
-
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
-<phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s2a.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s2a.service.axis2.xml
deleted file mode 100644
index 5c1add2..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2a.service.axis2.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s2a.service.xml b/modules/rampart-integration/src/test/resources/security/s2a.service.xml
deleted file mode 100644
index 4c5f6b3..0000000
--- a/modules/rampart-integration/src/test/resources/security/s2a.service.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameTokenSignature UsernameTokenNoPassword Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <decryptionPropFile>interop.properties</decryptionPropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s3.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s3.client.axis2.xml
deleted file mode 100644
index 19ab019..0000000
--- a/modules/rampart-integration/src/test/resources/security/s3.client.axis2.xml
+++ /dev/null
@@ -1,137 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 3: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>bob</encryptionUser>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
-
- <!-- Scenario 3: Client's Configuration:END-->
-
-
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s3.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s3.service.axis2.xml
deleted file mode 100644
index 8540d4e..0000000
--- a/modules/rampart-integration/src/test/resources/security/s3.service.axis2.xml
+++ /dev/null
@@ -1,143 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
-<phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s3.service.xml b/modules/rampart-integration/src/test/resources/security/s3.service.xml
deleted file mode 100644
index 12cf1c7..0000000
--- a/modules/rampart-integration/src/test/resources/security/s3.service.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>alice</encryptionUser>
- <enableSignatureConfirmation>false</enableSignatureConfirmation>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s4.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s4.client.axis2.xml
deleted file mode 100644
index 58a3c95..0000000
--- a/modules/rampart-integration/src/test/resources/security/s4.client.axis2.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 4: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>EmbeddedKeyName</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <signaturePropFile>interop.properties</signaturePropFile>
- <embeddedKeyCallbackClass>org.apache.axis2.security.PWCallback</embeddedKeyCallbackClass>
- <embeddedKeyName>SessionKey</embeddedKeyName>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <isBSPCompliant>false</isBSPCompliant>
- </action>
- </parameter>
-
- <!-- Scenario 4: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s4.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s4.service.axis2.xml
deleted file mode 100644
index 2425853..0000000
--- a/modules/rampart-integration/src/test/resources/security/s4.service.axis2.xml
+++ /dev/null
@@ -1,144 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s4.service.xml b/modules/rampart-integration/src/test/resources/security/s4.service.xml
deleted file mode 100644
index f39ab3e..0000000
--- a/modules/rampart-integration/src/test/resources/security/s4.service.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <isBSPCompliant>false</isBSPCompliant>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
- <encryptionKeyIdentifier>EmbeddedKeyName</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <signaturePropFile>interop.properties</signaturePropFile>
- <embeddedKeyCallbackClass>org.apache.axis2.security.PWCallback</embeddedKeyCallbackClass>
- <embeddedKeyName>SessionKey</embeddedKeyName>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s5.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s5.client.axis2.xml
deleted file mode 100644
index cab64a1..0000000
--- a/modules/rampart-integration/src/test/resources/security/s5.client.axis2.xml
+++ /dev/null
@@ -1,132 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 5: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
-
- <action>
- <items>Signature</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <signatureParts>{}{http://xmlsoap.org/Ping}ticket</signatureParts>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
-
- <action>
- <items>Signature Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
-
- </parameter>
-
- <!-- Scenario 5: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s5.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s5.service.axis2.xml
deleted file mode 100644
index c144ce2..0000000
--- a/modules/rampart-integration/src/test/resources/security/s5.service.axis2.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s5.service.xml b/modules/rampart-integration/src/test/resources/security/s5.service.xml
deleted file mode 100644
index 6c9089d..0000000
--- a/modules/rampart-integration/src/test/resources/security/s5.service.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Signature Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s6.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s6.client.axis2.xml
deleted file mode 100644
index 38f768b..0000000
--- a/modules/rampart-integration/src/test/resources/security/s6.client.axis2.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 6: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt Signature Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>bob</encryptionUser>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt Signature Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- Scenario 6: Client's Configuration:END-->
-
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s6.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s6.service.axis2.xml
deleted file mode 100644
index 6130df0..0000000
--- a/modules/rampart-integration/src/test/resources/security/s6.service.axis2.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s6.service.xml b/modules/rampart-integration/src/test/resources/security/s6.service.xml
deleted file mode 100644
index c67c3d8..0000000
--- a/modules/rampart-integration/src/test/resources/security/s6.service.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt Signature Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt Signature Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <encryptionKeyIdentifier>DirectReference</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>alice</encryptionUser>
- <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/s7.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/s7.client.axis2.xml
deleted file mode 100644
index 53086c2..0000000
--- a/modules/rampart-integration/src/test/resources/security/s7.client.axis2.xml
+++ /dev/null
@@ -1,135 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 7: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>bob</encryptionUser>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <signaturePropFile>interop.properties</signaturePropFile>
- <encryptionPropFile>interop.properties</encryptionPropFile>
- <signatureParts>{}{http://schemas.xmlsoap.org/soap/envelope/}Body;STRTransform</signatureParts>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <decryptionPropFile>interop.properties</decryptionPropFile>
- </action>
- </parameter>
-
- <!-- Scenario 7: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s7.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/s7.service.axis2.xml
deleted file mode 100644
index 7d39a93..0000000
--- a/modules/rampart-integration/src/test/resources/security/s7.service.axis2.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/s7.service.xml b/modules/rampart-integration/src/test/resources/security/s7.service.xml
deleted file mode 100644
index f8111e7..0000000
--- a/modules/rampart-integration/src/test/resources/security/s7.service.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <decryptionPropFile>interop.properties</decryptionPropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <encryptionKeyIdentifier>DirectReference</encryptionKeyIdentifier>
- <encryptionSymAlgorithm>http://www.w3.org/2001/04/xmlenc#tripledes-cbc</encryptionSymAlgorithm>
- <encryptionUser>alice</encryptionUser>
- <signatureKeyIdentifier>SKIKeyIdentifier</signatureKeyIdentifier>
- <signaturePropFile>interop.properties</signaturePropFile>
- <encryptionPropFile>interop.properties</encryptionPropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sST1.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/sST1.client.axis2.xml
deleted file mode 100644
index 6af6407..0000000
--- a/modules/rampart-integration/src/test/resources/security/sST1.client.axis2.xml
+++ /dev/null
@@ -1,119 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario ST1: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp SAMLTokenUnsigned</items>
- <samlPropFile>axis2.saml.properties</samlPropFile>
- </action>
- </parameter>
-
- <!-- Scenario ST1: Client's Configuration:END-->
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/sST1.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/sST1.service.axis2.xml
deleted file mode 100644
index 4a0c614..0000000
--- a/modules/rampart-integration/src/test/resources/security/sST1.service.axis2.xml
+++ /dev/null
@@ -1,145 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/sST1.service.xml b/modules/rampart-integration/src/test/resources/security/sST1.service.xml
deleted file mode 100644
index 1bb5dc7..0000000
--- a/modules/rampart-integration/src/test/resources/security/sST1.service.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp SAMLTokenUnsigned</items>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sc/s1-services.xml b/modules/rampart-integration/src/test/resources/security/sc/s1-services.xml
deleted file mode 100644
index 1d92054..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/s1-services.xml
+++ /dev/null
@@ -1,84 +0,0 @@
-<service name="SecureService">
-
- <module ref="rampart"/>
- <module ref="rahas"/>
-
- <parameter locked="false" name="ServiceClass">org.apache.axis2.security.sc.Service</parameter>
-
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <actionMapping>urn:echo</actionMapping>
- </operation>
-
- <!-- <parameter name="sct-issuer-config">
- <sct-issuer-config>
- <proofToken>EncryptedKey</proofToken>
- <cryptoProperties>sctIssuer.properties</cryptoProperties>
- <addRequestedAttachedRef />
- </sct-issuer-config>
- </parameter>-->
-
- <parameter name="sct-issuer-config">
- <sct-issuer-config>
- <addRequestedAttachedRef/>
- <addRequestedUnattachedRef/>
- <cryptoProperties>
- <crypto provider="org.apache.ws.security.components.crypto.Merlin">
- <property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</property>
- <property name="org.apache.ws.security.crypto.merlin.file">sts.jks</property>
- <property name="org.apache.ws.security.crypto.merlin.keystore.password">password</property>
- </crypto>
- </cryptoProperties>
-
- <!--
- Key computation mechanism
- 1 - Use Request Entropy
- 2 - Provide Entropy
- 3 - Use Own Key
- -->
- <keyComputation>3</keyComputation>
-
- <!--
- proofKeyType element is valid only if the keyComputation is set to 3
- i.e. Use Own Key
-
- Valid values are: EncryptedKey & BinarySecret
- -->
- <proofKeyType>EncryptedKey</proofKeyType>
- </sct-issuer-config>
- </parameter>
-
- <parameter name="token-canceler-config">
- <token-canceler-config>
- <!--<proofToken>EncryptedKey</proofToken>-->
- <!--<cryptoProperties>sctIssuer.properties</cryptoProperties>-->
- <!--<addRequestedAttachedRef />-->
- </token-canceler-config>
- </parameter>
-
- <parameter xmlns="" name="sc-configuration">
- <sc-configuration xmlns="">
- <scope xmlns="">service</scope>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- <cryptoProperties xmlns="">sctIssuer.properties</cryptoProperties>
- </sc-configuration>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>sctIssuer.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <encryptionUser>useReqSigCert</encryptionUser>
- <user>sts</user>
- <signaturePropFile xmlns="">sctIssuer.properties</signaturePropFile>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sc/s2-services.xml b/modules/rampart-integration/src/test/resources/security/sc/s2-services.xml
deleted file mode 100644
index 8c942a6..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/s2-services.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-<service name="SecureService">
-
- <module ref="rampart"/>
- <module ref="rahas"/>
-
- <parameter locked="false" name="ServiceClass">org.apache.axis2.security.sc.Service</parameter>
-
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <actionMapping>urn:echo</actionMapping>
- </operation>
-
- <parameter name="sct-issuer-config">
- <sct-issuer-config>
- <addRequestedAttachedRef />
- <addRequestedUnattachedRef />
- <cryptoProperties>
- <crypto provider="org.apache.ws.security.components.crypto.Merlin">
- <property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</property>
- <property name="org.apache.ws.security.crypto.merlin.file">sts.jks</property>
- <property name="org.apache.ws.security.crypto.merlin.keystore.password">password</property>
- </crypto>
- </cryptoProperties>
-
- <!--
- Key computation mechanism
- 1 - Use Request Entropy
- 2 - Provide Entropy
- 3 - Use Own Key
- -->
- <keyComputation>3</keyComputation>
-
- <!--
- proofKeyType element is valid only if the keyComputation is set to 3
- i.e. Use Own Key
-
- Valid values are: EncryptedKey & BinarySecret
- -->
- <proofKeyType>BinarySecret</proofKeyType>
- </sct-issuer-config>
- </parameter>
-
- <parameter xmlns="" name="sc-configuration">
- <sc-configuration xmlns="">
- <scope xmlns="">service</scope>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- <cryptoProperties xmlns="">sctIssuer.properties</cryptoProperties>
- </sc-configuration>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>sctIssuer.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp</items>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sc/s3-services.xml b/modules/rampart-integration/src/test/resources/security/sc/s3-services.xml
deleted file mode 100644
index 754a0ca..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/s3-services.xml
+++ /dev/null
@@ -1,66 +0,0 @@
-<service name="SecureService">
-
- <module ref="rampart"/>
-
- <parameter locked="false" name="ServiceClass">org.apache.axis2.security.sc.Service</parameter>
-
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <actionMapping>urn:echo</actionMapping>
- </operation>
-
- <parameter name="sct-issuer-config">
- <sct-issuer-config>
- <cryptoProperties>
- <crypto provider="org.apache.ws.security.components.crypto.Merlin">
- <property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</property>
- <property name="org.apache.ws.security.crypto.merlin.file">sts.jks</property>
- <property name="org.apache.ws.security.crypto.merlin.keystore.password">password</property>
- </crypto>
- </cryptoProperties>
- <addRequestedAttachedRef />
-
- <!--
- Key computation mechanism
- 1 - Use Request Entropy
- 2 - Provide Entropy
- 3 - Use Own Key
- -->
- <keyComputation>3</keyComputation>
-
- <!--
- proofKeyType element is valid only if the keyComputation is set to 3
- i.e. Use Own Key
-
- Valid values are: EncryptedKey & BinarySecret
- -->
- <proofKeyType>BinarySecret</proofKeyType>
- </sct-issuer-config>
- </parameter>
-
- <parameter xmlns="" name="sc-configuration">
- <sc-configuration xmlns="">
- <scope xmlns="">service</scope>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- <cryptoProperties xmlns="">sctIssuer.properties</cryptoProperties>
- </sc-configuration>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>sctIssuer.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <encryptionUser>useReqSigCert</encryptionUser>
- <user>sts</user>
- <signaturePropFile xmlns="">sctIssuer.properties</signaturePropFile>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sc/s4-services.xml b/modules/rampart-integration/src/test/resources/security/sc/s4-services.xml
deleted file mode 100644
index 50b850a..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/s4-services.xml
+++ /dev/null
@@ -1,67 +0,0 @@
-<service name="SecureService">
-
- <module ref="rampart"/>
- <module ref="rahas"/>
-
- <parameter locked="false" name="ServiceClass">org.apache.axis2.security.sc.Service</parameter>
-
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <actionMapping>urn:echo</actionMapping>
- </operation>
-
- <parameter name="sct-issuer-config">
- <sct-issuer-config>
- <cryptoProperties>
- <crypto provider="org.apache.ws.security.components.crypto.Merlin">
- <property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</property>
- <property name="org.apache.ws.security.crypto.merlin.file">sts.jks</property>
- <property name="org.apache.ws.security.crypto.merlin.keystore.password">password</property>
- </crypto>
- </cryptoProperties>
- <addRequestedAttachedRef />
-
- <!--
- Key computation mechanism
- 1 - Use Request Entropy
- 2 - Provide Entropy
- 3 - Use Own Key
- -->
- <keyComputation>3</keyComputation>
-
- <!--
- proofKeyType element is valid only if the keyComputation is set to 3
- i.e. Use Own Key
-
- Valid values are: EncryptedKey & BinarySecret
- -->
- <proofKeyType>BinarySecret</proofKeyType>
- </sct-issuer-config>
- </parameter>
-
- <parameter xmlns="" name="sc-configuration">
- <sc-configuration xmlns="">
- <scope xmlns="">service</scope>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- <cryptoProperties xmlns="">sctIssuer.properties</cryptoProperties>
- </sc-configuration>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>sctIssuer.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <encryptionUser>useReqSigCert</encryptionUser>
- <user>sts</user>
- <signaturePropFile xmlns="">sctIssuer.properties</signaturePropFile>
- <passwordCallbackClass xmlns="">org.apache.axis2.security.sc.PWCallback</passwordCallbackClass>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-integration/src/test/resources/security/sc/sctIssuer.properties b/modules/rampart-integration/src/test/resources/security/sc/sctIssuer.properties
deleted file mode 100755
index c126c57..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/sctIssuer.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
-org.apache.ws.security.crypto.merlin.keystore.type=jks
-org.apache.ws.security.crypto.merlin.keystore.password=password
-org.apache.ws.security.crypto.merlin.file=sts.jks
diff --git a/modules/rampart-integration/src/test/resources/security/sc/sec.jks b/modules/rampart-integration/src/test/resources/security/sc/sec.jks
deleted file mode 100755
index 7af24b2..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/sec.jks
+++ /dev/null
Binary files differ
diff --git a/modules/rampart-integration/src/test/resources/security/sc/sec.properties b/modules/rampart-integration/src/test/resources/security/sc/sec.properties
deleted file mode 100755
index 3c3298d..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/sec.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-org.apache.ws.security.crypto.provider=org.apache.ws.security.components.crypto.Merlin
-org.apache.ws.security.crypto.merlin.keystore.type=jks
-org.apache.ws.security.crypto.merlin.keystore.password=password
-org.apache.ws.security.crypto.merlin.file=sec.jks
-
diff --git a/modules/rampart-integration/src/test/resources/security/sc/sts.jks b/modules/rampart-integration/src/test/resources/security/sc/sts.jks
deleted file mode 100644
index 2db0a7c..0000000
--- a/modules/rampart-integration/src/test/resources/security/sc/sts.jks
+++ /dev/null
Binary files differ
diff --git a/modules/rampart-integration/src/test/resources/security/secMtom.client.axis2.xml b/modules/rampart-integration/src/test/resources/security/secMtom.client.axis2.xml
deleted file mode 100644
index 9d1a37b..0000000
--- a/modules/rampart-integration/src/test/resources/security/secMtom.client.axis2.xml
+++ /dev/null
@@ -1,136 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Scenario 3 with MTOM: Client's Configuration:START-->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>alice</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>bob</encryptionUser>
-
- <optimizeParts>//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</optimizeParts>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- Scenario 3 with MTOM: Client's Configuration:END-->
-
-
-
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
- </transportSender>
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/secMtom.service.axis2.xml b/modules/rampart-integration/src/test/resources/security/secMtom.service.axis2.xml
deleted file mode 100644
index 092a6d7..0000000
--- a/modules/rampart-integration/src/test/resources/security/secMtom.service.axis2.xml
+++ /dev/null
@@ -1,146 +0,0 @@
-<axisconfig name="AxisJava2.0">
- <parameter name="hotdeployment" locked="false">true</parameter>
- <parameter name="hotupdate" locked="false">true</parameter>
- <parameter name="enableMTOM" locked="false">true</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <messageReceiver mep="INOUT" class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
-
- <!-- Engage the security module -->
- <module ref="rampart"/>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http" class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port" locked="false">6060</parameter>
- </transportReceiver>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.pop3.port" locked="false">110</parameter>
- <parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>
- </transportReceiver> -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <transportSender name="local" class="org.apache.axis2.transport.local.LocalTransportSender"/>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
- </transportSender>
-
- <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
- <transportSender name="mail" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
- <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
- <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
- </transportSender>
- -->
-
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-integration/src/test/resources/security/secMtom.service.xml b/modules/rampart-integration/src/test/resources/security/secMtom.service.xml
deleted file mode 100644
index 45f7a1f..0000000
--- a/modules/rampart-integration/src/test/resources/security/secMtom.service.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<service name="PingPort">
- <parameter locked="false" name="ServiceClass">org.apache.axis2.oasis.ping.PingPortSkeleton</parameter>
- <!--Mounting the method Ping-->
- <operation name="Ping">
- <messageReceiver class="org.apache.axis2.oasis.ping.PingPortMessageReceiverInOut"/>
- </operation>
-
-
- <parameter name="InflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Signature Encrypt Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.axis2.security.PWCallback</passwordCallbackClass>
- <signaturePropFile>interop.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>alice</encryptionUser>
-
- <optimizeParts>//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</optimizeParts>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-mar/module.xml b/modules/rampart-mar/module.xml
index 31a7f44..2552cb3 100644
--- a/modules/rampart-mar/module.xml
+++ b/modules/rampart-mar/module.xml
@@ -9,9 +9,6 @@
<handler name="PolicyBasedSecurityInHandler" class="org.apache.rampart.handler.RampartReceiver">
<order phase="Security" phaseFirst="true"/>
</handler>
- <handler name="SecurityInHandler" class="org.apache.rampart.handler.WSDoAllReceiver">
- <order phase="Security"/>
- </handler>
<handler name="PostDispatchVerificationHandler" class="org.apache.rampart.handler.PostDispatchVerificationHandler">
<order phase="Dispatch" phaseLast="true"/>
</handler>
@@ -19,18 +16,12 @@
</InFlow>
<OutFlow>
- <handler name="SecurityOutHandler" class="org.apache.rampart.handler.WSDoAllSender">
- <order phase="Security"/>
- </handler>
<handler name="PolicyBasedSecurityOutHandler" class="org.apache.rampart.handler.RampartSender">
<order phase="Security" phaseLast="true"/>
</handler>
</OutFlow>
<OutFaultFlow>
- <handler name="SecurityOutHandler" class="org.apache.rampart.handler.WSDoAllSender">
- <order phase="Security"/>
- </handler>
<handler name="PolicyBasedSecurityOutHandler" class="org.apache.rampart.handler.RampartSender">
<order phase="Security" phaseLast="true"/>
</handler>
@@ -40,9 +31,6 @@
<handler name="PolicyBasedSecurityInHandler" class="org.apache.rampart.handler.RampartReceiver">
<order phase="Security" phaseFirst="true"/>
</handler>
- <handler name="SecurityInHandler" class="org.apache.rampart.handler.WSDoAllReceiver">
- <order phase="Security"/>
- </handler>
</InFaultFlow>
<supported-policy-namespaces namespaces="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"/>
diff --git a/modules/rampart-mar/pom.xml b/modules/rampart-mar/pom.xml
index 66d7c3a..089ff7c 100644
--- a/modules/rampart-mar/pom.xml
+++ b/modules/rampart-mar/pom.xml
@@ -24,7 +24,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -34,31 +34,9 @@
<packaging>mar</packaging>
<name>Rampart - Mar</name>
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk</connection>
- <developerConnection>
- scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk
- </developerConnection>
- <url>http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk</url>
- </scm>
-
<build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- </resource>
- </resources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-mar-maven-plugin</artifactId>
<extensions>true</extensions>
@@ -70,7 +48,6 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
- <version>1.0</version>
<executions>
<execution>
<id>aar</id>
diff --git a/modules/rampart-policy/pom.xml b/modules/rampart-policy/pom.xml
index 5ba4c78..0d38319 100644
--- a/modules/rampart-policy/pom.xml
+++ b/modules/rampart-policy/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -34,40 +34,24 @@
<packaging>jar</packaging>
<name>Rampart - Policy</name>
- <build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <excludes>
- <exclude>**/*.java</exclude>
- </excludes>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <configuration>
- <templateDirectory>${basedir}</templateDirectory>
- <menu ref="parent" />
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-truth</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/Constants.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/Constants.java
index 60f28f8..d2b15f2 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/Constants.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/Constants.java
@@ -201,6 +201,10 @@
public static final String XPATH_FILTER20 = "XPathFilter20";
// /////////////////////////////////////////////////////////////////////
+
+ public final static String WSS_KERBEROS_TOKEN11 = "http://docs.oasis-open.org/wss/oasis-wss-kerberos-token-profile-1.1#GSS_Kerberosv5_AP_REQ";
+
+ // /////////////////////////////////////////////////////////////////////
public static final QName ATTR_XPATH_VERSION = new QName(SP_NS, "XPathVersion", Constants.SP_PREFIX);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP11Constants.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP11Constants.java
index 24bc380..99f4f77 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP11Constants.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP11Constants.java
@@ -258,6 +258,15 @@
public static final QName BODY = new QName(SP11Constants.SP_NS, "Body");
+ public static final QName KERBEROS_TOKEN = new QName(SP11Constants.SP_NS,
+ SPConstants.KERBEROS_TOKEN, SP11Constants.SP_PREFIX);
+
+ public static final QName REQUIRE_KERBEROS_GSS_V5_TOKEN_11 = new QName(SP11Constants.SP_NS,
+ SPConstants.REQUIRE_KERBEROS_GSS_V5_TOKEN_11, SP11Constants.SP_PREFIX);
+
+ public static final QName REQUIRE_KERBEROS_V5_TOKEN_11 = new QName(SP11Constants.SP_NS,
+ SPConstants.REQUIRE_KERBEROS_V5_TOKEN_11, SP11Constants.SP_PREFIX);
+
public static int getInclusionFromAttributeValue(String value ) {
if (INCLUDE_ALWAYS.equals(value)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP12Constants.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP12Constants.java
index 9cc040d..ff7e0d9 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP12Constants.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SP12Constants.java
@@ -317,6 +317,15 @@
////////////////////////////////////////////////////////////////////////////////////////////////
+ public static final QName KERBEROS_TOKEN = new QName(SP12Constants.SP_NS,
+ SPConstants.KERBEROS_TOKEN, SP12Constants.SP_PREFIX);
+
+ public static final QName REQUIRE_KERBEROS_GSS_V5_TOKEN_11 = new QName(SP12Constants.SP_NS,
+ SPConstants.REQUIRE_KERBEROS_GSS_V5_TOKEN_11, SP12Constants.SP_PREFIX);
+
+ public static final QName REQUIRE_KERBEROS_V5_TOKEN_11 = new QName(SP12Constants.SP_NS,
+ SPConstants.REQUIRE_KERBEROS_V5_TOKEN_11, SP12Constants.SP_PREFIX);
+
public static int getInclusionFromAttributeValue(String value ) {
if (INCLUDE_ALWAYS.equals(value)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SPConstants.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SPConstants.java
index dd834e7..1ca64db 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SPConstants.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/SPConstants.java
@@ -131,6 +131,7 @@
public final static String USERNAME_TOKEN11 = "WssUsernameToken11";
+ public final static String KERBEROS_TOKEN = "KerberosToken";
public final static String TRANSPORT_TOKEN = "TransportToken";
@@ -429,7 +430,7 @@
public static final String HASH_PASSWORD = "HashPassword";
-
+ public static final String REQUIRE_KERBEROS_V5_TOKEN_11 = "WssKerberosV5ApReqToken11";
-
+ public static final String REQUIRE_KERBEROS_GSS_V5_TOKEN_11 = "WssGssKerberosV5ApReqToken11";
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java
index f790c73..c8b2793 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractConfigurableSecurityAssertion.java
@@ -22,16 +22,16 @@
public abstract class AbstractConfigurableSecurityAssertion extends AbstractSecurityAssertion {
- protected ArrayList configurations = null;
+ protected ArrayList<Assertion> configurations = null;
public void addConfiguration(Assertion assertion) {
if (configurations == null) {
- configurations = new ArrayList();
+ configurations = new ArrayList<Assertion>();
}
configurations.add(assertion);
}
- public List getConfigurations() {
+ public List<Assertion> getConfigurations() {
return configurations;
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java
index 8b207fb..b57663a 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java
@@ -21,9 +21,6 @@
import org.apache.neethi.Assertion;
import org.apache.neethi.PolicyComponent;
-import org.apache.ws.secpolicy.SP12Constants;
-import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.SP12Constants;
public abstract class AbstractSecurityAssertion implements Assertion {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AsymmetricBinding.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AsymmetricBinding.java
index 4feeaf7..c165ad7 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AsymmetricBinding.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AsymmetricBinding.java
@@ -24,6 +24,7 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.All;
+import org.apache.neethi.Assertion;
import org.apache.neethi.ExactlyOne;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyComponent;
@@ -86,7 +87,7 @@
}
AlgorithmSuite algorithmSuite = getAlgorithmSuite();
- List configs = algorithmSuite.getConfigurations();
+ List<Assertion> configs = algorithmSuite.getConfigurations();
Policy policy = new Policy();
ExactlyOne exactlyOne = new ExactlyOne();
@@ -96,7 +97,7 @@
All wrapper;
AsymmetricBinding asymmetricBinding;
- for (Iterator iterator = configs.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = configs.iterator(); iterator.hasNext();) {
wrapper = new All();
asymmetricBinding = new AsymmetricBinding(this.version);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java
index 0c441d8..ae4cfbf 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/ContentEncryptedElements.java
@@ -25,15 +25,14 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.PolicyComponent;
-import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SP12Constants;
import org.apache.ws.secpolicy.SPConstants;
public class ContentEncryptedElements extends AbstractSecurityAssertion {
- private ArrayList xPathExpressions = new ArrayList();
+ private ArrayList<String> xPathExpressions = new ArrayList<String>();
- private HashMap declaredNamespaces = new HashMap();
+ private HashMap<String, String> declaredNamespaces = new HashMap<String, String>();
private String xPathVersion;
@@ -44,7 +43,7 @@
/**
* @return Returns the xPathExpressions.
*/
- public ArrayList getXPathExpressions() {
+ public ArrayList<String> getXPathExpressions() {
return xPathExpressions;
}
@@ -67,7 +66,7 @@
xPathVersion = pathVersion;
}
- public HashMap getDeclaredNamespaces () {
+ public HashMap<String, String> getDeclaredNamespaces () {
return declaredNamespaces;
}
@@ -90,9 +89,9 @@
String xpathExpression;
- for (Iterator iterator = xPathExpressions.iterator(); iterator
+ for (Iterator<String> iterator = xPathExpressions.iterator(); iterator
.hasNext();) {
- xpathExpression = (String) iterator.next();
+ xpathExpression = iterator.next();
// <sp:XPath ..>
writeStartElement(writer, prefix, SPConstants.XPATH_EXPR, namespaceURI);
writer.writeCharacters(xpathExpression);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/KerberosToken.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/KerberosToken.java
new file mode 100644
index 0000000..3963da9
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/KerberosToken.java
@@ -0,0 +1,152 @@
+/*
+ * 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.ws.secpolicy.model;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import org.apache.ws.secpolicy.Constants;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+
+public class KerberosToken extends Token {
+
+ private boolean requiresKerberosV5Token;
+
+ private boolean requiresGssKerberosV5Token;
+
+ private boolean requiresKeyIdentifierReference;
+
+ private String tokenVersionAndType = Constants.WSS_KERBEROS_TOKEN11;
+
+ public String getTokenVersionAndType() {
+ return tokenVersionAndType;
+ }
+
+ public void setTokenVersionAndType(String tokenVersionAndType) {
+ this.tokenVersionAndType = tokenVersionAndType;
+ }
+
+ public boolean isRequiresKerberosV5Token() {
+ return requiresKerberosV5Token;
+ }
+
+ public void setRequiresKerberosV5Token(boolean requiresKerberosV5Token) {
+ this.requiresKerberosV5Token = requiresKerberosV5Token;
+ }
+
+ public boolean isRequiresGssKerberosV5Token() {
+ return requiresGssKerberosV5Token;
+ }
+
+ public void setRequiresGssKerberosV5Token(boolean requiresGssKerberosV5Token) {
+ this.requiresGssKerberosV5Token = requiresGssKerberosV5Token;
+ }
+
+ public boolean isRequiresKeyIdentifierReference() {
+ return requiresKeyIdentifierReference;
+ }
+
+ public void setRequiresKeyIdentifierReference(boolean
+ requiresKeyIdentifierReference) {
+ this.requiresKeyIdentifierReference = requiresKeyIdentifierReference;
+ }
+
+ public KerberosToken(int version) {
+ setVersion(version);
+ }
+
+ public QName getName() {
+ if (version == SPConstants.SP_V12) {
+ return SP12Constants.KERBEROS_TOKEN;
+ }
+ else {
+ return SP11Constants.KERBEROS_TOKEN;
+ }
+ }
+
+ public void serialize(XMLStreamWriter writer) throws XMLStreamException {
+ String localName = getName().getLocalPart();
+ String namespaceURI = getName().getNamespaceURI();
+
+ String prefix = writer.getPrefix(namespaceURI);
+
+ if (prefix == null) {
+ prefix = getName().getPrefix();
+ writer.setPrefix(prefix, namespaceURI);
+ }
+
+ // <sp:KerberosToken>
+ writer.writeStartElement(prefix, localName, namespaceURI);
+
+ String inclusion;
+
+ if (version == SPConstants.SP_V12) {
+ inclusion = SP12Constants.getAttributeValueFromInclusion(getInclusion());
+ } else {
+ inclusion = SP11Constants.getAttributeValueFromInclusion(getInclusion());
+ }
+
+ if (inclusion != null) {
+ writer.writeAttribute(prefix, namespaceURI,
+ SPConstants.ATTR_INCLUDE_TOKEN, inclusion);
+ }
+
+ String pPrefix = writer.getPrefix(SPConstants.POLICY.getNamespaceURI());
+ if (pPrefix == null) {
+ pPrefix = SPConstants.POLICY.getPrefix();
+ writer.setPrefix(pPrefix, SPConstants.POLICY.getNamespaceURI());
+ }
+
+ // <wsp:Policy>
+ writer.writeStartElement(pPrefix, SPConstants.POLICY.getLocalPart(),
+ SPConstants.POLICY.getNamespaceURI());
+
+ if (isRequiresKerberosV5Token()) {
+ // <sp:WssKerberosV5ApReqToken11 />
+ writer.writeStartElement(prefix,SPConstants.REQUIRE_KERBEROS_V5_TOKEN_11,
+ namespaceURI);
+ writer.writeEndElement();
+ }
+
+ if (isRequiresGssKerberosV5Token()) {
+ // <sp:WssGssKerberosV5ApReqToken11 ... />
+ writer.writeStartElement(prefix,
+ SPConstants.REQUIRE_KERBEROS_GSS_V5_TOKEN_11,
+ namespaceURI);
+ writer.writeEndElement();
+ }
+
+ if (isRequiresKeyIdentifierReference()) {
+ // <sp:RequireKeyIdentifierReference />
+ writer.writeStartElement(prefix,
+ SPConstants.REQUIRE_KEY_IDENTIFIRE_REFERENCE,
+ namespaceURI);
+ writer.writeEndElement();
+ }
+
+ // </wsp:Policy>
+ writer.writeEndElement();
+
+ // </sp:KerberosToken>
+ writer.writeEndElement();
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java
index e940d43..854afc4 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredElements.java
@@ -31,9 +31,9 @@
public class RequiredElements extends AbstractSecurityAssertion {
- private ArrayList xPathExpressions = new ArrayList();
+ private ArrayList<String> xPathExpressions = new ArrayList<String>();
- private HashMap declaredNamespaces = new HashMap();
+ private HashMap<String, String> declaredNamespaces = new HashMap<String, String>();
private String xPathVersion;
@@ -44,7 +44,7 @@
/**
* @return Returns the xPathExpressions.
*/
- public ArrayList getXPathExpressions() {
+ public ArrayList<String> getXPathExpressions() {
return xPathExpressions;
}
@@ -67,7 +67,7 @@
xPathVersion = pathVersion;
}
- public HashMap getDeclaredNamespaces () {
+ public HashMap<String, String> getDeclaredNamespaces () {
return declaredNamespaces;
}
@@ -90,7 +90,7 @@
String xpathExpression;
- for (Iterator iterator = xPathExpressions.iterator(); iterator
+ for (Iterator<String> iterator = xPathExpressions.iterator(); iterator
.hasNext();) {
xpathExpression = (String) iterator.next();
// <sp:XPath ..>
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java
index 3ccd530..af03d06 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/RequiredParts.java
@@ -24,13 +24,12 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.PolicyComponent;
-import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SP12Constants;
import org.apache.ws.secpolicy.SPConstants;
public class RequiredParts extends AbstractSecurityAssertion {
- private ArrayList headers = new ArrayList();
+ private ArrayList<Header> headers = new ArrayList<Header>();
public RequiredParts(int version) {
setVersion(version);
@@ -39,7 +38,7 @@
/**
* @return Returns the headers.
*/
- public ArrayList getHeaders() {
+ public ArrayList<Header> getHeaders() {
return this.headers;
}
@@ -68,8 +67,8 @@
writeStartElement(writer, prefix, localName, namespaceURI);
Header header;
- for (Iterator iterator = headers.iterator(); iterator.hasNext();) {
- header = (Header) iterator.next();
+ for (Iterator<Header> iterator = headers.iterator(); iterator.hasNext();) {
+ header = iterator.next();
// <sp:Header Name=".." Namespace=".." />
writeStartElement(writer, prefix, SPConstants.HEADER, namespaceURI);
// Name attribute is optional
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
index 915f2f1..e5ba5f1 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
@@ -31,9 +31,9 @@
public class SignedEncryptedElements extends AbstractSecurityAssertion {
- private ArrayList xPathExpressions = new ArrayList();
+ private ArrayList<String> xPathExpressions = new ArrayList<String>();
- private HashMap declaredNamespaces = new HashMap();
+ private HashMap<String, String> declaredNamespaces = new HashMap<String, String>();
private String xPathVersion;
@@ -51,7 +51,7 @@
/**
* @return Returns the xPathExpressions.
*/
- public ArrayList getXPathExpressions() {
+ public ArrayList<String> getXPathExpressions() {
return xPathExpressions;
}
@@ -81,7 +81,7 @@
return signedElemets;
}
- public HashMap getDeclaredNamespaces () {
+ public HashMap<String, String> getDeclaredNamespaces () {
return declaredNamespaces;
}
@@ -104,9 +104,9 @@
String xpathExpression;
- for (Iterator iterator = xPathExpressions.iterator(); iterator
+ for (Iterator<String> iterator = xPathExpressions.iterator(); iterator
.hasNext();) {
- xpathExpression = (String) iterator.next();
+ xpathExpression = iterator.next();
// <sp:XPath ..>
writeStartElement(writer, prefix, SPConstants.XPATH_EXPR, namespaceURI);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
index cdf3576..543412e 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
@@ -34,7 +34,7 @@
private boolean attachments;
- private ArrayList headers = new ArrayList();
+ private ArrayList<Header> headers = new ArrayList<Header>();
private boolean signedParts;
@@ -84,7 +84,7 @@
/**
* @return Returns the headers.
*/
- public ArrayList getHeaders() {
+ public ArrayList<Header> getHeaders() {
return this.headers;
}
@@ -137,8 +137,8 @@
}
Header header;
- for (Iterator iterator = headers.iterator(); iterator.hasNext();) {
- header = (Header) iterator.next();
+ for (Iterator<Header> iterator = headers.iterator(); iterator.hasNext();) {
+ header = iterator.next();
// <sp:Header Name=".." Namespace=".." />
writeStartElement(writer, prefix, SPConstants.HEADER, namespaceURI);
// Name attribute is optional
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
index 9a0a7b5..5473529 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SupportingToken.java
@@ -43,7 +43,7 @@
private AlgorithmSuite algorithmSuite;
- private ArrayList tokens = new ArrayList();
+ private ArrayList<Token> tokens = new ArrayList<Token>();
private SignedEncryptedElements signedElements;
@@ -84,7 +84,7 @@
/**
* @return Returns the token.
*/
- public ArrayList getTokens() {
+ public ArrayList<Token> getTokens() {
return tokens;
}
@@ -289,25 +289,29 @@
writeStartElement(writer, SPConstants.POLICY);
Token token;
- for (Iterator iterator = getTokens().iterator(); iterator.hasNext();) {
+ for (Iterator<Token> iterator = getTokens().iterator(); iterator.hasNext();) {
// [Token Assertion] +
- token = (Token) iterator.next();
+ token = iterator.next();
token.serialize(writer);
}
if (signedParts != null) {
signedParts.serialize(writer);
-
- } else if (signedElements != null) {
+ }
+
+ if (signedElements != null) {
signedElements.serialize(writer);
-
- } else if (encryptedParts != null) {
+ }
+
+ if (encryptedParts != null) {
encryptedParts.serialize(writer);
-
- } else if (encryptedElements != null) {
+ }
+
+ if (encryptedElements != null) {
encryptedElements.serialize(writer);
}
+
// </wsp:Policy>
writer.writeEndElement();
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SymmetricBinding.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SymmetricBinding.java
index b4c04f9..9ee821a 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SymmetricBinding.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SymmetricBinding.java
@@ -24,12 +24,14 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.All;
+import org.apache.neethi.Assertion;
import org.apache.neethi.ExactlyOne;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyComponent;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SP12Constants;
import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.WSSPolicyException;
public class SymmetricBinding extends SymmetricAsymmetricBindingBase {
@@ -52,11 +54,13 @@
/**
* @param encryptionToken The encryptionToken to set.
+ * @throws WSSPolicyException
*/
- public void setEncryptionToken(EncryptionToken encryptionToken) {
+ public void setEncryptionToken(EncryptionToken encryptionToken)
+ throws WSSPolicyException {
if(this.protectionToken != null) {
-// throw new WSSPolicyException("Cannot use an EncryptionToken in a " +
-// "SymmetricBinding when there is a ProtectionToken");
+ throw new WSSPolicyException("Cannot use an EncryptionToken in a " +
+ "SymmetricBinding when there is a ProtectionToken");
}
this.encryptionToken = encryptionToken;
}
@@ -70,12 +74,14 @@
/**
* @param protectionToken The protectionToken to set.
+ * @throws WSSPolicyException
*/
- public void setProtectionToken(ProtectionToken protectionToken) {
+ public void setProtectionToken(ProtectionToken protectionToken)
+ throws WSSPolicyException {
if(this.encryptionToken != null || this.signatureToken != null) {
-// throw new WSSPolicyException("Cannot use a ProtectionToken in a " +
-// "SymmetricBinding when there is a SignatureToken or an" +
-// "EncryptionToken");
+ throw new WSSPolicyException("Cannot use a ProtectionToken in a " +
+ "SymmetricBinding when there is a SignatureToken or an" +
+ "EncryptionToken");
}
this.protectionToken = protectionToken;
}
@@ -89,11 +95,13 @@
/**
* @param signatureToken The signatureToken to set.
+ * @throws WSSPolicyException
*/
- public void setSignatureToken(SignatureToken signatureToken) {
+ public void setSignatureToken(SignatureToken signatureToken)
+ throws WSSPolicyException {
if(this.protectionToken != null) {
-// throw new WSSPolicyException("Cannot use a SignatureToken in a " +
-// "SymmetricBinding when there is a ProtectionToken");
+ throw new WSSPolicyException("Cannot use a SignatureToken in a " +
+ "SymmetricBinding when there is a ProtectionToken");
}
this.signatureToken = signatureToken;
}
@@ -113,7 +121,7 @@
}
AlgorithmSuite algorithmSuite = getAlgorithmSuite();
- List configurations = algorithmSuite.getConfigurations();
+ List<Assertion> configurations = algorithmSuite.getConfigurations();
Policy policy = new Policy();
ExactlyOne exactlyOne = new ExactlyOne();
@@ -121,30 +129,33 @@
All wrapper;
SymmetricBinding symmetricBinding;
- for (Iterator iterator = configurations.iterator(); iterator.hasNext();) {
- wrapper = new All();
- symmetricBinding = new SymmetricBinding(this.version);
-
- algorithmSuite = (AlgorithmSuite) iterator.next();
- symmetricBinding.setAlgorithmSuite(algorithmSuite);
-
- symmetricBinding.setEncryptionToken(getEncryptionToken());
- symmetricBinding.setEntireHeadersAndBodySignatures(isEntireHeadersAndBodySignatures());
- symmetricBinding.setIncludeTimestamp(isIncludeTimestamp());
- symmetricBinding.setLayout(getLayout());
- symmetricBinding.setProtectionOrder(getProtectionOrder());
- symmetricBinding.setProtectionToken(getProtectionToken());
- symmetricBinding.setSignatureProtection(isSignatureProtection());
- symmetricBinding.setSignatureToken(getSignatureToken());
- symmetricBinding.setSignedEndorsingSupportingTokens(getSignedEndorsingSupportingTokens());
- symmetricBinding.setSignedSupportingToken(getSignedSupportingToken());
- symmetricBinding.setTokenProtection(isTokenProtection());
-
- symmetricBinding.setNormalized(true);
- wrapper.addPolicyComponent(symmetricBinding);
- exactlyOne.addPolicyComponent(wrapper);
+ try {
+ for (Iterator<Assertion> iterator = configurations.iterator(); iterator.hasNext();) {
+ wrapper = new All();
+ symmetricBinding = new SymmetricBinding(this.version);
+
+ algorithmSuite = (AlgorithmSuite) iterator.next();
+ symmetricBinding.setAlgorithmSuite(algorithmSuite);
+
+ symmetricBinding.setEncryptionToken(getEncryptionToken());
+ symmetricBinding.setEntireHeadersAndBodySignatures(isEntireHeadersAndBodySignatures());
+ symmetricBinding.setIncludeTimestamp(isIncludeTimestamp());
+ symmetricBinding.setLayout(getLayout());
+ symmetricBinding.setProtectionOrder(getProtectionOrder());
+ symmetricBinding.setProtectionToken(getProtectionToken());
+ symmetricBinding.setSignatureProtection(isSignatureProtection());
+ symmetricBinding.setSignatureToken(getSignatureToken());
+ symmetricBinding.setSignedEndorsingSupportingTokens(getSignedEndorsingSupportingTokens());
+ symmetricBinding.setSignedSupportingToken(getSignedSupportingToken());
+ symmetricBinding.setTokenProtection(isTokenProtection());
+
+ symmetricBinding.setNormalized(true);
+ wrapper.addPolicyComponent(symmetricBinding);
+ exactlyOne.addPolicyComponent(wrapper);
+ }
+ } catch (WSSPolicyException e) {
+ throw new IllegalArgumentException(e);
}
-
policy.addPolicyComponent(exactlyOne);
return policy;
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java
index e9472cd..892cbc6 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java
@@ -25,6 +25,7 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.All;
+import org.apache.neethi.Assertion;
import org.apache.neethi.ExactlyOne;
import org.apache.neethi.Policy;
import org.apache.neethi.PolicyComponent;
@@ -36,7 +37,7 @@
private TransportToken transportToken;
- private List transportBindings;
+ private List<TransportBinding> transportBindings;
private boolean tokenProtection;
@@ -74,7 +75,7 @@
}
- public List getConfigurations() {
+ public List<TransportBinding> getConfigurations() {
return transportBindings;
}
@@ -87,7 +88,7 @@
public void addConfiguration(TransportBinding transportBinding) {
if (transportBindings == null) {
- transportBindings = new ArrayList();
+ transportBindings = new ArrayList<TransportBinding>();
}
transportBindings.add(transportBinding);
}
@@ -106,7 +107,7 @@
}
AlgorithmSuite algorithmSuite = getAlgorithmSuite();
- List configurations = algorithmSuite.getConfigurations();
+ List<Assertion> configurations = algorithmSuite.getConfigurations();
if (configurations != null && configurations.size() == 1) {
setNormalized(true);
@@ -119,7 +120,7 @@
All wrapper;
TransportBinding transportBinding;
- for (Iterator iterator = configurations.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = configurations.iterator(); iterator.hasNext();) {
wrapper = new All();
transportBinding = new TransportBinding(this.getVersion());
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust10.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust10.java
index 9ad5b3d..474c395 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust10.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust10.java
@@ -23,7 +23,6 @@
import org.apache.neethi.PolicyComponent;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
-import org.apache.ws.secpolicy.SP12Constants;
/**
* Model bean to capture Trust10 assertion info
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust13.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust13.java
index 56e14b2..7b1154d 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust13.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/Trust13.java
@@ -21,7 +21,6 @@
import javax.xml.stream.XMLStreamWriter;
import org.apache.neethi.PolicyComponent;
-import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java
index 2d99399..0558db7 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/UsernameToken.java
@@ -109,46 +109,41 @@
if (inclusion != null) {
writeAttribute(writer, prefix, namespaceURI, SPConstants.ATTR_INCLUDE_TOKEN, inclusion);
}
-
- if (isUseUTProfile10() || isUseUTProfile11()) {
- // <wsp:Policy>
- writeStartElement(writer, SPConstants.POLICY);
-
- // CHECKME
- if (isUseUTProfile10()) {
- // <sp:WssUsernameToken10 />
- writeStartElement(writer, prefix, SPConstants.USERNAME_TOKEN10 , namespaceURI);
- } else {
- // <sp:WssUsernameToken11 />
- writeStartElement(writer, prefix, SPConstants.USERNAME_TOKEN11 , namespaceURI);
+
+ // <wsp:Policy>
+ writeStartElement(writer, SPConstants.POLICY);
+
+ if (version == SPConstants.SP_V12) {
+
+ if (isNoPassword()) {
+ writeEmptyElement(writer, prefix, SPConstants.NO_PASSWORD, namespaceURI);
+ } else if (isHashPassword()){
+ writeEmptyElement(writer, prefix, SPConstants.HASH_PASSWORD, namespaceURI);
}
- if (version == SPConstants.SP_V12) {
-
- if (isNoPassword()) {
- writeEmptyElement(writer, prefix, SPConstants.NO_PASSWORD, namespaceURI);
- } else if (isHashPassword()){
- writeEmptyElement(writer, prefix, SPConstants.HASH_PASSWORD, namespaceURI);
- }
-
- if (isDerivedKeys()) {
- writeEmptyElement(writer, prefix, SPConstants.REQUIRE_DERIVED_KEYS, namespaceURI);
- } else if (isExplicitDerivedKeys()) {
- writeEmptyElement(writer, prefix, SPConstants.REQUIRE_EXPLICIT_DERIVED_KEYS, namespaceURI);
- } else if (isImpliedDerivedKeys()) {
- writeEmptyElement(writer, prefix, SPConstants.REQUIRE_IMPLIED_DERIVED_KEYS, namespaceURI);
- }
-
+ if (isDerivedKeys()) {
+ writeEmptyElement(writer, prefix, SPConstants.REQUIRE_DERIVED_KEYS, namespaceURI);
+ } else if (isExplicitDerivedKeys()) {
+ writeEmptyElement(writer, prefix, SPConstants.REQUIRE_EXPLICIT_DERIVED_KEYS, namespaceURI);
+ } else if (isImpliedDerivedKeys()) {
+ writeEmptyElement(writer, prefix, SPConstants.REQUIRE_IMPLIED_DERIVED_KEYS, namespaceURI);
}
- writer.writeEndElement();
-
- // </wsp:Policy>
- writer.writeEndElement();
-
+
+ }
+
+ if (isUseUTProfile10()) {
+ // <sp:WssUsernameToken10 />
+ writeEmptyElement(writer, prefix, SPConstants.USERNAME_TOKEN10 , namespaceURI);
+ } else if(isUseUTProfile11()) {
+ // <sp:WssUsernameToken11 />
+ writeEmptyElement(writer, prefix, SPConstants.USERNAME_TOKEN11 , namespaceURI);
}
+ // </wsp:Policy>
writer.writeEndElement();
+
// </sp:UsernameToken>
+ writer.writeEndElement();
}
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AlgorithmSuiteBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AlgorithmSuiteBuilder.java
index cd6596c..444f567 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AlgorithmSuiteBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AlgorithmSuiteBuilder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- Iterator iterAlterns = policy.getAlternatives();
- List assertions = ((List) iterAlterns.next());
+ Iterator<List<Assertion>> iterAlterns = policy.getAlternatives();
+ List<Assertion> assertions = iterAlterns.next();
processAlternative(assertions, algorithmSuite);
@@ -49,8 +49,8 @@
}
- private void processAlternative(List assertions, AlgorithmSuite algorithmSuite) {
- Iterator iterator = assertions.iterator();
+ private void processAlternative(List<Assertion> assertions, AlgorithmSuite algorithmSuite) {
+ Iterator<Assertion> iterator = assertions.iterator();
Assertion assertion = ((Assertion) iterator.next());
String name = assertion.getName().getLocalPart();
try {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
index 773a163..b57eaca 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/AsymmetricBindingBuilder.java
@@ -43,8 +43,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), asymmetricBinding);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), asymmetricBinding);
/*
* since there should be only one alternative
@@ -55,13 +55,13 @@
return asymmetricBinding;
}
- private void processAlternative(List assertions, AsymmetricBinding asymmetricBinding) {
+ private void processAlternative(List<Assertion> assertions, AsymmetricBinding asymmetricBinding) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP11Constants.INITIATOR_TOKEN.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptionTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptionTokenBuilder.java
new file mode 100644
index 0000000..72bb876
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptionTokenBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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.ws.secpolicy11.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.EncryptionToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class EncryptionTokenBuilder implements AssertionBuilder<OMElement> {
+
+ public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+ EncryptionToken encrToken = new EncryptionToken(SPConstants.SP_V11);
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), encrToken);
+ break; // since there should be only one alternative ..
+ }
+
+ return encrToken;
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] {SP11Constants.ENCRYPTION_TOKEN};
+ }
+
+ private void processAlternative(List<Assertion> assertions, EncryptionToken parent) {
+ Object token = assertions.get(0);
+
+ if (token instanceof Token) {
+ parent.setToken((Token) token);
+ }
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/InitiatorTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/InitiatorTokenBuilder.java
index 38ad413..52f8bdb 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/InitiatorTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/InitiatorTokenBuilder.java
@@ -40,19 +40,19 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), initiatorToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), initiatorToken);
break; // TODO process all the token that must be set ..
}
return initiatorToken;
}
- private void processAlternative(List assertions, InitiatorToken parent) {
+ private void processAlternative(List<Assertion> assertions, InitiatorToken parent) {
Object token;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
token = iterator.next();
if (token instanceof Token) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/IssuedTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/IssuedTokenBuilder.java
index 0df9307..46e81e3 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/IssuedTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/IssuedTokenBuilder.java
@@ -83,9 +83,9 @@
Policy policy = PolicyEngine.getPolicy(policyElement);
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator
.hasNext();) {
- processAlternative((List) iterator.next(), issuedToken);
+ processAlternative(iterator.next(), issuedToken);
break; // since there should be only one alternative ..
}
}
@@ -97,12 +97,12 @@
return new QName[] { SP11Constants.ISSUED_TOKEN };
}
- private void processAlternative(List assertions, IssuedToken parent) {
+ private void processAlternative(List<Assertion> assertions, IssuedToken parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP11Constants.REQUIRE_DERIVED_KEYS.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/KerberosTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/KerberosTokenBuilder.java
new file mode 100644
index 0000000..53719d0
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/KerberosTokenBuilder.java
@@ -0,0 +1,84 @@
+/*
+ * 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.ws.secpolicy11.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.KerberosToken;
+
+/**
+ * Builder for {@link KerberosToken} assertion (WS Security Policy version 1.1)
+ */
+public class KerberosTokenBuilder implements AssertionBuilder<OMElement> {
+ public Assertion build(OMElement element, AssertionBuilderFactory arg1)
+ throws IllegalArgumentException {
+ KerberosToken kerberosToken = new KerberosToken(SPConstants.SP_V11);
+
+ OMElement policyElement = element.getFirstElement();
+
+ // Process token inclusion
+ OMAttribute includeAttr = element.getAttribute(SP11Constants.INCLUDE_TOKEN);
+
+ if (includeAttr != null) {
+ int inclusion = SP11Constants.getInclusionFromAttributeValue(
+ includeAttr.getAttributeValue());
+ kerberosToken.setInclusion(inclusion);
+ }
+
+ if (policyElement != null) {
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = policy.normalize(false);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), kerberosToken);
+ // there should be only one alternative
+ break;
+ }
+ }
+ return kerberosToken;
+ }
+
+ private void processAlternative(List<Assertion> assertions, KerberosToken parent) {
+ for (Assertion assertion : assertions) {
+ QName name = assertion.getName();
+ if (SP11Constants.REQUIRE_KERBEROS_V5_TOKEN_11.equals(name)) {
+ parent.setRequiresKerberosV5Token(true);
+ } else if (SP11Constants.REQUIRE_KERBEROS_GSS_V5_TOKEN_11.equals(name)) {
+ parent.setRequiresGssKerberosV5Token(true);
+ } else if (SP11Constants.REQUIRE_KEY_IDENTIFIRE_REFERENCE.equals(name)) {
+ parent.setRequiresKeyIdentifierReference(true);
+ }
+ }
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] { SP11Constants.KERBEROS_TOKEN };
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/LayoutBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/LayoutBuilder.java
index 94b1e9d..6eb16d4 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/LayoutBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/LayoutBuilder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext(); ) {
- processAlternative((List) iterator.next(), layout);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext(); ) {
+ processAlternative(iterator.next(), layout);
break; // there should be only one alternative
}
@@ -52,10 +52,10 @@
return new QName[] {SP11Constants.LAYOUT};
}
- public void processAlternative(List assertions, Layout parent) {
+ public void processAlternative(List<Assertion> assertions, Layout parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion assertion = iterator.next();
QName qname = assertion.getName();
if (SP11Constants.STRICT.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/ProtectionTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/ProtectionTokenBuilder.java
index 91c075a..fe4e882 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/ProtectionTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/ProtectionTokenBuilder.java
@@ -39,8 +39,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), protectionToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), protectionToken);
break; // since there should be only one alternative ..
}
@@ -51,7 +51,7 @@
return new QName[] {SP11Constants.PROTECTION_TOKEN};
}
- private void processAlternative(List assertions, ProtectionToken parent) {
+ private void processAlternative(List<Assertion> assertions, ProtectionToken parent) {
Object token = assertions.get(0);
if (token instanceof Token) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/RecipientTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/RecipientTokenBuilder.java
index 41575c8..c1393fc 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/RecipientTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/RecipientTokenBuilder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), recipientToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), recipientToken);
/*
* for the moment we will pick the first token specified in the policy
@@ -52,12 +52,12 @@
return recipientToken;
}
- private void processAlternative(List assertions, RecipientToken parent) {
+ private void processAlternative(List<Assertion> assertions, RecipientToken parent) {
Assertion assertion;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
if (assertion instanceof Token) {
parent.setToken((Token) assertion);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignatureTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignatureTokenBuilder.java
new file mode 100644
index 0000000..b81230f
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignatureTokenBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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.ws.secpolicy11.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP11Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.SignatureToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class SignatureTokenBuilder implements AssertionBuilder<OMElement> {
+
+ public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+ SignatureToken sigToken = new SignatureToken(SPConstants.SP_V11);
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), sigToken);
+ break; // since there should be only one alternative ..
+ }
+
+ return sigToken;
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] {SP11Constants.SIGNATURE_TOKEN};
+ }
+
+ private void processAlternative(List<Assertion> assertions, SignatureToken parent) {
+ Object token = assertions.get(0);
+
+ if (token instanceof Token) {
+ parent.setToken((Token) token);
+ }
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
index 8caa5f5..07df503 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
@@ -43,7 +43,7 @@
processElement((OMElement) iterator.next(), signedEncryptedParts);
}
- // Presense of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
+ // Presence of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
if(!element.getChildren().hasNext()){
signedEncryptedParts.setBody(true);
signedEncryptedParts.setSignAllHeaders(true);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
index d37bbe8..5e9306c 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
@@ -62,8 +62,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), supportingToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), supportingToken);
/*
* for the moment we will say there should be only one alternative
*/
@@ -80,11 +80,11 @@
SP11Constants.SIGNED_ENDORSING_SUPPORTING_TOKENS};
}
- private void processAlternative(List assertions, SupportingToken supportingToken) {
+ private void processAlternative(List<Assertion> assertions, SupportingToken supportingToken) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion primitive = (Assertion) iterator.next();
+ Assertion primitive = iterator.next();
QName qname = primitive.getName();
if (SP11Constants.ALGORITHM_SUITE.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SymmetricBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SymmetricBindingBuilder.java
index 48011be..d3d2f72 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SymmetricBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SymmetricBindingBuilder.java
@@ -28,9 +28,12 @@
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SP11Constants;
import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.WSSPolicyException;
import org.apache.ws.secpolicy.model.AlgorithmSuite;
+import org.apache.ws.secpolicy.model.EncryptionToken;
import org.apache.ws.secpolicy.model.Layout;
import org.apache.ws.secpolicy.model.ProtectionToken;
+import org.apache.ws.secpolicy.model.SignatureToken;
import org.apache.ws.secpolicy.model.SymmetricBinding;
public class SymmetricBindingBuilder implements AssertionBuilder<OMElement> {
@@ -41,8 +44,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternatives((List) iterator.next(), symmetricBinding);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternatives(iterator.next(), symmetricBinding);
/*
* since there should be only one alternative ..
@@ -56,37 +59,47 @@
return new QName[] {SP11Constants.SYMMETRIC_BINDING};
}
- private void processAlternatives(List assertions, SymmetricBinding symmetricBinding) {
+ private void processAlternatives(List<Assertion> assertions, SymmetricBinding symmetricBinding) {
Assertion assertion;
QName name;
-
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
- name = assertion.getName();
-
- if (SP11Constants.ALGORITHM_SUITE.equals(name)) {
- symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
-
- } else if (SP11Constants.LAYOUT.equals(name)) {
- symmetricBinding.setLayout((Layout) assertion);
-
- } else if (SP11Constants.INCLUDE_TIMESTAMP.equals(name)) {
- symmetricBinding.setIncludeTimestamp(true);
-
- } else if (SP11Constants.PROTECTION_TOKEN.equals(name)) {
- symmetricBinding.setProtectionToken((ProtectionToken) assertion);
-
- } else if (SPConstants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
- symmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
-
- } else if (SPConstants.SIGN_BEFORE_ENCRYPTING.equals(name.getLocalPart())) {
- symmetricBinding.setProtectionOrder(SPConstants.SIGN_BEFORE_ENCRYPTING);
-
- } else if (SPConstants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name.getLocalPart())) {
- symmetricBinding.setEntireHeadersAndBodySignatures(true);
- } else if (SP11Constants.ENCRYPT_SIGNATURE.equals(name)) {
- symmetricBinding.setSignatureProtection(true);
- }
- }
+ try {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
+ name = assertion.getName();
+
+ if (SP11Constants.ALGORITHM_SUITE.equals(name)) {
+ symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
+
+ } else if (SP11Constants.LAYOUT.equals(name)) {
+ symmetricBinding.setLayout((Layout) assertion);
+
+ } else if (SP11Constants.INCLUDE_TIMESTAMP.equals(name)) {
+ symmetricBinding.setIncludeTimestamp(true);
+
+ } else if (SP11Constants.PROTECTION_TOKEN.equals(name)) {
+ symmetricBinding.setProtectionToken((ProtectionToken) assertion);
+
+ } else if (SPConstants.ENCRYPT_BEFORE_SIGNING.equals(name.getLocalPart())) {
+ symmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
+
+ } else if (SPConstants.SIGN_BEFORE_ENCRYPTING.equals(name.getLocalPart())) {
+ symmetricBinding.setProtectionOrder(SPConstants.SIGN_BEFORE_ENCRYPTING);
+
+ } else if (SPConstants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name.getLocalPart())) {
+ symmetricBinding.setEntireHeadersAndBodySignatures(true);
+
+ } else if (SP11Constants.ENCRYPT_SIGNATURE.equals(name)) {
+ symmetricBinding.setSignatureProtection(true);
+
+ } else if (SP11Constants.ENCRYPTION_TOKEN.equals(name)) {
+ symmetricBinding.setEncryptionToken((EncryptionToken) assertion);
+
+ } else if (SP11Constants.SIGNATURE_TOKEN.equals(name)) {
+ symmetricBinding.setSignatureToken((SignatureToken) assertion);
+ }
+ }
+ } catch (WSSPolicyException e) {
+ throw new IllegalArgumentException(e);
+ }
}
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportBindingBuilder.java
index 4809b4c..a1198c8 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportBindingBuilder.java
@@ -42,8 +42,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportBinding, factory);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), transportBinding, factory);
/*
* since there should be only one alternative
@@ -58,11 +58,11 @@
return new QName[] {SP11Constants.TRANSPORT_BINDING};
}
- private void processAlternative(List assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
+ private void processAlternative(List<Assertion> assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
- for (Iterator iterator = assertionList.iterator(); iterator.hasNext(); ) {
+ for (Iterator<Assertion> iterator = assertionList.iterator(); iterator.hasNext(); ) {
- Assertion primitive = (Assertion) iterator.next();
+ Assertion primitive = iterator.next();
QName name = primitive.getName();
if (name.equals(SP11Constants.ALGORITHM_SUITE)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportTokenBuilder.java
index 1eeb524..e99eb0d 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/TransportTokenBuilder.java
@@ -20,7 +20,6 @@
import javax.xml.namespace.QName;
-import org.apache.axiom.om.OMAttribute;
import org.apache.axiom.om.OMElement;
import org.apache.neethi.Assertion;
import org.apache.neethi.AssertionBuilderFactory;
@@ -43,8 +42,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), transportToken);
break; // since there should be only one alternative
}
@@ -55,10 +54,10 @@
return new QName[] {SP11Constants.TRANSPORT_TOKEN};
}
- private void processAlternative(List assertions, TransportToken parent) {
+ private void processAlternative(List<Assertion> assertions, TransportToken parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion primtive = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion primtive = iterator.next();
QName qname = primtive.getName();
if (SP11Constants.HTTPS_TOKEN.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
index 74a70e7..d9a4016 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
@@ -53,13 +53,13 @@
OMElement policyElement = element.getFirstElement();
- if (policyElement != null && !policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
+ if (policyElement != null && policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), usernameToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), usernameToken);
/*
* since there should be only one alternative
@@ -75,10 +75,10 @@
return new QName[] {SP11Constants.USERNAME_TOKEN};
}
- private void processAlternative(List assertions, UsernameToken parent) {
+ private void processAlternative(List<Assertion> assertions, UsernameToken parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion assertion = iterator.next();
QName qname = assertion.getName();
if (SP11Constants.WSS_USERNAME_TOKEN10.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS10Builder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS10Builder.java
index aeaf0c6..2102394 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS10Builder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS10Builder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss10);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), wss10);
/*
* since there should be only one alternative
*/
@@ -55,13 +55,13 @@
return new QName[] {SP11Constants.WSS10};
}
- private void processAlternative(List assertions, Wss10 parent) {
+ private void processAlternative(List<Assertion> assertions, Wss10 parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext(); ) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext(); ) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP11Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS11Builder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS11Builder.java
index 177ac5e..a084576 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS11Builder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/WSS11Builder.java
@@ -39,8 +39,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss11);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), wss11);
/*
* since there should be only one alternative
*/
@@ -54,13 +54,13 @@
return new QName[] {SP11Constants.WSS11};
}
- private void processAlternative(List assertions, Wss11 parent) {
+ private void processAlternative(List<Assertion> assertions, Wss11 parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP11Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
index c08cc21..5cd4b01 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
@@ -77,9 +77,9 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator
.hasNext();) {
- processAlternative((List) iterator.next(), x509Token);
+ processAlternative(iterator.next(), x509Token);
/*
* since there should be only one alternative
@@ -105,12 +105,12 @@
return x509Token;
}
- private void processAlternative(List assertions, X509Token parent) {
+ private void processAlternative(List<Assertion> assertions, X509Token parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP11Constants.REQUIRE_KEY_IDENTIFIRE_REFERENCE.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
index 5a6b0ee..e484ed4 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AlgorithmSuiteBuilder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- Iterator iterAlterns = policy.getAlternatives();
- List assertions = ((List) iterAlterns.next());
+ Iterator<List<Assertion>> iterAlterns = policy.getAlternatives();
+ List<Assertion> assertions = iterAlterns.next();
processAlternative(assertions, algorithmSuite);
@@ -49,9 +49,9 @@
}
- private void processAlternative(List assertions, AlgorithmSuite algorithmSuite) {
- Iterator iterator = assertions.iterator();
- Assertion assertion = ((Assertion) iterator.next());
+ private void processAlternative(List<Assertion> assertions, AlgorithmSuite algorithmSuite) {
+ Iterator<Assertion> iterator = assertions.iterator();
+ Assertion assertion = iterator.next();
String name = assertion.getName().getLocalPart();
try {
algorithmSuite.setAlgorithmSuite(name);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
index d6cee0c..b29e061 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/AsymmetricBindingBuilder.java
@@ -43,8 +43,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), asymmetricBinding);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), asymmetricBinding);
/*
* since there should be only one alternative
@@ -55,13 +55,13 @@
return asymmetricBinding;
}
- private void processAlternative(List assertions, AsymmetricBinding asymmetricBinding) {
+ private void processAlternative(List<Assertion> assertions, AsymmetricBinding asymmetricBinding) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP12Constants.INITIATOR_TOKEN.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptionTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptionTokenBuilder.java
new file mode 100644
index 0000000..5ee6e14
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptionTokenBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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.ws.secpolicy12.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.EncryptionToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class EncryptionTokenBuilder implements AssertionBuilder<OMElement> {
+
+ public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+ EncryptionToken encrToken = new EncryptionToken(SPConstants.SP_V12);
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), encrToken);
+ break; // since there should be only one alternative ..
+ }
+
+ return encrToken;
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] {SP12Constants.ENCRYPTION_TOKEN};
+ }
+
+ private void processAlternative(List<Assertion> assertions, EncryptionToken parent) {
+ Object token = assertions.get(0);
+
+ if (token instanceof Token) {
+ parent.setToken((Token) token);
+ }
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
index c5faa09..b953ac0 100644
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/HttpsTokenBuilder.java
@@ -54,8 +54,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), httpsToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), httpsToken);
break; // since there should be only one alternative
}
}
@@ -82,10 +82,10 @@
* @param assertions the list of assertions to be searched through.
* @param parent the https token, that is to be populated with retrieved data.
*/
- private void processAlternative(List assertions, HttpsToken parent) {
+ private void processAlternative(List<Assertion> assertions, HttpsToken parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion primtive = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion primtive = iterator.next();
QName qname = primtive.getName();
if (qname != null) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/InitiatorTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/InitiatorTokenBuilder.java
index dd4aba8..c9f3aa8 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/InitiatorTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/InitiatorTokenBuilder.java
@@ -40,19 +40,19 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), initiatorToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), initiatorToken);
break; // TODO process all the token that must be set ..
}
return initiatorToken;
}
- private void processAlternative(List assertions, InitiatorToken parent) {
+ private void processAlternative(List<Assertion> assertions, InitiatorToken parent) {
Object token;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
token = iterator.next();
if (token instanceof Token) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/IssuedTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/IssuedTokenBuilder.java
index f0fb936..ad06422 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/IssuedTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/IssuedTokenBuilder.java
@@ -84,9 +84,9 @@
Policy policy = PolicyEngine.getPolicy(policyElement);
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator
.hasNext();) {
- processAlternative((List) iterator.next(), issuedToken);
+ processAlternative(iterator.next(), issuedToken);
break; // since there should be only one alternative ..
}
}
@@ -98,12 +98,12 @@
return new QName[] { SP12Constants.ISSUED_TOKEN };
}
- private void processAlternative(List assertions, IssuedToken parent) {
+ private void processAlternative(List<Assertion> assertions, IssuedToken parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP12Constants.REQUIRE_DERIVED_KEYS.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/KerberosTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/KerberosTokenBuilder.java
new file mode 100644
index 0000000..59d2c66
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/KerberosTokenBuilder.java
@@ -0,0 +1,84 @@
+/*
+ * 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.ws.secpolicy12.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAttribute;
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.KerberosToken;
+
+/**
+ * Builder for {@link KerberosToken} assertion (WS Security Policy version 1.2)
+ */
+public class KerberosTokenBuilder implements AssertionBuilder<OMElement> {
+ public Assertion build(OMElement element, AssertionBuilderFactory arg1)
+ throws IllegalArgumentException {
+ KerberosToken kerberosToken = new KerberosToken(SPConstants.SP_V12);
+
+ OMElement policyElement = element.getFirstElement();
+
+ // Process token inclusion
+ OMAttribute includeAttr = element.getAttribute(SP12Constants.INCLUDE_TOKEN);
+
+ if (includeAttr != null) {
+ int inclusion = SP12Constants.getInclusionFromAttributeValue(
+ includeAttr.getAttributeValue());
+ kerberosToken.setInclusion(inclusion);
+ }
+
+ if (policyElement != null) {
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = policy.normalize(false);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), kerberosToken);
+ // there should be only one alternative
+ break;
+ }
+ }
+ return kerberosToken;
+ }
+
+ private void processAlternative(List<Assertion> assertions, KerberosToken parent) {
+ for (Assertion assertion : assertions) {
+ QName name = assertion.getName();
+ if (SP12Constants.REQUIRE_KERBEROS_V5_TOKEN_11.equals(name)) {
+ parent.setRequiresKerberosV5Token(true);
+ } else if (SP12Constants.REQUIRE_KERBEROS_GSS_V5_TOKEN_11.equals(name)) {
+ parent.setRequiresGssKerberosV5Token(true);
+ } else if (SP12Constants.REQUIRE_KEY_IDENTIFIRE_REFERENCE.equals(name)) {
+ parent.setRequiresKeyIdentifierReference(true);
+ }
+ }
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] { SP12Constants.KERBEROS_TOKEN };
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/LayoutBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/LayoutBuilder.java
index f599df2..a717b1a 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/LayoutBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/LayoutBuilder.java
@@ -38,8 +38,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext(); ) {
- processAlternative((List) iterator.next(), layout);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext(); ) {
+ processAlternative(iterator.next(), layout);
break; // there should be only one alternative
}
@@ -50,10 +50,10 @@
return new QName[] {SP12Constants.LAYOUT};
}
- public void processAlternative(List assertions, Layout parent) {
+ public void processAlternative(List<Assertion> assertions, Layout parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ Assertion assertion = iterator.next();
QName qname = assertion.getName();
if (SP12Constants.STRICT.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/ProtectionTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/ProtectionTokenBuilder.java
index 15d7bf4..860a81a 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/ProtectionTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/ProtectionTokenBuilder.java
@@ -39,8 +39,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), protectionToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), protectionToken);
break; // since there should be only one alternative ..
}
@@ -51,7 +51,7 @@
return new QName[] {SP12Constants.PROTECTION_TOKEN};
}
- private void processAlternative(List assertions, ProtectionToken parent) {
+ private void processAlternative(List<Assertion> assertions, ProtectionToken parent) {
Object token = assertions.get(0);
if (token instanceof Token) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/RecipientTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/RecipientTokenBuilder.java
index 0e36654..b15692e 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/RecipientTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/RecipientTokenBuilder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), recipientToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), recipientToken);
/*
* for the moment we will pick the first token specified in the policy
@@ -52,11 +52,11 @@
return recipientToken;
}
- private void processAlternative(List assertions, RecipientToken parent) {
+ private void processAlternative(List<Assertion> assertions, RecipientToken parent) {
Assertion assertion;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
assertion = (Assertion) iterator.next();
if (assertion instanceof Token) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignatureTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignatureTokenBuilder.java
new file mode 100644
index 0000000..123e4e5
--- /dev/null
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignatureTokenBuilder.java
@@ -0,0 +1,65 @@
+/*
+ * 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.ws.secpolicy12.builders;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.AssertionBuilderFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.neethi.builders.AssertionBuilder;
+import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.SPConstants;
+import org.apache.ws.secpolicy.model.SignatureToken;
+import org.apache.ws.secpolicy.model.Token;
+
+public class SignatureTokenBuilder implements AssertionBuilder<OMElement> {
+
+ public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+ SignatureToken sigToken = new SignatureToken(SPConstants.SP_V12);
+
+ Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+ policy = (Policy) policy.normalize(false);
+
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), sigToken);
+ break; // since there should be only one alternative ..
+ }
+
+ return sigToken;
+ }
+
+ public QName[] getKnownElements() {
+ return new QName[] {SP12Constants.SIGNATURE_TOKEN};
+ }
+
+ private void processAlternative(List<Assertion> assertions, SignatureToken parent) {
+ Object token = assertions.get(0);
+
+ if (token instanceof Token) {
+ parent.setToken((Token) token);
+ }
+ }
+}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
index 7e796a4..d008781 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
@@ -45,7 +45,7 @@
.booleanValue());
}
- //presense of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
+ //Presence of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
if(!element.getChildren().hasNext()){
signedEncryptedParts.setBody(true);
signedEncryptedParts.setSignAllHeaders(true);
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
index 8aab7eb..a01dd65 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
@@ -78,8 +78,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), supportingToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), supportingToken);
/*
* for the moment we will say there should be only one alternative
*/
@@ -101,11 +101,11 @@
};
}
- private void processAlternative(List assertions, SupportingToken supportingToken) {
+ private void processAlternative(List<Assertion> assertions, SupportingToken supportingToken) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
- Assertion primitive = (Assertion) iterator.next();
+ Assertion primitive = iterator.next();
QName qname = primitive.getName();
if (SP12Constants.ALGORITHM_SUITE.equals(qname)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SymmetricBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SymmetricBindingBuilder.java
index ec9bfbd..fc62786 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SymmetricBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SymmetricBindingBuilder.java
@@ -28,9 +28,12 @@
import org.apache.neethi.builders.AssertionBuilder;
import org.apache.ws.secpolicy.SPConstants;
import org.apache.ws.secpolicy.SP12Constants;
+import org.apache.ws.secpolicy.WSSPolicyException;
import org.apache.ws.secpolicy.model.AlgorithmSuite;
+import org.apache.ws.secpolicy.model.EncryptionToken;
import org.apache.ws.secpolicy.model.Layout;
import org.apache.ws.secpolicy.model.ProtectionToken;
+import org.apache.ws.secpolicy.model.SignatureToken;
import org.apache.ws.secpolicy.model.SymmetricBinding;
public class SymmetricBindingBuilder implements AssertionBuilder<OMElement> {
@@ -41,8 +44,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternatives((List) iterator.next(), symmetricBinding);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternatives(iterator.next(), symmetricBinding);
/*
* since there should be only one alternative ..
@@ -56,37 +59,47 @@
return new QName[] {SP12Constants.SYMMETRIC_BINDING};
}
- private void processAlternatives(List assertions, SymmetricBinding symmetricBinding) {
+ private void processAlternatives(List<Assertion> assertions, SymmetricBinding symmetricBinding) {
Assertion assertion;
QName name;
-
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
- name = assertion.getName();
-
- if (SP12Constants.ALGORITHM_SUITE.equals(name)) {
- symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
-
- } else if (SP12Constants.LAYOUT.equals(name)) {
- symmetricBinding.setLayout((Layout) assertion);
-
- } else if (SP12Constants.INCLUDE_TIMESTAMP.equals(name)) {
- symmetricBinding.setIncludeTimestamp(true);
-
- } else if (SP12Constants.PROTECTION_TOKEN.equals(name)) {
- symmetricBinding.setProtectionToken((ProtectionToken) assertion);
-
- } else if (SP12Constants.ENCRYPT_BEFORE_SIGNING.equals(name)) {
- symmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
-
- } else if (SP12Constants.SIGN_BEFORE_ENCRYPTING.equals(name)) {
- symmetricBinding.setProtectionOrder(SPConstants.SIGN_BEFORE_ENCRYPTING);
-
- } else if (SP12Constants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name)) {
- symmetricBinding.setEntireHeadersAndBodySignatures(true);
- } else if (SP12Constants.ENCRYPT_SIGNATURE.equals(name)) {
- symmetricBinding.setSignatureProtection(true);
- }
- }
+ try {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
+ name = assertion.getName();
+
+ if (SP12Constants.ALGORITHM_SUITE.equals(name)) {
+ symmetricBinding.setAlgorithmSuite((AlgorithmSuite) assertion);
+
+ } else if (SP12Constants.LAYOUT.equals(name)) {
+ symmetricBinding.setLayout((Layout) assertion);
+
+ } else if (SP12Constants.INCLUDE_TIMESTAMP.equals(name)) {
+ symmetricBinding.setIncludeTimestamp(true);
+
+ } else if (SP12Constants.PROTECTION_TOKEN.equals(name)) {
+ symmetricBinding.setProtectionToken((ProtectionToken) assertion);
+
+ } else if (SP12Constants.ENCRYPT_BEFORE_SIGNING.equals(name)) {
+ symmetricBinding.setProtectionOrder(SPConstants.ENCRYPT_BEFORE_SIGNING);
+
+ } else if (SP12Constants.SIGN_BEFORE_ENCRYPTING.equals(name)) {
+ symmetricBinding.setProtectionOrder(SPConstants.SIGN_BEFORE_ENCRYPTING);
+
+ } else if (SP12Constants.ONLY_SIGN_ENTIRE_HEADERS_AND_BODY.equals(name)) {
+ symmetricBinding.setEntireHeadersAndBodySignatures(true);
+
+ } else if (SP12Constants.ENCRYPT_SIGNATURE.equals(name)) {
+ symmetricBinding.setSignatureProtection(true);
+
+ } else if (SP12Constants.ENCRYPTION_TOKEN.equals(name)) {
+ symmetricBinding.setEncryptionToken((EncryptionToken) assertion);
+
+ } else if (SP12Constants.SIGNATURE_TOKEN.equals(name)) {
+ symmetricBinding.setSignatureToken((SignatureToken) assertion);
+ }
+ }
+ } catch (WSSPolicyException e) {
+ throw new IllegalArgumentException(e);
+ }
}
}
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java
index 8b8a542..e9bb2ab 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java
@@ -42,8 +42,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportBinding, factory);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), transportBinding, factory);
/*
* since there should be only one alternative
@@ -58,11 +58,11 @@
return new QName[] {SP12Constants.TRANSPORT_BINDING};
}
- private void processAlternative(List assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
+ private void processAlternative(List<Assertion> assertionList, TransportBinding parent, AssertionBuilderFactory factory) {
- for (Iterator iterator = assertionList.iterator(); iterator.hasNext(); ) {
+ for (Iterator<Assertion> iterator = assertionList.iterator(); iterator.hasNext(); ) {
- Assertion primitive = (Assertion) iterator.next();
+ Assertion primitive = iterator.next();
QName name = primitive.getName();
if (name.equals(SP12Constants.ALGORITHM_SUITE)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
index f232061..4363f76 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportTokenBuilder.java
@@ -37,8 +37,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), transportToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), transportToken);
break; // since there should be only one alternative
}
@@ -49,8 +49,8 @@
return new QName[] {SP12Constants.TRANSPORT_TOKEN};
}
- private void processAlternative(List assertions, TransportToken parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ private void processAlternative(List<Assertion> assertions, TransportToken parent) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
Assertion primtive = (Assertion) iterator.next();
QName qname = primtive.getName();
if(SP12Constants.HTTPS_TOKEN.equals(qname)){
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
index f3d901b..4924ddf 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
@@ -58,8 +58,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), usernameToken);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), usernameToken);
/*
* since there should be only one alternative
@@ -75,9 +75,9 @@
return new QName[] {SP12Constants.USERNAME_TOKEN};
}
- private void processAlternative(List assertions, UsernameToken parent) {
+ private void processAlternative(List<Assertion> assertions, UsernameToken parent) {
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
Assertion assertion = (Assertion) iterator.next();
QName qname = assertion.getName();
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS10Builder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS10Builder.java
index f993b51..b744eda 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS10Builder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS10Builder.java
@@ -40,8 +40,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss10);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), wss10);
/*
* since there should be only one alternative
*/
@@ -55,13 +55,13 @@
return new QName[] {SP12Constants.WSS10};
}
- private void processAlternative(List assertions, Wss10 parent) {
+ private void processAlternative(List<Assertion> assertions, Wss10 parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext(); ) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext(); ) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP12Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS11Builder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS11Builder.java
index 079080c..2accec0 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS11Builder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/WSS11Builder.java
@@ -39,8 +39,8 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
- processAlternative((List) iterator.next(), wss11);
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator.hasNext();) {
+ processAlternative(iterator.next(), wss11);
/*
* since there should be only one alternative
*/
@@ -54,13 +54,13 @@
return new QName[] {SP12Constants.WSS11};
}
- private void processAlternative(List assertions, Wss11 parent) {
+ private void processAlternative(List<Assertion> assertions, Wss11 parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP12Constants.MUST_SUPPORT_REF_KEY_IDENTIFIER.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
index fba587c..9a418c3 100755
--- a/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
+++ b/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
@@ -79,9 +79,9 @@
Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
policy = (Policy) policy.normalize(false);
- for (Iterator iterator = policy.getAlternatives(); iterator
+ for (Iterator<List<Assertion>> iterator = policy.getAlternatives(); iterator
.hasNext();) {
- processAlternative((List) iterator.next(), x509Token);
+ processAlternative(iterator.next(), x509Token);
/*
* since there should be only one alternative
@@ -107,12 +107,12 @@
return x509Token;
}
- private void processAlternative(List assertions, X509Token parent) {
+ private void processAlternative(List<Assertion> assertions, X509Token parent) {
Assertion assertion;
QName name;
- for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
- assertion = (Assertion) iterator.next();
+ for (Iterator<Assertion> iterator = assertions.iterator(); iterator.hasNext();) {
+ assertion = iterator.next();
name = assertion.getName();
if (SP12Constants.REQUIRE_KEY_IDENTIFIRE_REFERENCE.equals(name)) {
diff --git a/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder b/modules/rampart-policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
similarity index 88%
rename from modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
rename to modules/rampart-policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
index a384ca6..4201a92 100644
--- a/modules/rampart-policy/src/main/java/META-INF/services/org.apache.neethi.builders.AssertionBuilder
+++ b/modules/rampart-policy/src/main/resources/META-INF/services/org.apache.neethi.builders.AssertionBuilder
@@ -21,6 +21,9 @@
org.apache.ws.secpolicy11.builders.SymmetricBindingBuilder
org.apache.ws.secpolicy11.builders.IssuedTokenBuilder
org.apache.ws.secpolicy11.builders.RequiredElementsBuilder
+org.apache.ws.secpolicy11.builders.SignatureTokenBuilder
+org.apache.ws.secpolicy11.builders.EncryptionTokenBuilder
+org.apache.ws.secpolicy11.builders.KerberosTokenBuilder
org.apache.ws.secpolicy12.builders.AlgorithmSuiteBuilder
org.apache.ws.secpolicy12.builders.AsymmetricBindingBuilder
org.apache.ws.secpolicy12.builders.EncryptedElementsBuilder
@@ -45,4 +48,7 @@
org.apache.ws.secpolicy12.builders.IssuedTokenBuilder
org.apache.ws.secpolicy12.builders.RequiredElementsBuilder
org.apache.ws.secpolicy12.builders.ContentEncryptedElementsBuilder
-org.apache.ws.secpolicy12.builders.HttpsTokenBuilder
\ No newline at end of file
+org.apache.ws.secpolicy12.builders.HttpsTokenBuilder
+org.apache.ws.secpolicy12.builders.SignatureTokenBuilder
+org.apache.ws.secpolicy12.builders.EncryptionTokenBuilder
+org.apache.ws.secpolicy12.builders.KerberosTokenBuilder
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/java/org/apache/ws/secpolicy/KerberosPolicyTest.java b/modules/rampart-policy/src/test/java/org/apache/ws/secpolicy/KerberosPolicyTest.java
new file mode 100644
index 0000000..26c2c92
--- /dev/null
+++ b/modules/rampart-policy/src/test/java/org/apache/ws/secpolicy/KerberosPolicyTest.java
@@ -0,0 +1,212 @@
+/*
+ * 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.ws.secpolicy;
+
+import static com.google.common.truth.Truth.assertAbout;
+import static org.apache.axiom.truth.xml.XMLTruth.xml;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.StringWriter;
+import java.io.Writer;
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLOutputFactory;
+import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
+
+import junit.framework.TestCase;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.neethi.All;
+import org.apache.neethi.Assertion;
+import org.apache.neethi.ExactlyOne;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyComponent;
+import org.apache.neethi.PolicyEngine;
+import org.apache.ws.secpolicy.model.KerberosToken;
+import org.apache.ws.secpolicy.model.SupportingToken;
+import org.apache.ws.secpolicy.model.Token;
+
+/**
+ * Tests building and serialization of {@link KerberosToken} assertion.
+ */
+public class KerberosPolicyTest extends TestCase {
+ public void testKerberosGssKeyRefPolicy11() throws Exception {
+ System.out.println(getName());
+ File policyFile = new File("src/test/resources/policy/kerberos-gss-keyref-11.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP11Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP11Constants.KERBEROS_TOKEN, true, true, false);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosGssPolicy11() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-gss-11.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP11Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP11Constants.KERBEROS_TOKEN, false, true, false);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosKeyRefPolicy11() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-keyref-11.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP11Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP11Constants.KERBEROS_TOKEN, true, false, true);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosPolicy11() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-11.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP11Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP11Constants.KERBEROS_TOKEN, false, false, true);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosGssKeyRefPolicy12() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-gss-keyref-12.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP12Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP12Constants.KERBEROS_TOKEN, true, true, false);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosGssPolicy12() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-gss-12.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP12Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP12Constants.KERBEROS_TOKEN, false, true, false);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosKeyRefPolicy12() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-keyref-12.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP12Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP12Constants.KERBEROS_TOKEN, true, false, true);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ public void testKerberosPolicy12() throws Exception {
+ File policyFile = new File("src/test/resources/policy/kerberos-12.xml");
+ Policy policy = loadPolicy(policyFile);
+ KerberosToken kerberosToken = getKerberosEndorsingSupportingToken(policyFile, policy, SP12Constants.SP_NS);
+ assertKerberosTokenMatches(kerberosToken, SP12Constants.KERBEROS_TOKEN, false, false, true);
+ assertPolicyEquals(policyFile, policy);
+ }
+
+ private KerberosToken getKerberosEndorsingSupportingToken(File policyFile, Policy policy, String namespace) throws XMLStreamException {
+ ExactlyOne exactlyOne = (ExactlyOne) policy.getAssertions().get(0);
+ All all = (All) exactlyOne.getFirstPolicyComponent();
+ List<PolicyComponent> assertions = all.getAssertions();
+
+ QName endSuppTokens = new QName(namespace, SPConstants.ENDORSING_SUPPORTING_TOKENS);
+ SupportingToken endorsingSupportingTokens = (SupportingToken) findAssertion(assertions, endSuppTokens);
+ assertNotNull(String.format("Cannot find any '%s' assertion in policy: %s", endSuppTokens, printPolicy(policy)), endorsingSupportingTokens);
+
+ ArrayList<Token> supportingTokens = endorsingSupportingTokens.getTokens();
+ assertTrue(String.format("Cannot find any supporting tokens in policy: %s", printPolicy(policy)), supportingTokens.size() > 0);
+
+ KerberosToken kerberosToken = findKerberosToken(supportingTokens);
+ assertNotNull(String.format("Cannot find any Kerberos token in policy: %s", printPolicy(policy)), kerberosToken);
+
+ return kerberosToken;
+ }
+
+ private void assertKerberosTokenMatches(KerberosToken kerberosToken, QName expectedName, boolean requiresKeyIdentifierRef,
+ boolean requiresGssKerberosV5, boolean requiresKerberosV5) {
+ assertTrue(String.format("Expected KerberosToken '%s' but got: %s", expectedName, kerberosToken.getName()),
+ expectedName.equals(kerberosToken.getName()));
+ assertEquals("Expected Kerberos token that must be included once.", SPConstants.INCLUDE_TOKEN_ONCE, kerberosToken.getInclusion());
+ assertEquals("Expected KerberosToken that " + (requiresKeyIdentifierRef ? "requires" : "does NOT require") + " key identifier reference",
+ requiresKeyIdentifierRef, kerberosToken.isRequiresKeyIdentifierReference());
+ assertEquals("Expected KerberosToken that " + (requiresGssKerberosV5 ? "requires" : "does NOT require") + " GSS-API KerberosV5 mechanism token",
+ requiresGssKerberosV5, kerberosToken.isRequiresGssKerberosV5Token());
+ assertEquals("Expected KerberosToken that " + (requiresGssKerberosV5 ? "requires" : "does NOT require") + " KerberosV5 mechanism token",
+ requiresKerberosV5, kerberosToken.isRequiresKerberosV5Token());
+ }
+
+ private void assertPolicyEquals(File expected, Policy actual) throws Exception {
+ StringWriter writer = new StringWriter();
+ serializePolicy(actual, writer);
+ assertAbout(xml())
+ .that(writer.toString())
+ .ignoringWhitespace()
+ .ignoringNamespaceDeclarations()
+ .hasSameContentAs(expected);
+ }
+
+ private Policy loadPolicy(File file) throws IOException {
+ FileReader reader = null;
+ try {
+ reader = new FileReader(file);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(reader);
+ OMElement policyElement = builder.getDocumentElement();
+ return PolicyEngine.getPolicy(policyElement);
+ }
+ finally {
+ if (reader != null) {
+ reader.close();
+ }
+ }
+ }
+
+ private String serializePolicy(Policy policy, Writer writer) throws XMLStreamException {
+ StringWriter stringWriter = new StringWriter();
+ XMLStreamWriter xmlWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
+ policy.serialize(xmlWriter);
+ xmlWriter.flush();
+
+ return stringWriter.toString();
+ }
+
+ private String printPolicy(Policy policy) throws XMLStreamException {
+ StringWriter writer = new StringWriter();
+ serializePolicy(policy, writer);
+
+ return writer.toString();
+ }
+
+ private Assertion findAssertion(List<PolicyComponent> policyComponents, QName name) {
+ for (PolicyComponent policyComponent : policyComponents) {
+ if (policyComponent instanceof Assertion && ((Assertion)policyComponent).getName().equals(name)) {
+ return (Assertion)policyComponent;
+ }
+ }
+
+ return null;
+ }
+
+ private KerberosToken findKerberosToken(ArrayList<Token> tokens) {
+ for (Token token : tokens) {
+ if (token instanceof KerberosToken) {
+ return (KerberosToken)token;
+ }
+ }
+
+ return null;
+ }
+}
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-11.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-11.xml
new file mode 100644
index 0000000..2ccdde0
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-11.xml
@@ -0,0 +1,16 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-12.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-12.xml
new file mode 100644
index 0000000..a272956
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-12.xml
@@ -0,0 +1,16 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-gss-11.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-11.xml
new file mode 100644
index 0000000..c947931
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-11.xml
@@ -0,0 +1,16 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-gss-12.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-12.xml
new file mode 100644
index 0000000..9998a48
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-12.xml
@@ -0,0 +1,16 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-11.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-11.xml
new file mode 100644
index 0000000..9b70e3f
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-11.xml
@@ -0,0 +1,18 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken
+ sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ <sp:RequireKeyIdentifierReference />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-12.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-12.xml
new file mode 100644
index 0000000..a8474ae
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-gss-keyref-12.xml
@@ -0,0 +1,17 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssGssKerberosV5ApReqToken11 />
+ <sp:RequireKeyIdentifierReference />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-11.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-11.xml
new file mode 100644
index 0000000..6d0322a
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-11.xml
@@ -0,0 +1,17 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssKerberosV5ApReqToken11 />
+ <sp:RequireKeyIdentifierReference />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-12.xml b/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-12.xml
new file mode 100644
index 0000000..6bf4ba6
--- /dev/null
+++ b/modules/rampart-policy/src/test/resources/policy/kerberos-keyref-12.xml
@@ -0,0 +1,17 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:EndorsingSupportingTokens>
+ <wsp:Policy>
+ <sp:KerberosToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Once">
+ <wsp:Policy>
+ <sp:WssKerberosV5ApReqToken11 />
+ <sp:RequireKeyIdentifierReference />
+ </wsp:Policy>
+ </sp:KerberosToken>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
\ No newline at end of file
diff --git a/modules/rampart-samples/README.txt b/modules/rampart-samples/README.txt
index 136798c..6a3d376 100644
--- a/modules/rampart-samples/README.txt
+++ b/modules/rampart-samples/README.txt
@@ -11,8 +11,8 @@
- keys - The keystore files that contains the keys used by the samples
-Please use Apache Ant with the build.xml file available here to copy all jars
-and mars to required places.
+Please use Apache Ant with the build.xml file available in the top level directory
+to copy all jars and mars to required places.
- Please copy log4j.jar to AXIS2_HOME/lib directory before trying out samples.
diff --git a/modules/rampart-samples/basic/README.txt b/modules/rampart-samples/basic/README.txt
deleted file mode 100644
index 18f66b1..0000000
--- a/modules/rampart-samples/basic/README.txt
+++ /dev/null
@@ -1,44 +0,0 @@
-********************************************************************************
-**************************** Apache Rampart Samples ****************************
-********************************************************************************
-
-This is a set of Apache Rampart samples which uses configuraiton parameters
-to configure rampart.
-
-Each "sampleX" directory contains :
-
- - client.axis2.xml - Client configuration
- - services.xml - Service configuration
- - src - Source of the sample
- - README.txt - you have to read this :-)
-
-We use two parameters named "InflowSecurity" and "OutflowSecurity" within
-these files to configure rampart.
-
-01.) Rampart Engaged and no configuration
-02.) UsernameToken authentication
-03.) UsernameToken authentication with a plain text password
-04.) Message integrity and non-repudiation with signature
-05.) Encryption
-06.) Sign and encrypt a messages
-07.) Encrypt and sign messages
-08.) Signing twice
-09.) Encryption with a key known to both parties
-10.) MTOM Optimizing base64 content in the secured message
-11.) Dynamic configuration : Get rid of the config files ... let's use code!
-
-You can use the ant build script provided here to run these samples.
-
-Exmaple: Running sample - 01
- - Start two shell instnaces and change to the directory where this file is
- - To start the service:
- $ ant service.01
- - To run client:
- $ ant client.01
-
---------------------------------------------------------------------------------
-NOTE: To view the messages exchanged
- - Change the "client.port" property in the "build.xml" to an available port
- E.g. : <property name="client.port" value="9080"/>
- - Setup tcpmon (http://ws.apache.org/commons/tcpmon/) to listen on the above
- port and to point to port 8080 (value of the service.port property)
\ No newline at end of file
diff --git a/modules/rampart-samples/basic/build.xml b/modules/rampart-samples/basic/build.xml
deleted file mode 100644
index 294e020..0000000
--- a/modules/rampart-samples/basic/build.xml
+++ /dev/null
@@ -1,265 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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 basedir="." default="clean">
-
- <property name="service.repos.dir" value="build/service_repositories"/>
- <property name="client.repos.dir" value="build/client_repositories"/>
- <property name="temp.dir" value="build/temp"/>
- <property name="keys.dir" value="../keys"/>
- <property name="temp.client.dir" value="build/temp_client"/>
-
- <property name="client.port" value="8080"/>
- <property name="server.port" value="8080"/>
-
- <property name="sample.services.url" value="http://localhost:${client.port}/axis2/services"/>
-
- <property environment="env"/>
-
- <property name="lib.dir" value="${env.AXIS2_HOME}/lib"/>
-
- <path id="runtime.classpath">
- <fileset dir="${lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- <pathelement location="${env.AXIS2_HOME}/conf"/>
- </path>
-
- <target name="check.dependency" unless="env.AXIS2_HOME">
- <echo message="AXIS2_HOME must be set"/>
- </target>
-
- <!-- Sample Service 01 -->
- <target name="service.01" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="01"/>
- </target>
-
- <!-- Sample Client 01 -->
- <target name="client.01" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="01"/>
- </target>
-
- <!-- Sample Service 02 -->
- <target name="service.02" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="02"/>
- </target>
-
- <!-- Sample Client 02 -->
- <target name="client.02" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="02"/>
- </target>
-
- <!-- Sample Service 03 -->
- <target name="service.03" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="03"/>
- </target>
-
- <!-- Sample Client 03 -->
- <target name="client.03" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="03"/>
- </target>
-
- <!-- Sample Service 04 -->
- <target name="service.04" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="04"/>
- </target>
-
- <!-- Sample Client 04 -->
- <target name="client.04" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="04"/>
- </target>
-
- <!-- Sample Service 05 -->
- <target name="service.05" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="05"/>
- </target>
-
- <!-- Sample Client 05 -->
- <target name="client.05" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="05"/>
- </target>
-
- <!-- Sample Service 06 -->
- <target name="service.06" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="06"/>
- </target>
-
- <!-- Sample Client 06 -->
- <target name="client.06" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="06"/>
- </target>
-
- <!-- Sample Service 07 -->
- <target name="service.07" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="07"/>
- </target>
-
- <!-- Sample Client 07 -->
- <target name="client.07" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="07"/>
- </target>
-
- <!-- Sample Service 08 -->
- <target name="service.08" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="08"/>
- </target>
-
- <!-- Sample Client 08 -->
- <target name="client.08" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="08"/>
- </target>
-
- <!-- Sample Service 09 -->
- <target name="service.09" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="09"/>
- </target>
-
- <!-- Sample Client 09 -->
- <target name="client.09" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="09"/>
- </target>
-
- <!-- Sample Service 10 -->
- <target name="service.10" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="10"/>
- </target>
-
- <!-- Sample Client 10 -->
- <target name="client.10" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="10"/>
- </target>
-
- <!-- Sample Service 11 -->
- <target name="service.11" if="env.AXIS2_HOME" depends="check.dependency">
- <create.service.repo sample.number="11"/>
- </target>
-
- <!-- Sample Client 11 -->
- <target name="client.11" if="env.AXIS2_HOME" depends="check.dependency">
- <create.and.run.client sample.number="11"/>
- </target>
-
-
- <target name="clean">
- <delete dir="build" />
- </target>
-
- <!-- Macro to create a service repo for a given sample -->
- <macrodef name="create.service.repo">
- <attribute name="sample.number" default="sample"/>
- <sequential>
-
- <property name="modules.dir" value="${env.AXIS2_HOME}/repository/modules/"/>
-
- <mkdir dir="${service.repos.dir}/sample@{sample.number}"/>
- <mkdir dir="${service.repos.dir}/sample@{sample.number}/services"/>
- <mkdir dir="${service.repos.dir}/sample@{sample.number}/modules"/>
-
- <!-- copy modules -->
- <copy todir="${service.repos.dir}/sample@{sample.number}/modules">
- <fileset dir="${modules.dir}">
- <include name="addressing-*.mar"/>
- <include name="rampart-*.mar"/>
- </fileset>
- </copy>
-
- <!-- create service -->
- <mkdir dir="${temp.dir}"/>
- <mkdir dir="${temp.dir}/META-INF"/>
-
- <!-- Compile service -->
- <javac srcdir="sample@{sample.number}/src" destdir="${temp.dir}">
- <classpath>
- <fileset dir="${lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- </classpath>
- <exclude name="**/Client.java"/>
- </javac>
-
- <copy file="sample@{sample.number}/services.xml" tofile="${temp.dir}/META-INF/services.xml" overwrite="true"/>
- <copy file="${keys.dir}/service.jks" tofile="${temp.dir}/service.jks" overwrite="true"/>
- <copy file="${keys.dir}/service.properties" tofile="${temp.dir}/service.properties" overwrite="true"/>
-
- <jar destfile="${service.repos.dir}/sample@{sample.number}/services/sample@{sample.number}.aar">
- <fileset dir="${temp.dir}"></fileset>
- </jar>
-
- <delete dir="${temp.dir}" />
- <!-- start SimpleHTTPserver -->
- <java classname="org.apache.axis2.transport.http.SimpleHTTPServer" fork="true">
- <arg value="${service.repos.dir}/sample@{sample.number}"/>
- <arg value="-p${server.port}"/>
- <classpath refid="runtime.classpath"/>
- </java>
-
- </sequential>
- </macrodef>
-
- <macrodef name="create.and.run.client">
- <attribute name="sample.number" default="sample"/>
- <sequential>
-
- <property name="modules.dir" value="${env.AXIS2_HOME}/repository/modules/"/>
-
- <!-- Create the client repo -->
- <mkdir dir="${client.repos.dir}/sample@{sample.number}"/>
- <mkdir dir="${client.repos.dir}/sample@{sample.number}/conf"/>
- <mkdir dir="${client.repos.dir}/sample@{sample.number}/modules"/>
-
- <!-- Copy axis2.xml file -->
- <copy file="sample@{sample.number}/client.axis2.xml" tofile="${client.repos.dir}/sample@{sample.number}/conf/axis2.xml" overwrite="true"/>
-
- <!-- copy modules -->
- <copy todir="${client.repos.dir}/sample@{sample.number}/modules">
- <fileset dir="${modules.dir}">
- <include name="addressing-*.mar"/>
- <include name="rampart-*.mar"/>
- </fileset>
- </copy>
-
- <mkdir dir="${temp.client.dir}"/>
-
- <!-- Compile client -->
- <javac srcdir="sample@{sample.number}/src" destdir="${temp.client.dir}">
- <classpath>
- <fileset dir="${lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- </classpath>
- <exclude name="**/SimpleService.java"/>
- </javac>
-
- <copy file="${keys.dir}/client.jks" tofile="${temp.client.dir}/client.jks" overwrite="true"/>
- <copy file="${keys.dir}/client.properties" tofile="${temp.client.dir}/client.properties" overwrite="true"/>
-
-
- <!-- Run client -->
- <java classname="org.apache.rampart.samples.sample@{sample.number}.Client" fork="true">
- <arg value="${sample.services.url}/sample@{sample.number}"/>
- <arg value="${client.repos.dir}/sample@{sample.number}"/>
- <classpath>
- <path refid="runtime.classpath"/>
- <dirset dir="${temp.client.dir}" />
- </classpath>
- </java>
-
-<!-- <delete dir="${temp.client.dir}"/> -->
- </sequential>
- </macrodef>
-
-</project>
diff --git a/modules/rampart-samples/basic/sample01/README.txt b/modules/rampart-samples/basic/sample01/README.txt
deleted file mode 100644
index a4c35f9..0000000
--- a/modules/rampart-samples/basic/sample01/README.txt
+++ /dev/null
@@ -1,6 +0,0 @@
-Rampart Engaged and no configuration
-
-This sample shows that Apache Rampart does not work on the messages when simply
-engagd without any configuration
-
-Note: <module ref="rampart"/> in both client.axis2.xml and services.xml
\ No newline at end of file
diff --git a/modules/rampart-samples/basic/sample01/client.axis2.xml b/modules/rampart-samples/basic/sample01/client.axis2.xml
deleted file mode 100644
index 5a1988b..0000000
--- a/modules/rampart-samples/basic/sample01/client.axis2.xml
+++ /dev/null
@@ -1,465 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
- <module ref="rampart"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample01/services.xml b/modules/rampart-samples/basic/sample01/services.xml
deleted file mode 100644
index f76daf9..0000000
--- a/modules/rampart-samples/basic/sample01/services.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-1 : No Security-->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample01.SimpleService</parameter>
-
- <module ref="rampart" />
-
-</service>
diff --git a/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/Client.java b/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/Client.java
deleted file mode 100644
index b47c6be..0000000
--- a/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample01;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample01.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/SimpleService.java b/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/SimpleService.java
deleted file mode 100644
index 3247722..0000000
--- a/modules/rampart-samples/basic/sample01/src/org/apache/rampart/samples/sample01/SimpleService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample01;
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample02/README.txt b/modules/rampart-samples/basic/sample02/README.txt
deleted file mode 100644
index de24747..0000000
--- a/modules/rampart-samples/basic/sample02/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-UsernameToken authentication
-
-The client is configured to add a UsernameToken to the outgoing message.
- - See the "OutflowSecurity" parameter in the client.axis2.xml
-
-The service is configured to process it.
- - See the "InflowSecurity" parameter in the services.xml
-
-Note how org.apache.rampart.samples.sample02.PWCBHandler supplies the password
-to wss4j to compute the digest for comparison.
diff --git a/modules/rampart-samples/basic/sample02/client.axis2.xml b/modules/rampart-samples/basic/sample02/client.axis2.xml
deleted file mode 100644
index f292c27..0000000
--- a/modules/rampart-samples/basic/sample02/client.axis2.xml
+++ /dev/null
@@ -1,474 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>UsernameToken Timestamp</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample02.PWCBHandler</passwordCallbackClass>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample02/services.xml b/modules/rampart-samples/basic/sample02/services.xml
deleted file mode 100644
index ac94b4b..0000000
--- a/modules/rampart-samples/basic/sample02/services.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-2 : Timestamp and UsernameToken-->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample02.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken Timestamp</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample02.PWCBHandler</passwordCallbackClass>
- </action>
- </parameter>
-</service>
diff --git a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/Client.java b/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/Client.java
deleted file mode 100644
index 542ed61..0000000
--- a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample02;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample02.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/PWCBHandler.java b/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/PWCBHandler.java
deleted file mode 100644
index 84c3c5d..0000000
--- a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/PWCBHandler.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample02;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
- String id = pwcb.getIdentifier();
- if("bob".equals(id)) {
- pwcb.setPassword("bobPW");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/SimpleService.java b/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/SimpleService.java
deleted file mode 100644
index 3249257..0000000
--- a/modules/rampart-samples/basic/sample02/src/org/apache/rampart/samples/sample02/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample02;
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample03/README.txt b/modules/rampart-samples/basic/sample03/README.txt
deleted file mode 100644
index 1446348..0000000
--- a/modules/rampart-samples/basic/sample03/README.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-UsernameToken authentication with a plain text password
-
-The client is configured to add a UsernameToken to the outgoing message.
- - See the "OutflowSecurity" parameter in the client.axis2.xml
- - Note the <passwordType>PasswordText</passwordType> element
-
-The service is configured to process it.
- - See the "InflowSecurity" parameter in the services.xml
-
-Note how org.apache.rampart.samples.sample03.PWCBHandler authenticates the
-password
-
diff --git a/modules/rampart-samples/basic/sample03/client.axis2.xml b/modules/rampart-samples/basic/sample03/client.axis2.xml
deleted file mode 100644
index 0913fc2..0000000
--- a/modules/rampart-samples/basic/sample03/client.axis2.xml
+++ /dev/null
@@ -1,475 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>UsernameToken</items>
- <user>bob</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample03.PWCBHandler</passwordCallbackClass>
- <passwordType>PasswordText</passwordType>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample03/services.xml b/modules/rampart-samples/basic/sample03/services.xml
deleted file mode 100644
index 1d0e6c5..0000000
--- a/modules/rampart-samples/basic/sample03/services.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-3 : Timestamp and UsernameToken (with plaintext password)-->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample03.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>UsernameToken</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample03.PWCBHandler</passwordCallbackClass>
- </action>
- </parameter>
-</service>
diff --git a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/Client.java b/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/Client.java
deleted file mode 100644
index 9aa0c34..0000000
--- a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample03;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample03.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/PWCBHandler.java b/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/PWCBHandler.java
deleted file mode 100644
index c3459d6..0000000
--- a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/PWCBHandler.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample03;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
-
- for (int i = 0; i < callbacks.length; i++) {
-
- //When the server side need to authenticate the user
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
- if (pwcb.getUsage() == WSPasswordCallback.USERNAME_TOKEN_UNKNOWN) {
- if(pwcb.getIdentifier().equals("bob") && pwcb.getPassword().equals("bobPW")) {
- //If authentication successful, simply return
- return;
- } else {
- throw new UnsupportedCallbackException(callbacks[i], "check failed");
- }
- }
-
- //When the client requests for the password to be added in to the
- //UT element
- pwcb.setPassword("bobPW");
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/SimpleService.java b/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/SimpleService.java
deleted file mode 100644
index 630cf80..0000000
--- a/modules/rampart-samples/basic/sample03/src/org/apache/rampart/samples/sample03/SimpleService.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample03;
-
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.MessageContext;
-import org.apache.axis2.context.OperationContext;
-import org.apache.axis2.wsdl.WSDLConstants;
-import org.apache.ws.security.WSConstants;
-import org.apache.ws.security.WSSecurityEngineResult;
-import org.apache.ws.security.WSUsernameTokenPrincipal;
-import org.apache.ws.security.handler.WSHandlerConstants;
-import org.apache.ws.security.handler.WSHandlerResult;
-
-import java.util.Vector;
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample04/README.txt b/modules/rampart-samples/basic/sample04/README.txt
deleted file mode 100644
index df4599d..0000000
--- a/modules/rampart-samples/basic/sample04/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Message integrity and non-repudiation with signature
-
-Both client and servce are configured to sign the outgoing message and to verify
-the signature of the incoming message using their key pairs.
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
-
diff --git a/modules/rampart-samples/basic/sample04/client.axis2.xml b/modules/rampart-samples/basic/sample04/client.axis2.xml
deleted file mode 100644
index 6bef65d..0000000
--- a/modules/rampart-samples/basic/sample04/client.axis2.xml
+++ /dev/null
@@ -1,483 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <user>client</user>
- <signaturePropFile>client.properties</signaturePropFile>
- <passwordCallbackClass>org.apache.rampart.samples.sample04.PWCBHandler</passwordCallbackClass>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample04/services.xml b/modules/rampart-samples/basic/sample04/services.xml
deleted file mode 100644
index daff4d3..0000000
--- a/modules/rampart-samples/basic/sample04/services.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-4 : Signature only -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample04.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature</items>
- <user>service</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample04.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/Client.java b/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/Client.java
deleted file mode 100644
index e27bf8f..0000000
--- a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample04;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample04.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/PWCBHandler.java b/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/PWCBHandler.java
deleted file mode 100644
index 39dbe59..0000000
--- a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample04;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/SimpleService.java b/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/SimpleService.java
deleted file mode 100644
index 9132949..0000000
--- a/modules/rampart-samples/basic/sample04/src/org/apache/rampart/samples/sample04/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample04;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample05/README.txt b/modules/rampart-samples/basic/sample05/README.txt
deleted file mode 100644
index 8ca2fd8..0000000
--- a/modules/rampart-samples/basic/sample05/README.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-Encrypting messages
-
-Both client and servce are configured to encrypt the outgoing message and to
-decrypt incoming message using their key pairs.
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
-
diff --git a/modules/rampart-samples/basic/sample05/client.axis2.xml b/modules/rampart-samples/basic/sample05/client.axis2.xml
deleted file mode 100644
index 1e2a613..0000000
--- a/modules/rampart-samples/basic/sample05/client.axis2.xml
+++ /dev/null
@@ -1,482 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt</items>
- <encryptionUser>service</encryptionUser>
- <encryptionPropFile>client.properties</encryptionPropFile>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample05.PWCBHandler</passwordCallbackClass>
- <decryptionPropFile>client.properties</decryptionPropFile>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample05/services.xml b/modules/rampart-samples/basic/sample05/services.xml
deleted file mode 100644
index 2b329a8..0000000
--- a/modules/rampart-samples/basic/sample05/services.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-5 : Encryption only -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample05.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample05.PWCBHandler</passwordCallbackClass>
- <decryptionPropFile>service.properties</decryptionPropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt</items>
- <encryptionUser>client</encryptionUser>
- <encryptionPropFile>service.properties</encryptionPropFile>
- </action>
- </parameter>
-
-
-
-</service>
diff --git a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/Client.java b/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/Client.java
deleted file mode 100644
index 7695f88..0000000
--- a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample05;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample05.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/PWCBHandler.java b/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/PWCBHandler.java
deleted file mode 100644
index 8976f73..0000000
--- a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample05;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/SimpleService.java b/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/SimpleService.java
deleted file mode 100644
index 083a322..0000000
--- a/modules/rampart-samples/basic/sample05/src/org/apache/rampart/samples/sample05/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample05;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample06/README.txt b/modules/rampart-samples/basic/sample06/README.txt
deleted file mode 100644
index 54642b5..0000000
--- a/modules/rampart-samples/basic/sample06/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Sign and encrypt messages
-
-Both client and servce are configured to first sign and then encrypt the
-outgoing message and to decrypt and verify the incoming message using their
-key pairs.
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
-
diff --git a/modules/rampart-samples/basic/sample06/client.axis2.xml b/modules/rampart-samples/basic/sample06/client.axis2.xml
deleted file mode 100644
index f3d11f4..0000000
--- a/modules/rampart-samples/basic/sample06/client.axis2.xml
+++ /dev/null
@@ -1,488 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
-
- <!--Signature and Encryption : Using the request's certificate-->
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>client</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample06.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>service</encryptionUser>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample06.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample06/services.xml b/modules/rampart-samples/basic/sample06/services.xml
deleted file mode 100644
index 2c9b865..0000000
--- a/modules/rampart-samples/basic/sample06/services.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-6 : Signature and Encryption : Using the request's certificate-->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample06.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample06.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>service</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample06.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>useReqSigCert</encryptionUser>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/Client.java b/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/Client.java
deleted file mode 100644
index 441950c..0000000
--- a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample06;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample06.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/PWCBHandler.java b/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/PWCBHandler.java
deleted file mode 100644
index 5adb7d5..0000000
--- a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample06;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/SimpleService.java b/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/SimpleService.java
deleted file mode 100644
index 185825e..0000000
--- a/modules/rampart-samples/basic/sample06/src/org/apache/rampart/samples/sample06/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample06;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample07/README.txt b/modules/rampart-samples/basic/sample07/README.txt
deleted file mode 100644
index f524604..0000000
--- a/modules/rampart-samples/basic/sample07/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Encrypt and sign messages
-
-Both client and servce are configured to first encrypt and then sign the
-outgoing message and to verify and decrypt the incoming message using their
-key pairs.
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
-
diff --git a/modules/rampart-samples/basic/sample07/client.axis2.xml b/modules/rampart-samples/basic/sample07/client.axis2.xml
deleted file mode 100644
index 79b5dcd..0000000
--- a/modules/rampart-samples/basic/sample07/client.axis2.xml
+++ /dev/null
@@ -1,487 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
-
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Encrypt Signature</items>
- <user>client</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample07.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>service</encryptionUser>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Encrypt Signature</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample07.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample07/services.xml b/modules/rampart-samples/basic/sample07/services.xml
deleted file mode 100644
index 0b12f2b..0000000
--- a/modules/rampart-samples/basic/sample07/services.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-7 : Encryption and Signature -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample07.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Encrypt Signature</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample07.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Encrypt Signature</items>
- <user>service</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample07.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>useReqSigCert</encryptionUser>
- </action>
- </parameter>
-</service>
diff --git a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/Client.java b/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/Client.java
deleted file mode 100644
index c05d746..0000000
--- a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample07;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample07.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/PWCBHandler.java b/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/PWCBHandler.java
deleted file mode 100644
index c698649..0000000
--- a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample07;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/SimpleService.java b/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/SimpleService.java
deleted file mode 100644
index cd14fc0..0000000
--- a/modules/rampart-samples/basic/sample07/src/org/apache/rampart/samples/sample07/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample07;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample08/README.txt b/modules/rampart-samples/basic/sample08/README.txt
deleted file mode 100644
index 4643e47..0000000
--- a/modules/rampart-samples/basic/sample08/README.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-Signing twice
-
-The client is configured to sign the outgoing message twice
- - See the "OutflowSecurity" parameter in the client.axis2.xml
- - Note the aditional <action> element that defines the second signature.
-
-The service is configured to process it.
- - See the "InflowSecurity" parameter in the services.xml. Not that we
- simply use "Signature Signature" as action items.
-
diff --git a/modules/rampart-samples/basic/sample08/client.axis2.xml b/modules/rampart-samples/basic/sample08/client.axis2.xml
deleted file mode 100644
index 87715ed..0000000
--- a/modules/rampart-samples/basic/sample08/client.axis2.xml
+++ /dev/null
@@ -1,488 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
-
- <module ref="rampart" />
-
- <!-- sample-8 : Double Signature -->
- <parameter name="OutflowSecurity">
-
- <action>
- <items>Timestamp Signature</items>
- <user>client</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample08.PWCBHandler</passwordCallbackClass>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <signatureParts>{Element}{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp</signatureParts>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
-
- <action>
- <items>Signature</items>
- <user>client</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample08.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
-
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample08/services.xml b/modules/rampart-samples/basic/sample08/services.xml
deleted file mode 100644
index 38a8ce2..0000000
--- a/modules/rampart-samples/basic/sample08/services.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-8 : Double Signature -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample08.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Signature</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample08.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/Client.java b/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/Client.java
deleted file mode 100644
index c08c279..0000000
--- a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample08;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample08.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/PWCBHandler.java b/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/PWCBHandler.java
deleted file mode 100644
index 4ec18ce..0000000
--- a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample08;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/SimpleService.java b/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/SimpleService.java
deleted file mode 100644
index a61f706..0000000
--- a/modules/rampart-samples/basic/sample08/src/org/apache/rampart/samples/sample08/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample08;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample09/README.txt b/modules/rampart-samples/basic/sample09/README.txt
deleted file mode 100644
index 7202cc6..0000000
--- a/modules/rampart-samples/basic/sample09/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Encryption with a key known to both parties
-
-Both client and servce are configured to encrypt the outgoing message and to
-decrypt incoming message using a known named key
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
- - Note the use of <EmbeddedKeyName>SessionKey</EmbeddedKeyName>
- - Note that org.apache.rampart.samples.sample09.PWCBHandler sets the key
diff --git a/modules/rampart-samples/basic/sample09/client.axis2.xml b/modules/rampart-samples/basic/sample09/client.axis2.xml
deleted file mode 100644
index b6d6101..0000000
--- a/modules/rampart-samples/basic/sample09/client.axis2.xml
+++ /dev/null
@@ -1,487 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
-
- <module ref="rampart" />
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt</items>
- <user>client</user>
- <encryptionKeyIdentifier>EmbeddedKeyName</encryptionKeyIdentifier>
- <embeddedKeyCallbackClass>org.apache.rampart.samples.sample09.PWCBHandler</embeddedKeyCallbackClass>
- <encryptionPropFile>client.properties</encryptionPropFile>
- <embeddedKeyName>SessionKey</embeddedKeyName>
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample09.PWCBHandler</passwordCallbackClass>
- <decryptionPropFile>client.properties</decryptionPropFile>
- <isBSPCompliant>false</isBSPCompliant>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample09/services.xml b/modules/rampart-samples/basic/sample09/services.xml
deleted file mode 100644
index 9a12629..0000000
--- a/modules/rampart-samples/basic/sample09/services.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-9 : Encryption using a known key -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample09.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample09.PWCBHandler</passwordCallbackClass>
- <decryptionPropFile>service.properties</decryptionPropFile>
- <isBSPCompliant>false</isBSPCompliant>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Encrypt</items>
- <user>service</user>
- <encryptionKeyIdentifier>EmbeddedKeyName</encryptionKeyIdentifier>
- <encryptionPropFile>service.properties</encryptionPropFile>
- <embeddedKeyCallbackClass>org.apache.rampart.samples.sample09.PWCBHandler</embeddedKeyCallbackClass>
- <embeddedKeyName>SessionKey</embeddedKeyName>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/Client.java b/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/Client.java
deleted file mode 100644
index 9478f1e..0000000
--- a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample09;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample09.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/PWCBHandler.java b/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/PWCBHandler.java
deleted file mode 100644
index b1911f7..0000000
--- a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/PWCBHandler.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample09;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- private static final byte[] key = {
-
- (byte) 0x31, (byte) 0xfd, (byte) 0xcb, (byte) 0xda, (byte) 0xfb,
-
- (byte) 0xcd, (byte) 0x6b, (byte) 0xa8, (byte) 0xe6, (byte) 0x19,
-
- (byte) 0xa7, (byte) 0xbf, (byte) 0x51, (byte) 0xf7, (byte) 0xc7,
-
- (byte) 0x3e };
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback) callbacks[i];
-
- if (pwcb.getUsage() == WSPasswordCallback.SECRET_KEY) {
- pwcb.setKey(key);
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/SimpleService.java b/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/SimpleService.java
deleted file mode 100644
index 7862caf..0000000
--- a/modules/rampart-samples/basic/sample09/src/org/apache/rampart/samples/sample09/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample09;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample10/README.txt b/modules/rampart-samples/basic/sample10/README.txt
deleted file mode 100644
index 0ad0c6a..0000000
--- a/modules/rampart-samples/basic/sample10/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Sign and encrypt messages
-
-Both client and servce are configured to first sign and then encrypt the
-outgoing message and to decrypt and verify the incoming message using their
-key pairs.
- - See the "OutflowSecurity" and "InflowSecurity" parameters in the
- client.axis2.xml and serivces.xml files
- - Note the use of <optimizeParts>[xpath expression]</optimizeParts>
diff --git a/modules/rampart-samples/basic/sample10/client.axis2.xml b/modules/rampart-samples/basic/sample10/client.axis2.xml
deleted file mode 100644
index 66ae032..0000000
--- a/modules/rampart-samples/basic/sample10/client.axis2.xml
+++ /dev/null
@@ -1,491 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <module ref="rampart" />
-
- <!-- sample-10 : MTOM optimize encrypted content -->
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>client</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample10.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>service</encryptionUser>
-
- <optimizeParts>//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue</optimizeParts>
-
- </action>
- </parameter>
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample10.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>client.properties</signaturePropFile>
- </action>
- </parameter>
-
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">true</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample10/services.xml b/modules/rampart-samples/basic/sample10/services.xml
deleted file mode 100644
index 8cada6d..0000000
--- a/modules/rampart-samples/basic/sample10/services.xml
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-10 : MTOM optimize encrypted content -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample10.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample10.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>service</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample10.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>useReqSigCert</encryptionUser>
- </action>
- </parameter>
-
-</service>
diff --git a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/Client.java b/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/Client.java
deleted file mode 100644
index 1704002..0000000
--- a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/Client.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample10;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
- client.setOptions(options);
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample10.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/PWCBHandler.java b/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/PWCBHandler.java
deleted file mode 100644
index 9e35df8..0000000
--- a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample10;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/SimpleService.java b/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/SimpleService.java
deleted file mode 100644
index 93743ea..0000000
--- a/modules/rampart-samples/basic/sample10/src/org/apache/rampart/samples/sample10/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample10;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/basic/sample11/README.txt b/modules/rampart-samples/basic/sample11/README.txt
deleted file mode 100644
index 2a60545..0000000
--- a/modules/rampart-samples/basic/sample11/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-Dynamic configuration : Get rid of the config files ... let's use code!
-
-Both client and servce are configured to first sign and then encrypt the
-outgoing message and to decrypt and verify the incoming message using their
-key pairs.
- - Note that we don't use any parameters in the client.axis2.xml
- - See org.apache.rampart.samples.sample11.Client's getOutflowConfiguration()
- getInflowConfiguration() methods and their usage.
diff --git a/modules/rampart-samples/basic/sample11/client.axis2.xml b/modules/rampart-samples/basic/sample11/client.axis2.xml
deleted file mode 100644
index ab60d0c..0000000
--- a/modules/rampart-samples/basic/sample11/client.axis2.xml
+++ /dev/null
@@ -1,464 +0,0 @@
-<!--
- ~ 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.
- -->
-
-<axisconfig name="AxisJava2.0">
- <!-- ================================================= -->
- <!-- Parameters -->
- <!-- ================================================= -->
- <parameter name="hotdeployment">true</parameter>
- <parameter name="hotupdate">false</parameter>
- <parameter name="enableMTOM">false</parameter>
- <parameter name="enableSwA">false</parameter>
-
- <!--Uncomment if you want to enable file caching for attachments -->
- <!--parameter name="cacheAttachments">true</parameter>
- <parameter name="attachmentDIR"></parameter>
- <parameter name="sizeThreshold">4000</parameter-->
-
- <!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions -->
- <!--In some server environments, the available memory heap is limited and can fill up under load -->
- <!--Since in-memory copies of WSDL definitions can be large, some steps can be taken-->
- <!--to reduce the memory needed for the cached WSDL definitions. -->
- <!--parameter name="reduceWSDLMemoryCache">true</parameter-->
-
- <!--This will give out the timout of the configuration contexts, in milliseconds-->
- <parameter name="ConfigContextTimeoutInterval">30000</parameter>
-
- <!--During a fault, stack trace can be sent with the fault message. The following flag will control -->
- <!--that behavior.-->
- <parameter name="sendStacktraceDetailsWithFaults">false</parameter>
-
- <!--If there aren't any information available to find out the fault reason, we set the message of the exception-->
- <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
- <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
- <!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
- <parameter name="DrillDownToRootCauseForFaultReason">false</parameter>
-
- <parameter name="userName">admin</parameter>
- <parameter name="password">axis2</parameter>
-
- <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
- <!--ServicesDirectory only works on the following cases-->
- <!---File based configurator and in that case the value should be a file URL (http:// not allowed)-->
- <!---When creating URL Based configurator with URL “file://” -->
- <!--- War based configurator with expanded case , -->
-
- <!--All the other scenarios it will be ignored.-->
- <!--<parameter name="ServicesDirectory">service</parameter>-->
- <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
- <!--<parameter name="ModulesDirectory">modules</parameter>-->
-
-
-
- <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
- <!--root which can configured using the following contextRoot parameter-->
- <!--<parameter name="contextRoot">axis2</parameter>-->
-
- <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints-->
- <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
- <!--context path to proper Axis2 servlets-->
- <!--<parameter name="servicePath">services</parameter>-->
- <!--<parameter name="restPath">rest</parameter>-->
-
- <!-- Following parameter will completely disable REST handling in Axis2-->
- <parameter name="disableREST" locked="true">false</parameter>
-
- <!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files -->
- <parameter name="disableSOAP12" locked="true">false</parameter>
-
- <!-- ================================================= -->
- <!-- Deployers -->
- <!-- ================================================= -->
-
- <!--Service deployer , this will alow users to deploy AAR or exploded AAR as axis2 services-->
- <deployer extension=".aar" directory="services" class="org.apache.axis2.deployment.ServiceDeployer">
- <serviceBuilderExtension name ="jwsbuilderExt" class="org.apache.axis2.jaxws.framework.JAXWSServiceBuilderExtension"/>
- <serviceBuilderExtension name ="wsdlbuilderExt" class="org.apache.axis2.deployment.WSDLServiceBuilderExtension"/>
- </deployer>
-
- <!--POJO deployer , this will alow users to drop .class file and make that into a service-->
- <deployer extension=".class" directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/>
- <!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>-->
-
-
- <!-- Following parameter will set the host name for the epr-->
- <!--<parameter name="hostname" locked="true">myhost.com</parameter>-->
-
- <!-- If you have a front end host which exposes this webservice using a different public URL -->
- <!-- use this parameter to override autodetected url -->
- <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
-
-
- <!-- The way of adding listener to the system-->
- <!-- <listener class="org.apache.axis2.ObserverIMPL">-->
- <!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>-->
- <!-- </listener>-->
-
- <!-- ================================================= -->
- <!-- Message Receivers -->
- <!-- ================================================= -->
- <!--This is the deafult MessageReceiver for the system , if you want to have MessageReceivers for -->
- <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
- <!--any operation -->
- <!--Note : You can ovrride this for a particular service by adding the same element with your requirement-->
- <messageReceivers>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-only"
- class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
- <messageReceiver mep="http://www.w3.org/2006/01/wsdl/in-out"
- class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
- </messageReceivers>
-
- <!-- ================================================= -->
- <!-- Message Formatter -->
- <!-- ================================================= -->
- <!--Following content type to message formatter mapping can be used to implement support for different message -->
- <!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageFormatters>
- <messageFormatter contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/>
- <messageFormatter contentType="multipart/form-data"
- class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/>
- <messageFormatter contentType="application/xml"
- class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/>
- <messageFormatter contentType="text/xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- <messageFormatter contentType="application/soap+xml"
- class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
- </messageFormatters>
-
- <!-- ================================================= -->
- <!-- Message Builders -->
- <!-- ================================================= -->
- <!--Following content type to builder mapping can be used to implement support for different message -->
- <!--formats in Axis2. These message formats are expected to be resolved based on the content type. -->
- <messageBuilders>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/xml"
- class="org.apache.axis2.builder.ApplicationXMLBuilder"/>
- <messageBuilder contentType="application/x-www-form-urlencoded"
- class="org.apache.axis2.builder.XFormURLEncodedBuilder"/>
- <messageBuilder contentType="multipart/form-data"
- class="org.apache.axis2.builder.MultipartFormDataBuilder"/>
- </messageBuilders>
-
- <!-- ================================================= -->
- <!-- Transport Ins -->
- <!-- ================================================= -->
- <transportReceiver name="http"
- class="org.apache.axis2.transport.http.SimpleHTTPServer">
- <parameter name="port">8080</parameter>
- <!-- Here is the complete list of supported parameters (see example settings further below):
- port: the port to listen on (default 6060)
- hostname: if non-null, url prefix used in reply-to endpoint references (default null)
- originServer: value of http Server header in outgoing messages (default "Simple-Server/1.1")
- requestTimeout: value in millis of time that requests can wait for data (default 20000)
- requestTcpNoDelay: true to maximize performance and minimize latency (default true)
- false to minimize bandwidth consumption by combining segments
- requestCoreThreadPoolSize: number of threads available for request processing (unless queue fills up) (default 25)
- requestMaxThreadPoolSize: number of threads available for request processing if queue fills up (default 150)
- note that default queue never fills up: see HttpFactory
- threadKeepAliveTime: time to keep threads in excess of core size alive while inactive (default 180)
- note that no such threads can exist with default unbounded request queue
- threadKeepAliveTimeUnit: TimeUnit of value in threadKeepAliveTime (default SECONDS) (default SECONDS)
- -->
- <!-- <parameter name="hostname">http://www.myApp.com/ws</parameter> -->
- <!-- <parameter name="originServer">My-Server/1.1</parameter> -->
- <!-- <parameter name="requestTimeout">10000</parameter> -->
- <!-- <parameter name="requestTcpNoDelay">false</parameter> -->
- <!-- <parameter name="requestCoreThreadPoolSize">50</parameter> -->
- <!-- <parameter name="RequestMaxThreadPoolSize">100</parameter> -->
- <!-- <parameter name="threadKeepAliveTime">240000</parameter> -->
- <!-- <parameter name="threadKeepAliveTimeUnit">MILLISECONDS</parameter> -->
- </transportReceiver>
-
- <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
- <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
- <parameter name="myTopicConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">TopicConnectionFactory</parameter>
- </parameter>
-
- <parameter name="myQueueConnectionFactory">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
-
- <parameter name="default">
- <parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
- <parameter name="java.naming.provider.url">tcp://localhost:61616</parameter>
- <parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
- </parameter>
- </transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Listener -->
-
- <!-- the non blocking http transport based on HttpCore + NIO extensions
- <transportReceiver name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOListener">
- <parameter name="port" locked="false">9000</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportReceiver>-->
-
- <!-- the non blocking https transport based on HttpCore + SSL-NIO extensions
- <transportReceiver name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLListener">
- <parameter name="port" locked="false">9002</parameter>
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="SSLVerifyClient">require</parameter>
- supports optional|require or defaults to none -->
- <!--</transportReceiver>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Listener -->
- <!-- This is a sample configuration. It assumes a mail server running in localhost.
- Listener pops messages that comes to the email address red@localhost. Users
- password is red. Listener connect to the server every 3000 milliseconds.
- Parameters with "transport." prefix is Axis2 specific. Others are all from Java Mail API.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportReceiver name="mailto" class="org.apache.axis2.transport.mail.SimpleMailListener">
- <parameter name="mail.pop3.host">localhost</parameter>
- <parameter name="mail.pop3.user">red</parameter>
- <parameter name="mail.store.protocol">pop3</parameter>
- <parameter name="transport.mail.pop3.password">red</parameter>
- <parameter name="transport.mail.replyToAddress">red@localhost</parameter>
- <parameter name="transport.listener.interval">3000</parameter>
- </transportReceiver>-->
-
- <!--Uncomment if you want to have TCP transport support-->
- <!--transportReceiver name="tcp"
- class="org.apache.axis2.transport.tcp.TCPServer">
- <parameter name="port">6060</parameter-->>
- <!--If you want to give your own host address for EPR generation-->
- <!--uncomment the following paramter , and set it as you required.-->
- <!--<parameter name="hostname">tcp://myApp.com/ws</parameter>-->
- <!-- /transportReceiver -->
-
- <!-- ================================================= -->
- <!-- Transport Outs -->
- <!-- ================================================= -->
-
- <!-- transportSender name="tcp"
- class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
- <transportSender name="local"
- class="org.apache.axis2.transport.local.LocalTransportSender"/ -->
- <transportSender name="http"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
-
- <!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages -->
- <!-- <parameter name="OmitSOAP12Action">true</parameter> -->
- </transportSender>
-
- <transportSender name="https"
- class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
- <parameter name="PROTOCOL">HTTP/1.1</parameter>
- <parameter name="Transfer-Encoding">chunked</parameter>
- </transportSender>
- <transportSender name="java"
- class="org.apache.axis2.transport.java.JavaTransportSender"/>
-
- <!--<transportSender name="jms"-->
- <!--class="org.apache.axis2.transport.jms.JMSSender"/>-->
-
- <!-- ================================================= -->
- <!-- Non-blocking http/s Transport Sender -->
-
- <!-- the non-blocking http transport sender based on HttpCore + NIO extensions
- <transportSender name="http" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- </transportSender>-->
-
- <!-- the non-blocking https transport sender based on HttpCore + NIO SSL extensions
- <transportSender name="https" class="org.apache.axis2.transport.nhttp.HttpCoreNIOSSLSender">
- <parameter name="non-blocking" locked="false">true</parameter>
- <parameter name="keystore" locked="false">
- <KeyStore>
- <Location>identity.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- <KeyPassword>password</KeyPassword>
- </KeyStore>
- </parameter>
- <parameter name="truststore" locked="false">
- <TrustStore>
- <Location>trust.jks</Location>
- <Type>JKS</Type>
- <Password>password</Password>
- </TrustStore>
- </parameter>-->
- <!--<parameter name="HostnameVerifier">DefaultAndLocalhost</parameter>
- supports Strict|AllowAll|DefaultAndLocalhost or the default if none specified -->
- <!--</transportSender>-->
-
- <!-- ================================================= -->
- <!-- Mail Transport Sender -->
- <!--Only need to uncomment the sender. Configuration is achieved with every client.
- At any instant mail host should be given. Sample configuration has been given.
- http://people.apache.org/~pzf/SMTPBase64Binding-0.2.html
- -->
- <!-- ================================================= -->
- <!--<transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
- <parameter name="mail.smtp.host">localhost</parameter>
- </transportSender>-->
-
- <!-- ================================================= -->
- <!-- Global Modules -->
- <!-- ================================================= -->
- <!-- Comment this to disable Addressing -->
- <module ref="addressing"/>
-
- <!--Configuring module , providing parameters for modules whether they refer or not-->
- <!--<moduleConfig name="addressing">-->
- <!--<parameter name="addressingPara">N/A</parameter>-->
- <!--</moduleConfig>-->
-
- <!-- ================================================= -->
- <!-- Clustering -->
- <!-- ================================================= -->
- <!-- Configure and uncomment following for preparing Axis2 to a clustered environment -->
- <!--
- <cluster class="org.apache.axis2.cluster.tribes.TribesClusterManager">
- <parameter name="param1">value1</parameter>
- <parameter name="domain">apache.axis2.domain</parameter>
- <parameter name="synchronizeAll">true</parameter>
- <parameter name="maxRetries">10</parameter>
- <configurationManager class="org.apache.axis2.cluster.configuration.TribesConfigurationManager">
- <listener class="org.apache.axis2.cluster.configuration.DefaultConfigurationManagerListener"/>
- </configurationManager>
- <contextManager class="org.apache.axis2.cluster.context.TribesContextManager">
- <listener class="org.apache.axis2.cluster.context.DefaultContextManagerListener"/>
- </contextManager>
- </cluster>
- -->
-
- <!-- ================================================= -->
- <!-- Phases -->
- <!-- ================================================= -->
- <phaseOrder type="InFlow">
- <!-- System predefined phases -->
- <phase name="Transport">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
- <order phase="Transport"/>
- </handler>
- </phase>
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- System predefined phases -->
- <!-- After Postdispatch phase module author or service author can add any phase he want -->
- <phase name="OperationInPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutPhase"/>
- <!--system predefined phase-->
- <!--these phase will run irrespective of the service-->
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
- <phaseOrder type="InFaultFlow">
- <phase name="Addressing">
- <handler name="AddressingBasedDispatcher"
- class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
- <order phase="Addressing"/>
- </handler>
- </phase>
- <phase name="Security"/>
- <phase name="PreDispatch"/>
- <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
- <handler name="RequestURIBasedDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
- <handler name="SOAPActionBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
- <handler name="RequestURIOperationDispatcher"
- class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
- <handler name="SOAPMessageBodyBasedDispatcher"
- class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
-
- <handler name="HTTPLocationBasedDispatcher"
- class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
- </phase>
- <phase name="RMPhase"/>
- <!-- user can add his own phases to this area -->
- <phase name="OperationInFaultPhase"/>
- <phase name="soapmonitorPhase"/>
- </phaseOrder>
- <phaseOrder type="OutFaultFlow">
- <!-- user can add his own phases to this area -->
- <phase name="soapmonitorPhase"/>
- <phase name="OperationOutFaultPhase"/>
- <phase name="RMPhase"/>
- <phase name="PolicyDetermination"/>
- <phase name="MessageOut"/>
- <phase name="Security"/>
- </phaseOrder>
-</axisconfig>
-
diff --git a/modules/rampart-samples/basic/sample11/services.xml b/modules/rampart-samples/basic/sample11/services.xml
deleted file mode 100644
index 28715e1..0000000
--- a/modules/rampart-samples/basic/sample11/services.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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.
- !-->
-<!-- services.xml of sample-11 : Dynamic client configuration -->
-<service>
- <operation name="echo">
- <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
- </operation>
- <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.sample11.SimpleService</parameter>
-
- <module ref="rampart" />
-
- <parameter name="InflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <passwordCallbackClass>org.apache.rampart.samples.sample11.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- </action>
- </parameter>
-
- <parameter name="OutflowSecurity">
- <action>
- <items>Timestamp Signature Encrypt</items>
- <user>service</user>
- <passwordCallbackClass>org.apache.rampart.samples.sample11.PWCBHandler</passwordCallbackClass>
- <signaturePropFile>service.properties</signaturePropFile>
- <signatureKeyIdentifier>DirectReference</signatureKeyIdentifier>
- <encryptionKeyIdentifier>SKIKeyIdentifier</encryptionKeyIdentifier>
- <encryptionUser>useReqSigCert</encryptionUser>
- </action>
- </parameter>
-</service>
diff --git a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/Client.java b/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/Client.java
deleted file mode 100644
index 5d53eb1..0000000
--- a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/Client.java
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample11;
-
-import org.apache.axiom.om.OMAbstractFactory;
-import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.OMNamespace;
-import org.apache.axis2.addressing.EndpointReference;
-import org.apache.axis2.client.Options;
-import org.apache.axis2.client.ServiceClient;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.axis2.context.ConfigurationContextFactory;
-import org.apache.axis2.description.Parameter;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.rampart.handler.config.InflowConfiguration;
-import org.apache.rampart.handler.config.OutflowConfiguration;
-
-public class Client {
-
- public static void main(String[] args) throws Exception {
-
- if(args.length != 2) {
- System.out.println("Usage: $java Client endpoint_address client_repo_path");
- }
-
- ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], args[1] + "/conf/axis2.xml");
-
- ServiceClient client = new ServiceClient(ctx, null);
- Options options = new Options();
- options.setAction("urn:echo");
- options.setTo(new EndpointReference(args[0]));
-
- //Set the rampart parameters
- options.setProperty(WSSHandlerConstants.OUTFLOW_SECURITY, getOutflowConfiguration());
- options.setProperty(WSSHandlerConstants.INFLOW_SECURITY, getInflowConfiguration());
-
- client.setOptions(options);
-
- //Engage rampart
- client.engageModule("rampart");
-
- OMElement response = client.sendReceive(getPayload("Hello world"));
-
- System.out.println(response);
-
- }
-
- private static OMElement getPayload(String value) {
- OMFactory factory = OMAbstractFactory.getOMFactory();
- OMNamespace ns = factory.createOMNamespace("http://sample11.samples.rampart.apache.org","ns1");
- OMElement elem = factory.createOMElement("echo", ns);
- OMElement childElem = factory.createOMElement("param0", null);
- childElem.setText(value);
- elem.addChild(childElem);
-
- return elem;
- }
-
- private static Parameter getOutflowConfiguration() {
- OutflowConfiguration ofc = new OutflowConfiguration();
- ofc.setActionItems("Timestamp Signature Encrypt");
- ofc.setUser("client");
- ofc.setPasswordCallbackClass("org.apache.rampart.samples.sample11.PWCBHandler");
- ofc.setSignaturePropFile("client.properties");
- ofc.setSignatureKeyIdentifier(WSSHandlerConstants.BST_DIRECT_REFERENCE);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.ISSUER_SERIAL);
- ofc.setEncryptionUser("service");
-
- return ofc.getProperty();
- }
-
- private static Parameter getInflowConfiguration() {
- InflowConfiguration ifc = new InflowConfiguration();
- ifc.setActionItems("Timestamp Signature Encrypt");
- ifc.setPasswordCallbackClass("org.apache.rampart.samples.sample11.PWCBHandler");
- ifc.setSignaturePropFile("client.properties");
-
- return ifc.getProperty();
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/PWCBHandler.java b/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/PWCBHandler.java
deleted file mode 100644
index bc66753..0000000
--- a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/PWCBHandler.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.samples.sample11;
-
-import org.apache.ws.security.WSPasswordCallback;
-
-import javax.security.auth.callback.Callback;
-import javax.security.auth.callback.CallbackHandler;
-import javax.security.auth.callback.UnsupportedCallbackException;
-
-import java.io.IOException;
-
-public class PWCBHandler implements CallbackHandler {
-
- public void handle(Callback[] callbacks) throws IOException,
- UnsupportedCallbackException {
- for (int i = 0; i < callbacks.length; i++) {
- WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
-
- String id = pwcb.getIdentifier();
- if("client".equals(id)) {
- pwcb.setPassword("apache");
- } else if("service".equals(id)) {
- pwcb.setPassword("apache");
- }
- }
- }
-
-}
diff --git a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/SimpleService.java b/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/SimpleService.java
deleted file mode 100644
index 012bd62..0000000
--- a/modules/rampart-samples/basic/sample11/src/org/apache/rampart/samples/sample11/SimpleService.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package org.apache.rampart.samples.sample11;
-/*
-
- * Copyright 2003-2005 The Apache Software Foundation.
- *
- * Licensed 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.
- *
- */
-
-public class SimpleService {
-
- public String echo(String arg) {
- return arg;
- }
-}
diff --git a/modules/rampart-samples/build.xml b/modules/rampart-samples/build.xml
deleted file mode 100644
index 708bc83..0000000
--- a/modules/rampart-samples/build.xml
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- !
- ! Copyright 2006 The Apache Software Foundation.
- !
- ! Licensed 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 basedir="." default="setup">
-
- <property name="lib.dir" value="../lib"/>
- <property name="modules.dir" value="../modules"/>
-
- <property environment="env"/>
-
- <target name="check.dependency" unless="env.AXIS2_HOME">
- <echo message="AXIS2_HOME must be set"/>
- </target>
-
- <!-- Copy the required jars and mars appropriately -->
- <target name="setup" if="env.AXIS2_HOME" depends="check.dependency">
-
- <property name="axis2.modules.dir" value="${env.AXIS2_HOME}/repository/modules/"/>
- <property name="axis2.lib.dir" value="${env.AXIS2_HOME}/lib"/>
-
- <copy todir="${axis2.lib.dir}">
- <fileset dir="${lib.dir}">
- <include name="**/*.jar"/>
- </fileset>
- </copy>
-
- <copy todir="${axis2.modules.dir}">
- <fileset dir="${modules.dir}">
- <include name="**/*.mar"/>
- </fileset>
- </copy>
-
- </target>
-
-</project>
diff --git a/modules/rampart-samples/keys/service.jks b/modules/rampart-samples/keys/service.jks
index dec41cb..faa0a20 100644
--- a/modules/rampart-samples/keys/service.jks
+++ b/modules/rampart-samples/keys/service.jks
Binary files differ
diff --git a/modules/rampart-samples/policy/build.xml b/modules/rampart-samples/policy/build.xml
index 69268e9..e9f6dea 100644
--- a/modules/rampart-samples/policy/build.xml
+++ b/modules/rampart-samples/policy/build.xml
@@ -18,12 +18,13 @@
<project basedir="." default="clean">
- <property name="service.repos.dir" value="build/service_repositories"/>
- <property name="client.repos.dir" value="build/client_repositories"/>
- <property name="temp.dir" value="build/temp"/>
+ <property name="build.dir" value="build"/>
+ <property name="service.repos.dir" value="${build.dir}/service_repositories"/>
+ <property name="client.repos.dir" value="${build.dir}/client_repositories"/>
+ <property name="temp.dir" value="${build.dir}/temp"/>
<property name="keys.dir" value="../keys"/>
- <property name="temp.client.dir" value="build/temp_client"/>
- <property name="endorsed.dir" value="build/endorsed"/>
+ <property name="temp.client.dir" value="${build.dir}/temp_client"/>
+ <property name="endorsed.dir" value="${build.dir}/endorsed"/>
<property name="client.port" value="8080"/>
<property name="server.port" value="8080"/>
@@ -34,6 +35,8 @@
<property name="lib.dir" value="${env.AXIS2_HOME}/lib"/>
+ <property name="vmargs" value=""/>
+
<path id="runtime.classpath">
<fileset dir="${lib.dir}">
<include name="**/*.jar"/>
@@ -125,6 +128,16 @@
<create.and.run.client sample.number="08"/>
</target>
+ <!--Sample Service 09-->
+ <target name="service.09" if="env.AXIS2_HOME" depends="check.dependency">
+ <create.service.repo sample.number="09"/>
+ </target>
+
+ <!--Sample Client 09-->
+ <target name="client.09" if="env.AXIS2_HOME" depends="check.dependency">
+ <create.and.run.client sample.number="09"/>
+ </target>
+
<target name="setup">
<mkdir dir="${endorsed.dir}"/>
<get src="http://repo2.maven.org/maven2/xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"
@@ -133,7 +146,7 @@
<target name="clean">
- <delete dir="build" />
+ <delete dir="${build.dir}" />
</target>
<!-- Macro to create a service repo for a given sample -->
@@ -170,7 +183,11 @@
<exclude name="**/Client.java"/>
</javac>
- <copy file="sample@{sample.number}/services.xml" tofile="${temp.dir}/META-INF/services.xml" overwrite="true"/>
+ <copy file="sample@{sample.number}/services.xml" tofile="${temp.dir}/META-INF/services.xml" overwrite="true">
+ <filterset>
+ <filter token="port" value="${server.port}"/>
+ </filterset>
+ </copy>
<copy file="${keys.dir}/service.jks" tofile="${temp.dir}/service.jks" overwrite="true"/>
<copy file="${keys.dir}/sts.jks" tofile="${temp.dir}/sts.jks" overwrite="true"/>
<copy file="${keys.dir}/service.properties" tofile="${temp.dir}/service.properties" overwrite="true"/>
@@ -185,7 +202,7 @@
<arg value="${service.repos.dir}/sample@{sample.number}"/>
<arg value="-p${server.port}"/>
<classpath refid="runtime.classpath"/>
- <jvmarg value="-Djava.endorsed.dirs=${endorsed.dir}"/>
+ <jvmarg line="-Djava.endorsed.dirs=${endorsed.dir} ${vmargs}"/>
</java>
</sequential>
@@ -225,8 +242,16 @@
<exclude name="**/Client.java"/>
</javac>
- <copy file="sample@{sample.number}/services.xml" tofile="${temp.dir}/META-INF/services.xml" overwrite="true"/>
- <copy file="sample@{sample.number}/mex_policy.xml" tofile="${temp.dir}/mex_policy.xml" overwrite="true"/>
+ <copy file="sample@{sample.number}/services.xml" tofile="${temp.dir}/META-INF/services.xml" overwrite="true">
+ <filterset>
+ <filter token="port" value="${server.port}"/>
+ </filterset>
+ </copy>
+ <copy file="sample@{sample.number}/mex_policy.xml" tofile="${temp.dir}/mex_policy.xml" overwrite="true">
+ <filterset>
+ <filter token="port" value="${server.port}"/>
+ </filterset>
+ </copy>
<copy file="${keys.dir}/service.jks" tofile="${temp.dir}/service.jks" overwrite="true"/>
<copy file="${keys.dir}/sts.jks" tofile="${temp.dir}/sts.jks" overwrite="true"/>
<copy file="${keys.dir}/service.properties" tofile="${temp.dir}/service.properties" overwrite="true"/>
@@ -241,7 +266,7 @@
<arg value="${service.repos.dir}/sample@{sample.number}"/>
<arg value="-p${server.port}"/>
<classpath refid="runtime.classpath"/>
- <jvmarg value="-Djava.endorsed.dirs=${endorsed.dir}"/>
+ <jvmarg line="-Djava.endorsed.dirs=${endorsed.dir} ${vmargs}"/>
</java>
</sequential>
@@ -280,17 +305,26 @@
<copy file="${keys.dir}/client.jks" tofile="${temp.client.dir}/client.jks" overwrite="true"/>
<copy file="${keys.dir}/client.properties" tofile="${temp.client.dir}/client.properties" overwrite="true"/>
+ <copy todir="${temp.client.dir}" overwrite="true">
+ <fileset dir="sample@{sample.number}">
+ <include name="*policy*.xml"/>
+ </fileset>
+ <filterset>
+ <filter token="port" value="${client.port}"/>
+ </filterset>
+ </copy>
<!-- Run client -->
- <java classname="org.apache.rampart.samples.policy.sample@{sample.number}.Client" fork="true">
+ <java classname="org.apache.rampart.samples.policy.sample@{sample.number}.Client" fork="true" failonerror="true">
<arg value="${sample.services.url}/sample@{sample.number}"/>
<arg value="${client.repos.dir}/sample@{sample.number}"/>
- <arg value="sample@{sample.number}/policy.xml"/>
+ <arg value="${temp.client.dir}/policy.xml"/>
<classpath>
<path refid="runtime.classpath"/>
<dirset dir="${temp.client.dir}" />
</classpath>
+ <jvmarg line="${vmargs}"/>
</java>
<!-- <delete dir="${temp.client.dir}"/> -->
diff --git a/modules/rampart-samples/policy/sample01/README.txt b/modules/rampart-samples/policy/sample01/README.txt
index ad75ce6..dd87594 100644
--- a/modules/rampart-samples/policy/sample01/README.txt
+++ b/modules/rampart-samples/policy/sample01/README.txt
@@ -3,6 +3,16 @@
The policy uses a TransportBinding and requires a SignedSupportingToken which
is a UsernameToken and the inclusion of a TimeStamp.
-Note that Rampart does not enforce the use of HTTPS transport and that
+Note that Rampart enforces the use of HTTPS transport and that
{http://ws.apache.org/rampart/policy}RampartConfig assertion provides
-additional information required to secure the message.
\ No newline at end of file
+additional information required to secure the message.
+
+The policy included in the services.xml file has the following comment :
+<!--<sp:HttpsToken RequireClientCertificate="false"/> -->
+
+If you uncomment this and deploy the service you will see the following error message :
+org.apache.axis2.AxisFault: Expected transport is "https" but incoming transport found : "http"
+
+You can find a complete tutorial on transport level
+security here:
+http://wso2.org/library/3190
\ No newline at end of file
diff --git a/modules/rampart-samples/policy/sample01/services.xml b/modules/rampart-samples/policy/sample01/services.xml
index bd4eb39..423923f 100644
--- a/modules/rampart-samples/policy/sample01/services.xml
+++ b/modules/rampart-samples/policy/sample01/services.xml
@@ -32,7 +32,8 @@
<wsp:Policy>
<sp:TransportToken>
<wsp:Policy>
- <sp:HttpsToken RequireClientCertificate="false"/>
+ <!-- REMOVED TO MAKE THE SAMPLE RUN WITH THE axis2server-->
+ <!--<sp:HttpsToken RequireClientCertificate="false"/> -->
</wsp:Policy>
</sp:TransportToken>
<sp:AlgorithmSuite>
diff --git a/modules/rampart-samples/policy/sample01/src/org/apache/rampart/samples/policy/sample01/Client.java b/modules/rampart-samples/policy/sample01/src/org/apache/rampart/samples/policy/sample01/Client.java
index 4e0600f..279ba9c 100644
--- a/modules/rampart-samples/policy/sample01/src/org/apache/rampart/samples/policy/sample01/Client.java
+++ b/modules/rampart-samples/policy/sample01/src/org/apache/rampart/samples/policy/sample01/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -30,6 +31,8 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
+import java.io.FileInputStream;
+
import javax.xml.namespace.QName;
public class Client {
@@ -59,7 +62,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample02/src/org/apache/rampart/samples/policy/sample02/Client.java b/modules/rampart-samples/policy/sample02/src/org/apache/rampart/samples/policy/sample02/Client.java
index 6cd1f11..0239d84 100644
--- a/modules/rampart-samples/policy/sample02/src/org/apache/rampart/samples/policy/sample02/Client.java
+++ b/modules/rampart-samples/policy/sample02/src/org/apache/rampart/samples/policy/sample02/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -30,6 +31,8 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
+import java.io.FileInputStream;
+
import javax.xml.namespace.QName;
public class Client {
@@ -59,7 +62,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample03/src/org/apache/rampart/samples/policy/sample03/Client.java b/modules/rampart-samples/policy/sample03/src/org/apache/rampart/samples/policy/sample03/Client.java
index 6fd3507..6adc113 100644
--- a/modules/rampart-samples/policy/sample03/src/org/apache/rampart/samples/policy/sample03/Client.java
+++ b/modules/rampart-samples/policy/sample03/src/org/apache/rampart/samples/policy/sample03/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -30,6 +31,8 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
+import java.io.FileInputStream;
+
import javax.xml.namespace.QName;
public class Client {
@@ -59,7 +62,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample04/src/org/apache/rampart/samples/policy/sample04/Client.java b/modules/rampart-samples/policy/sample04/src/org/apache/rampart/samples/policy/sample04/Client.java
index ac6a5a0..3588828 100644
--- a/modules/rampart-samples/policy/sample04/src/org/apache/rampart/samples/policy/sample04/Client.java
+++ b/modules/rampart-samples/policy/sample04/src/org/apache/rampart/samples/policy/sample04/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
@@ -31,6 +32,8 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
+import java.io.FileInputStream;
+
import javax.xml.namespace.QName;
public class Client {
@@ -67,7 +70,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample05/policy.xml b/modules/rampart-samples/policy/sample05/policy.xml
index 1807e03..6fd65f3 100755
--- a/modules/rampart-samples/policy/sample05/policy.xml
+++ b/modules/rampart-samples/policy/sample05/policy.xml
@@ -35,7 +35,7 @@
<wsp:Policy>
<sp:IssuedToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<Issuer xmlns="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/axis2/services/STS</Address>
+ <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:@port@/axis2/services/STS</Address>
</Issuer>
<sp:RequestSecurityTokenTemplate>
<t:TokenType xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV1.1</t:TokenType>
diff --git a/modules/rampart-samples/policy/sample05/src/org/apache/rampart/samples/policy/sample05/Client.java b/modules/rampart-samples/policy/sample05/src/org/apache/rampart/samples/policy/sample05/Client.java
index 9a34b7c..abaf622 100644
--- a/modules/rampart-samples/policy/sample05/src/org/apache/rampart/samples/policy/sample05/Client.java
+++ b/modules/rampart-samples/policy/sample05/src/org/apache/rampart/samples/policy/sample05/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -37,6 +38,9 @@
import org.apache.ws.secpolicy.SP11Constants;
import org.opensaml.common.xml.SAMLConstants;
+import java.io.FileInputStream;
+import java.net.URL;
+
import javax.xml.namespace.QName;
public class Client {
@@ -55,7 +59,7 @@
String action = TrustUtil.getActionValue(RahasConstants.VERSION_05_02, RahasConstants.RST_ACTION_ISSUE);
stsClient.setAction(action);
- Token responseToken = stsClient.requestSecurityToken(loadPolicy("sample05/policy.xml"), "http://localhost:8080/axis2/services/STS", loadPolicy("sample05/sts_policy.xml"), null);
+ Token responseToken = stsClient.requestSecurityToken(loadPolicy("sample05/policy.xml"), new URL(new URL(args[0]), "/axis2/services/STS").toString(), loadPolicy("sample05/sts_policy.xml"), null);
System.out.println("\n############################# Requested Token ###################################\n");
System.out.println(responseToken.getToken().toString());
@@ -83,7 +87,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample06/policy.xml b/modules/rampart-samples/policy/sample06/policy.xml
index 24728d8..dbcf50c 100755
--- a/modules/rampart-samples/policy/sample06/policy.xml
+++ b/modules/rampart-samples/policy/sample06/policy.xml
@@ -35,7 +35,7 @@
<wsp:Policy>
<sp:IssuedToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<Issuer xmlns="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/axis2/services/STS</Address>
+ <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:@port@/axis2/services/STS</Address>
<Metadata xmlns="http://www.w3.org/2005/08/addressing">
<mex:Metadata
xmlns:mex="http://schemas.xmlsoap.org/ws/2004/09/mex"
@@ -43,7 +43,7 @@
<mex:MetadataSection Dialect="http://schemas.xmlsoap.org/ws/2004/09/mex">
<mex:MetadataReference>
<Address
- xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/axis2/services/mex</Address>
+ xmlns="http://www.w3.org/2005/08/addressing">http://localhost:@port@/axis2/services/mex</Address>
</mex:MetadataReference>
</mex:MetadataSection>
</mex:Metadata>
@@ -104,4 +104,4 @@
</ramp:RampartConfig>
</wsp:All>
</wsp:ExactlyOne>
-</wsp:Policy>
\ No newline at end of file
+</wsp:Policy>
diff --git a/modules/rampart-samples/policy/sample06/services.xml b/modules/rampart-samples/policy/sample06/services.xml
index b86f1fb..70a2373 100755
--- a/modules/rampart-samples/policy/sample06/services.xml
+++ b/modules/rampart-samples/policy/sample06/services.xml
@@ -183,7 +183,7 @@
<mex:MetadataSection Dialect="http://schemas.xmlsoap.org/ws/2004/09/mex">
<mex:MetadataReference>
<Address
- xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/axis2/services/mex</Address>
+ xmlns="http://www.w3.org/2005/08/addressing">http://localhost:@port@/axis2/services/mex</Address>
</mex:MetadataReference>
</mex:MetadataSection>
</mex:Metadata>
diff --git a/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/Client.java b/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/Client.java
index df23146..16b9446 100755
--- a/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/Client.java
+++ b/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
@@ -35,6 +36,7 @@
import org.apache.ws.secpolicy.SP11Constants;
import org.opensaml.common.xml.SAMLConstants;
+import java.io.FileInputStream;
import javax.xml.namespace.QName;
@@ -67,7 +69,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java b/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java
index 2b8a12f..2ad338f 100644
--- a/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java
+++ b/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java
@@ -22,10 +22,9 @@
import java.util.ArrayList;
import java.util.List;
-import javax.xml.stream.XMLStreamException;
-
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.AxisFault;
import org.apache.axis2.mex.MexConstants;
import org.apache.axis2.mex.om.Metadata;
@@ -56,12 +55,10 @@
File file = new File("sample06/mex_policy.xml");
System.out.println(file.getAbsolutePath());
- StAXOMBuilder builder = new StAXOMBuilder(new FileInputStream(file));
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(file));
return builder.getDocumentElement();
} catch (FileNotFoundException e) {
throw new AxisFault("Error reading the file",e);
- } catch (XMLStreamException e) {
- throw new AxisFault("Error parsing the file",e);
}
}
diff --git a/modules/rampart-samples/policy/sample07/src/org/apache/rampart/samples/policy/sample07/Client.java b/modules/rampart-samples/policy/sample07/src/org/apache/rampart/samples/policy/sample07/Client.java
index 0b5f3b3..9c5d875 100644
--- a/modules/rampart-samples/policy/sample07/src/org/apache/rampart/samples/policy/sample07/Client.java
+++ b/modules/rampart-samples/policy/sample07/src/org/apache/rampart/samples/policy/sample07/Client.java
@@ -20,7 +20,8 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
@@ -30,6 +31,8 @@
import org.apache.neethi.PolicyEngine;
import org.apache.rampart.RampartMessageData;
+import java.io.FileInputStream;
+
import javax.xml.namespace.QName;
public class Client {
@@ -59,7 +62,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample08/policy.xml b/modules/rampart-samples/policy/sample08/policy.xml
index f1a09da..b19491a 100644
--- a/modules/rampart-samples/policy/sample08/policy.xml
+++ b/modules/rampart-samples/policy/sample08/policy.xml
@@ -35,7 +35,7 @@
<wsp:Policy>
<sp:IssuedToken sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
<Issuer xmlns="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
- <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8080/axis2/services/STS</Address>
+ <Address xmlns="http://www.w3.org/2005/08/addressing">http://localhost:@port@/axis2/services/STS</Address>
</Issuer>
<sp:RequestSecurityTokenTemplate>
<t:TokenType xmlns:t="http://schemas.xmlsoap.org/ws/2005/02/trust">http://docs.oasis-open.org/wss/oasis-wss-saml-token-profile-1.1#SAMLV2.0</t:TokenType>
diff --git a/modules/rampart-samples/policy/sample08/src/org/apache/rampart/samples/policy/sample08/Client.java b/modules/rampart-samples/policy/sample08/src/org/apache/rampart/samples/policy/sample08/Client.java
index 1167487..e3372cf 100644
--- a/modules/rampart-samples/policy/sample08/src/org/apache/rampart/samples/policy/sample08/Client.java
+++ b/modules/rampart-samples/policy/sample08/src/org/apache/rampart/samples/policy/sample08/Client.java
@@ -19,7 +19,8 @@
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.context.ConfigurationContextFactory;
import org.apache.neethi.Policy;
@@ -31,6 +32,9 @@
import org.apache.ws.secpolicy.SP11Constants;
import org.opensaml.common.xml.SAMLConstants;
+import java.io.FileInputStream;
+import java.net.URL;
+
import javax.xml.namespace.QName;
public class Client {
@@ -49,7 +53,7 @@
String action = TrustUtil.getActionValue(RahasConstants.VERSION_05_02, RahasConstants.RST_ACTION_ISSUE);
stsClient.setAction(action);
- Token responseToken = stsClient.requestSecurityToken(loadPolicy("sample08/policy.xml"), "http://localhost:8080/axis2/services/STS", loadPolicy("sample08/sts_policy.xml"), null);
+ Token responseToken = stsClient.requestSecurityToken(loadPolicy("sample08/policy.xml"), new URL(new URL(args[0]), "/axis2/services/STS").toString(), loadPolicy("sample08/sts_policy.xml"), null);
System.out.println("\n############################# Requested SAML 2.0 Token ###################################\n");
System.out.println(responseToken.getToken().toString());
@@ -59,7 +63,7 @@
}
private static Policy loadPolicy(String xmlPath) throws Exception {
- StAXOMBuilder builder = new StAXOMBuilder(xmlPath);
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
diff --git a/modules/rampart-samples/policy/sample09/README.txt b/modules/rampart-samples/policy/sample09/README.txt
new file mode 100644
index 0000000..67955cf
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/README.txt
@@ -0,0 +1,4 @@
+Different security policies to secure request and response messages.
+
+1. Request message is secured with encrypt only policy with symmetric binding.
+2. Response message is secured with sign only policy with symmetric binding.
\ No newline at end of file
diff --git a/modules/rampart-samples/policy/sample09/client_in_policy.xml b/modules/rampart-samples/policy/sample09/client_in_policy.xml
new file mode 100644
index 0000000..1f3ce97
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/client_in_policy.xml
@@ -0,0 +1,70 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="SignOnly">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token
+ sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic256/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+ <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ <sp:MustSupportRefThumbprint/>
+ <sp:RequireSignatureConfirmation/>
+ </wsp:Policy>
+ </sp:Wss11>
+ <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:RequireClientEntropy/>
+ <sp:RequireServerEntropy/>
+ <sp:MustSupportIssuedTokens/>
+ </wsp:Policy>
+ </sp:Trust10>
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>client</ramp:user>
+ <ramp:encryptionUser>service</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample09.PWCBHandler
+ </ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">client.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-samples/policy/sample09/client_out_policy.xml b/modules/rampart-samples/policy/sample09/client_out_policy.xml
new file mode 100644
index 0000000..48de841
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/client_out_policy.xml
@@ -0,0 +1,79 @@
+<wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="EncryptOnly">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token
+ sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic256/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:EncryptedParts
+ xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:EncryptedParts>
+ <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ <sp:MustSupportRefThumbprint/>
+ <sp:RequireSignatureConfirmation/>
+ </wsp:Policy>
+ </sp:Wss11>
+ <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:RequireClientEntropy/>
+ <sp:RequireServerEntropy/>
+ <sp:MustSupportIssuedTokens/>
+ </wsp:Policy>
+ </sp:Trust10>
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>client</ramp:user>
+ <ramp:encryptionUser>service</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample09.PWCBHandler
+ </ramp:passwordCallbackClass>
+
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">client.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">client.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+ </ramp:RampartConfig>
+
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-samples/policy/sample09/services.xml b/modules/rampart-samples/policy/sample09/services.xml
new file mode 100644
index 0000000..f3cf087
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/services.xml
@@ -0,0 +1,191 @@
+<?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.
+ -->
+<!-- services.xml for sample09 with different in,out policies -->
+<service>
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
+ </operation>
+ <parameter name="ServiceClass" locked="false">org.apache.rampart.samples.policy.sample09.SimpleService</parameter>
+
+ <module ref="rampart"/>
+ <module ref="addressing"/>
+
+ <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:AppliesTo>
+ <policy-subject identifier="binding:soap11/operation:echo/in"/>
+ <policy-subject identifier="binding:soap12/operation:echo/in"/>
+ </wsp:AppliesTo>
+ <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="EncryptOnly">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token
+ sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic256/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:EncryptedParts>
+ <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ <sp:MustSupportRefThumbprint/>
+ <sp:RequireSignatureConfirmation/>
+ </wsp:Policy>
+ </sp:Wss11>
+ <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:RequireClientEntropy/>
+ <sp:RequireServerEntropy/>
+ <sp:MustSupportIssuedTokens/>
+ </wsp:Policy>
+ </sp:Trust10>
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>service</ramp:user>
+ <ramp:encryptionUser>service</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample09.PWCBHandler
+ </ramp:passwordCallbackClass>
+
+ <ramp:encryptionCypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">service.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:encryptionCypto>
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">service.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+
+ </ramp:RampartConfig>
+
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+ </wsp:PolicyAttachment>
+ <wsp:PolicyAttachment xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:AppliesTo>
+ <policy-subject identifier="binding:soap11/operation:echo/out"/>
+ <policy-subject identifier="binding:soap12/operation:echo/out"/>
+ </wsp:AppliesTo>
+ <wsp:Policy xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ wsu:Id="SignOnly">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token
+ sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic256/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Lax/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:SignedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <sp:Body/>
+ </sp:SignedParts>
+ <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ <sp:MustSupportRefThumbprint/>
+ <sp:RequireSignatureConfirmation/>
+ </wsp:Policy>
+ </sp:Wss11>
+ <sp:Trust10 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:RequireClientEntropy/>
+ <sp:RequireServerEntropy/>
+ <sp:MustSupportIssuedTokens/>
+ </wsp:Policy>
+ </sp:Trust10>
+ <ramp:RampartConfig xmlns:ramp="http://ws.apache.org/rampart/policy">
+ <ramp:user>service</ramp:user>
+ <ramp:encryptionUser>service</ramp:encryptionUser>
+ <ramp:passwordCallbackClass>org.apache.rampart.samples.policy.sample09.PWCBHandler
+ </ramp:passwordCallbackClass>
+
+ <ramp:signatureCrypto>
+ <ramp:crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.file">service.jks</ramp:property>
+ <ramp:property name="org.apache.ws.security.crypto.merlin.keystore.password">apache
+ </ramp:property>
+ </ramp:crypto>
+ </ramp:signatureCrypto>
+
+ </ramp:RampartConfig>
+ </wsp:All>
+ </wsp:ExactlyOne>
+ </wsp:Policy>
+
+ </wsp:PolicyAttachment>
+
+</service>
\ No newline at end of file
diff --git a/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/Client.java b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/Client.java
new file mode 100644
index 0000000..62f3dcd
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/Client.java
@@ -0,0 +1,84 @@
+/*
+ * 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.rampart.samples.policy.sample09;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
+import org.apache.axis2.addressing.EndpointReference;
+import org.apache.axis2.client.Options;
+import org.apache.axis2.client.ServiceClient;
+import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.ConfigurationContextFactory;
+import org.apache.neethi.Policy;
+import org.apache.neethi.PolicyEngine;
+import org.apache.rampart.RampartMessageData;
+
+import java.io.File;
+import java.io.FileInputStream;
+
+public class Client {
+
+ public static void main(String[] args) throws Exception {
+
+ if(args.length != 3) {
+ System.out.println("Usage: $java Client endpoint_address client_repo_path policy_xml_path");
+ }
+
+ ConfigurationContext ctx = ConfigurationContextFactory.createConfigurationContextFromFileSystem(args[1], null);
+
+ ServiceClient client = new ServiceClient(ctx, null);
+ Options options = new Options();
+ options.setAction("urn:echo");
+ options.setTo(new EndpointReference(args[0]));
+ //load and attach in/out sec policies
+ File policyPath= new File(args[2]).getParentFile();
+ options.setProperty(RampartMessageData.KEY_RAMPART_IN_POLICY, loadPolicy(new File(policyPath, "client_in_policy.xml")));
+ options.setProperty(RampartMessageData.KEY_RAMPART_OUT_POLICY, loadPolicy(new File(policyPath, "/client_out_policy.xml")));
+ client.setOptions(options);
+
+ client.engageModule("addressing");
+ client.engageModule("rampart");
+
+ OMElement response = client.sendReceive(getPayload("Hello world"));
+
+ System.out.println(response);
+
+ }
+
+ private static Policy loadPolicy(File xmlPath) throws Exception {
+ OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(xmlPath));
+ return PolicyEngine.getPolicy(builder.getDocumentElement());
+ }
+
+ private static OMElement getPayload(String value) {
+ OMFactory factory = OMAbstractFactory.getOMFactory();
+ OMNamespace ns = factory.createOMNamespace("http://sample09.policy.samples.rampart.apache.org","ns1");
+ OMElement elem = factory.createOMElement("echo", ns);
+ OMElement childElem = factory.createOMElement("param0", ns);
+ childElem.setText(value);
+ elem.addChild(childElem);
+
+ return elem;
+ }
+
+}
diff --git a/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/PWCBHandler.java b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/PWCBHandler.java
new file mode 100644
index 0000000..2d62ae1
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/PWCBHandler.java
@@ -0,0 +1,44 @@
+/*
+ * 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.rampart.samples.policy.sample09;
+
+import org.apache.ws.security.WSPasswordCallback;
+
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.UnsupportedCallbackException;
+
+import java.io.IOException;
+
+public class PWCBHandler implements CallbackHandler {
+
+ public void handle(Callback[] callbacks) throws IOException,
+ UnsupportedCallbackException {
+ for (int i = 0; i < callbacks.length; i++) {
+ WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
+ String id = pwcb.getIdentifier();
+ if("client".equals(id)) {
+ pwcb.setPassword("apache");
+ } else if("service".equals(id)) {
+ pwcb.setPassword("apache");
+ }
+ }
+ }
+
+}
diff --git a/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/SimpleService.java b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/SimpleService.java
new file mode 100644
index 0000000..e1a56c4
--- /dev/null
+++ b/modules/rampart-samples/policy/sample09/src/org/apache/rampart/samples/policy/sample09/SimpleService.java
@@ -0,0 +1,25 @@
+/*
+ * 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.rampart.samples.policy.sample09;
+
+public class SimpleService {
+ public String echo(String arg) {
+ return arg;
+ }
+}
diff --git a/modules/rampart-samples/pom.xml b/modules/rampart-samples/pom.xml
index 610ca93..844379a 100644
--- a/modules/rampart-samples/pom.xml
+++ b/modules/rampart-samples/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -37,76 +37,146 @@
<build>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>build-helper-maven-plugin</artifactId>
- <version>1.7</version>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
<executions>
<execution>
- <phase>generate-sources</phase>
+ <id>prepare-agent-for-client</id>
<goals>
- <goal>add-source</goal>
+ <goal>prepare-agent</goal>
</goals>
<configuration>
- <sources>
- <source>basic/sample01/src</source>
- <source>basic/sample02/src</source>
- <source>basic/sample03/src</source>
- <source>basic/sample04/src</source>
- <source>basic/sample05/src</source>
- <source>basic/sample06/src</source>
- <source>basic/sample07/src</source>
- <source>basic/sample08/src</source>
- <source>basic/sample09/src</source>
- <source>basic/sample10/src</source>
- <source>basic/sample11/src</source>
- <source>policy/sample01/src</source>
- <source>policy/sample02/src</source>
- <source>policy/sample03/src</source>
- <source>policy/sample04/src</source>
- <source>policy/sample05/src</source>
- <source>policy/sample06/src</source>
- <source>policy/sample07/src</source>
- <source>policy/sample08/src</source>
- <source>policy/sample-tomcat/src</source>
- </sources>
+ <propertyName>jacoco.argLineTemplate</propertyName>
+ <sessionId>mvn:${project.groupId}:${project.artifactId}:${project.version}:@id@</sessionId>
</configuration>
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-repo-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <goals>
+ <goal>create-test-repository</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/axis2/repository</outputDirectory>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>copy-dependencies</id>
+ <phase>generate-test-resources</phase>
+ <goals>
+ <goal>copy-dependencies</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${project.build.directory}/axis2/lib</outputDirectory>
+ <includeTypes>jar</includeTypes>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <systemPropertyVariables>
+ <jacoco.argLineTemplate>${jacoco.argLineTemplate}</jacoco.argLineTemplate>
+ </systemPropertyVariables>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-deploy-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
</plugins>
</build>
<dependencies>
<dependency>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rampart-policy</artifactId>
- <version>${project.version}</version>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rampart-trust</artifactId>
- <version>${project.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.rampart</groupId>
- <artifactId>rampart-core</artifactId>
- <version>${project.version}</version>
+ <groupId>org.apache.ant</groupId>
+ <artifactId>ant</artifactId>
+ <version>1.9.6</version>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.sun</groupId>
+ <artifactId>tools</artifactId>
+ <version>1.7.0</version>
+ <scope>system</scope>
+ <systemPath>${java.home}/../lib/tools.jar</systemPath>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <type>mar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart</artifactId>
+ <version>${project.version}</version>
+ <type>mar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rahas</artifactId>
+ <version>${project.version}</version>
+ <type>mar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-http</artifactId>
+ <version>${axis2.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-transport-local</artifactId>
+ <version>${axis2.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-adb</artifactId>
+ <version>${axis2.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-testutils</artifactId>
+ <version>${axis2.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>rampart-core</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
</dependency>
</dependencies>
</project>
diff --git a/modules/rampart-samples/src/test/conf/log4j.properties b/modules/rampart-samples/src/test/conf/log4j.properties
new file mode 100644
index 0000000..b319014
--- /dev/null
+++ b/modules/rampart-samples/src/test/conf/log4j.properties
@@ -0,0 +1,24 @@
+#
+# 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.
+#
+
+log4j.rootCategory=INFO, CONSOLE
+
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%d %-5p %c - %m%n
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Controller.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Controller.java
new file mode 100644
index 0000000..e916134
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Controller.java
@@ -0,0 +1,82 @@
+/*
+ * 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.rampart.samples.runner;
+
+import org.apache.axis2.testutils.PortAllocator;
+import org.apache.tools.ant.Project;
+
+final class Controller {
+ private final Sample sample;
+ private boolean serverReady;
+ private boolean serverStopped;
+ private boolean serverStopDetected;
+
+ Controller(Sample sample) {
+ this.sample = sample;
+ }
+
+ void execute() throws InterruptedException {
+ int port = PortAllocator.allocatePort();
+ Logger logger = new Logger();
+ logger.setErrorPrintStream(System.err);
+ logger.setOutputPrintStream(System.out);
+ logger.setMessageOutputLevel(Project.MSG_INFO);
+ ServerWatcher serverWatcher = new ServerWatcher(this, port);
+ new Thread(serverWatcher).start();
+ try {
+ Thread serverRunnerThread = new Thread(new ServerRunner(this, sample, logger, port));
+ serverRunnerThread.start();
+ try {
+ synchronized (this) {
+ if (!serverStopped && !serverReady) {
+ wait();
+ } else if (serverStopped) {
+ return;
+ }
+ }
+ sample.runClient(logger, port);
+ } finally {
+ logger.shutdown();
+ serverRunnerThread.interrupt();
+ synchronized (this) {
+ while (!serverStopDetected) {
+ wait();
+ }
+ }
+ }
+ } finally {
+ serverWatcher.stop();
+ }
+ }
+
+ synchronized void serverStopped() {
+ serverStopped = true;
+ notifyAll();
+ }
+
+ synchronized void serverReady() {
+ serverReady = true;
+ notifyAll();
+ }
+
+ synchronized void serverStopDetected() {
+ serverStopDetected = true;
+ notifyAll();
+ }
+}
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Logger.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Logger.java
new file mode 100644
index 0000000..3893e60
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Logger.java
@@ -0,0 +1,38 @@
+/*
+ * 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.rampart.samples.runner;
+
+import java.io.PrintStream;
+
+import org.apache.tools.ant.DefaultLogger;
+
+final class Logger extends DefaultLogger {
+ private boolean shutdown;
+
+ @Override
+ protected synchronized void printMessage(String message, PrintStream stream, int priority) {
+ if (!shutdown) {
+ super.printMessage(message, stream, priority);
+ }
+ }
+
+ void shutdown() {
+ this.shutdown = true;
+ }
+}
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Sample.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Sample.java
new file mode 100644
index 0000000..83a5510
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/Sample.java
@@ -0,0 +1,64 @@
+/*
+ * 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.rampart.samples.runner;
+
+import java.io.File;
+
+import org.apache.tools.ant.BuildLogger;
+import org.apache.tools.ant.Project;
+import org.apache.tools.ant.ProjectHelper;
+
+final class Sample {
+ private final String group;
+ private final String sampleId;
+
+ Sample(String group, String sampleId) {
+ this.group = group;
+ this.sampleId = sampleId;
+ }
+
+ private void run(BuildLogger logger, int port, String target) {
+ Project project = new Project();
+ File targetDir = new File("target");
+ project.setUserProperty("env.AXIS2_HOME", new File(targetDir, "axis2").getAbsolutePath());
+ project.setUserProperty("build.dir", new File(targetDir, "build").getAbsolutePath());
+ project.setUserProperty("client.port", String.valueOf(port));
+ project.setUserProperty("server.port", String.valueOf(port));
+ StringBuilder vmargs = new StringBuilder();
+ vmargs.append("-Dlog4j.configuration=");
+ vmargs.append(new File("src/test/conf/log4j.properties").getAbsoluteFile().toURI().toString());
+ String jacocoArgLineTemplate = System.getProperty("jacoco.argLineTemplate");
+ if (jacocoArgLineTemplate != null) {
+ vmargs.append(" ");
+ vmargs.append(jacocoArgLineTemplate.replace("@id@", group + ":" + target));
+ }
+ project.setUserProperty("vmargs", vmargs.toString());
+ ProjectHelper.configureProject(project, new File(group + "/build.xml"));
+ project.addBuildListener(logger);
+ project.executeTarget(target);
+ }
+
+ void runServer(BuildLogger logger, int port) {
+ run(logger, port, "service." + sampleId);
+ }
+
+ void runClient(BuildLogger logger, int port) {
+ run(logger, port, "client." + sampleId);
+ }
+}
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/SampleTest.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/SampleTest.java
new file mode 100644
index 0000000..1a1427b
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/SampleTest.java
@@ -0,0 +1,50 @@
+/*
+ * 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.rampart.samples.runner;
+
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+public class SampleTest extends TestCase {
+ private final Sample sample;
+
+ public SampleTest(String group, String id) {
+ super(group + "/" + id);
+ this.sample = new Sample(group, id);
+ }
+
+ @Override
+ protected void runTest() throws Throwable {
+ new Controller(sample).execute();
+ }
+
+ public static TestSuite suite() {
+ TestSuite suite = new TestSuite();
+ suite.addTest(new SampleTest("policy", "01"));
+ suite.addTest(new SampleTest("policy", "02"));
+ suite.addTest(new SampleTest("policy", "03"));
+ suite.addTest(new SampleTest("policy", "04"));
+ suite.addTest(new SampleTest("policy", "05"));
+ suite.addTest(new SampleTest("policy", "06"));
+ suite.addTest(new SampleTest("policy", "07"));
+ suite.addTest(new SampleTest("policy", "08"));
+ suite.addTest(new SampleTest("policy", "09"));
+ return suite;
+ }
+}
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerRunner.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerRunner.java
new file mode 100644
index 0000000..7f4b237
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerRunner.java
@@ -0,0 +1,43 @@
+/*
+ * 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.rampart.samples.runner;
+
+import org.apache.tools.ant.BuildLogger;
+
+final class ServerRunner implements Runnable {
+ private final Controller controller;
+ private final Sample sample;
+ private final BuildLogger logger;
+ private final int port;
+
+ ServerRunner(Controller controller, Sample sample, BuildLogger logger, int port) {
+ this.controller = controller;
+ this.sample = sample;
+ this.logger = logger;
+ this.port = port;
+ }
+
+ public void run() {
+ try {
+ sample.runServer(logger, port);
+ } finally {
+ controller.serverStopped();
+ }
+ }
+}
diff --git a/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerWatcher.java b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerWatcher.java
new file mode 100644
index 0000000..d8d6e1f
--- /dev/null
+++ b/modules/rampart-samples/src/test/java/org/apache/rampart/samples/runner/ServerWatcher.java
@@ -0,0 +1,86 @@
+/*
+ * 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.rampart.samples.runner;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.ConnectException;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+final class ServerWatcher implements Runnable {
+ private final Controller controller;
+ private final URL url;
+ private boolean serverWasReady;
+ private boolean stopped;
+
+ ServerWatcher(Controller controller, int port) {
+ this.controller = controller;
+ try {
+ url = new URL("http", "localhost", port, "/axis2/services/");
+ } catch (MalformedURLException ex) {
+ throw new Error("Unexpected exception", ex);
+ }
+ }
+
+ public synchronized void run() {
+ while (true) {
+ if (stopped) {
+ return;
+ }
+ try {
+ HttpURLConnection connection = (HttpURLConnection)url.openConnection();
+ int responseCode = connection.getResponseCode();
+ InputStream in = connection.getInputStream();
+ try {
+ byte[] buffer = new byte[1024];
+ while (in.read(buffer) != -1) {
+ // Just loop;
+ }
+ } finally {
+ in.close();
+ }
+ if (responseCode == 200) {
+ if (!serverWasReady) {
+ serverWasReady = true;
+ controller.serverReady();
+ }
+ }
+ } catch (ConnectException ex) {
+ if (serverWasReady) {
+ controller.serverStopDetected();
+ return;
+ }
+ } catch (IOException ex) {
+ // Just continue trying
+ }
+ try {
+ wait(100);
+ } catch (InterruptedException ex) {
+ return;
+ }
+ }
+ }
+
+ public synchronized void stop() {
+ stopped = true;
+ notifyAll();
+ }
+}
diff --git a/modules/rampart-tests/pom.xml b/modules/rampart-tests/pom.xml
index 2d2b615..9156d97 100644
--- a/modules/rampart-tests/pom.xml
+++ b/modules/rampart-tests/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -48,11 +48,9 @@
</testResources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
+ <artifactId>maven-deploy-plugin</artifactId>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <skip>true</skip>
</configuration>
</plugin>
</plugins>
@@ -82,20 +80,10 @@
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <configuration>
- <templateDirectory>${basedir}</templateDirectory>
- <menu ref="parent" />
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
</project>
diff --git a/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java b/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java
index cd99ffe..98cce91 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java
@@ -23,9 +23,8 @@
import junit.framework.TestCase;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Date;
@@ -156,7 +155,6 @@
public void testSerialize()
throws Exception {
- String fileName = "test.ser";
OMFactory factory = OMAbstractFactory.getOMFactory();
OMNamespace ns1 = factory.createOMNamespace("bar", "x");
@@ -167,30 +165,13 @@
SimpleTokenStore store = new SimpleTokenStore();
store.add(t);
- FileOutputStream fos = null;
- ObjectOutputStream out = null;
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ObjectOutputStream out = new ObjectOutputStream(baos);
- try {
- fos = new FileOutputStream(fileName);
- out = new ObjectOutputStream(fos);
- out.writeObject(store);
- } finally {
- out.close();
- }
+ out.writeObject(store);
- SimpleTokenStore store2 = null;
- FileInputStream fis = null;
- ObjectInputStream in = null;
- try {
- fis = new FileInputStream(fileName);
- in = new ObjectInputStream(fis);
- store2 = (SimpleTokenStore)in.readObject();
- in.close();
- } catch (IOException ex) {
- ex.printStackTrace();
- } catch (ClassNotFoundException ex) {
- ex.printStackTrace();
- }
+ ObjectInputStream in = new ObjectInputStream(new ByteArrayInputStream(baos.toByteArray()));
+ SimpleTokenStore store2 = (SimpleTokenStore)in.readObject();
assertEquals(store.getToken("#1232122").getId(), store2.getToken("#1232122").getId());
assertEquals(store.getToken("#1232122").getCreated(), store2.getToken("#1232122").getCreated());
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/AsymmetricBindingBuilderTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/AsymmetricBindingBuilderTest.java
index fcb1674..0d8a2a0 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/AsymmetricBindingBuilderTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/AsymmetricBindingBuilderTest.java
@@ -38,7 +38,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.BINARY_TOKEN_LN));
@@ -59,7 +59,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.SIG_NS, WSConstants.SIG_LN));
@@ -79,7 +79,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.BINARY_TOKEN_LN));
@@ -102,7 +102,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.BINARY_TOKEN_LN));
@@ -124,7 +124,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -148,7 +148,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -170,7 +170,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -191,7 +191,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS,WSConstants.BINARY_TOKEN_LN));
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java b/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java
index 528db6c..b8b16cb 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java
@@ -20,8 +20,6 @@
import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.axiom.soap.SOAPEnvelope;
-import org.apache.axiom.soap.SOAP11Constants;
-import org.apache.axiom.soap.SOAP12Constants;
import org.apache.axis2.AxisFault;
import org.apache.axis2.client.Options;
import org.apache.axis2.context.ConfigurationContext;
@@ -74,7 +72,7 @@
* @throws AxisFault
*/
protected MessageContext getMsgCtx12() throws Exception {
- return initMsgCtxFromMessage("test-resources/policy/soapmessage.xml");
+ return initMsgCtxFromMessage("test-resources/policy/soapmessage12.xml");
}
/**
@@ -116,7 +114,7 @@
return PolicyEngine.getPolicy(builder.getDocumentElement());
}
- protected void verifySecHeader(Iterator qnameList, SOAPEnvelope env) {
+ protected void verifySecHeader(Iterator<QName> qnameList, SOAPEnvelope env) {
Iterator secHeaderChildren =
env.getHeader().
getFirstChildWithName(new QName(WSConstants.WSSE_NS,
@@ -139,16 +137,4 @@
"next expected element" + qnameList.next().toString());
}
}
-
- public String getContentTypeForEnvelope(SOAPEnvelope env) {
- String contentType = SOAP11Constants.SOAP_11_CONTENT_TYPE; //default
- if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(env.getNamespace().getNamespaceURI())) {
- contentType = SOAP11Constants.SOAP_11_CONTENT_TYPE;
- }
- else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(env.getNamespace().getNamespaceURI())) {
- contentType = SOAP12Constants.SOAP_12_CONTENT_TYPE;
- }
- return contentType;
- }
-
}
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/PolicyAssertionsTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/PolicyAssertionsTest.java
index 5d5a8ed..29c62be 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/PolicyAssertionsTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/PolicyAssertionsTest.java
@@ -16,7 +16,9 @@
import org.apache.axiom.soap.SOAPEnvelope;
import org.apache.axis2.builder.SOAPBuilder;
import org.apache.axis2.context.MessageContext;
+import org.apache.axis2.description.AxisService;
import org.apache.neethi.Policy;
+import org.apache.ws.security.handler.WSHandlerConstants;
import java.io.ByteArrayInputStream;
@@ -80,4 +82,80 @@
}
}
+
+ public void testHashedPasswordRequiredValid() throws Exception {
+
+ MessageContext ctx = getMsgCtx();
+
+ String policyXml = "test-resources/policy/rampart-hashed-password.xml";
+ Policy policy = loadPolicy(policyXml);
+
+ ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
+
+ ctx.getOptions().setUserName( "Ron" );
+ ctx.getOptions().setPassword( "noR" );
+
+ MessageBuilder builder = new MessageBuilder();
+ builder.build(ctx);
+
+ // Building the SOAP envelope from the OMElement
+ SOAPBuilder soapBuilder = new SOAPBuilder();
+ SOAPEnvelope env = ctx.getEnvelope();
+ ByteArrayInputStream inStream = new ByteArrayInputStream(env.toString().getBytes());
+ env = (SOAPEnvelope) soapBuilder.processDocument(inStream, "text/xml", ctx);
+ ctx.setEnvelope(env);
+
+ ctx.setServerSide(true);
+ AxisService axisService = ctx.getAxisService();
+ axisService.removeParameter(axisService.getParameter(RampartMessageData.PARAM_CLIENT_SIDE));
+
+ ctx.setProperty(WSHandlerConstants.PW_CALLBACK_REF, new TestCBHandler());
+
+ RampartEngine engine = new RampartEngine();
+ engine.process(ctx);
+
+ }
+
+ public void testHashedPasswordRequiredInvalid() throws Exception {
+
+ MessageContext ctx = getMsgCtx();
+
+ String policyXml = "test-resources/policy/rampart-plaintext-password.xml";
+ Policy policy = loadPolicy(policyXml);
+
+ ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
+
+ ctx.getOptions().setUserName( "Ron" );
+ ctx.getOptions().setPassword( "noR" );
+
+ MessageBuilder builder = new MessageBuilder();
+ builder.build(ctx);
+
+ // Building the SOAP envelope from the OMElement
+ SOAPBuilder soapBuilder = new SOAPBuilder();
+ SOAPEnvelope env = ctx.getEnvelope();
+ ByteArrayInputStream inStream = new ByteArrayInputStream(env.toString().getBytes());
+ env = (SOAPEnvelope) soapBuilder.processDocument(inStream, "text/xml", ctx);
+ ctx.setEnvelope(env);
+
+ ctx.setServerSide(true);
+ AxisService axisService = ctx.getAxisService();
+ axisService.removeParameter(axisService.getParameter(RampartMessageData.PARAM_CLIENT_SIDE));
+
+ policyXml = "test-resources/policy/rampart-hashed-password.xml";
+ policy = loadPolicy(policyXml);
+
+ ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
+ ctx.setProperty(WSHandlerConstants.PW_CALLBACK_REF, new TestCBHandler());
+
+ RampartEngine engine = new RampartEngine();
+
+ try {
+ engine.process(ctx);
+ fail(" This should have thrown RampartException: Invalid UsernameToken Type.");
+ } catch (RampartException expected) {
+ // Ignore intentionally as the test is supposed to throw an exception
+ }
+
+ }
}
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
index 95a1e25..77e54d7 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
@@ -26,74 +26,41 @@
import org.apache.neethi.Policy;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.WSSecurityEngineResult;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+@RunWith(JUnit4.class)
public class RampartEngineTest extends MessageBuilderTestBase {
-
- public RampartEngineTest(String name) {
- super(name);
- }
-
+ /**
+ * Tests that Rampart complains about missing security header in request.
+ *
+ * @throws Exception
+ */
+ @Test(expected=RampartException.class)
public void testEmptySOAPMessage() throws Exception {
-
- try {
- MessageContext ctx = getMsgCtx();
-
- String policyXml = "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml";
- Policy policy = this.loadPolicy(policyXml);
-
- ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
-
- RampartEngine engine = new RampartEngine();
- engine.process(ctx);
- }
- catch (RampartException e) {
- assertEquals("Expected rampart to complain about missing security header",
- "Missing wsse:Security header in request", e.getMessage());
- }
- }
-
- public void testValidSOAPMessage() throws Exception {
-
MessageContext ctx = getMsgCtx();
String policyXml = "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml";
- Policy policy = loadPolicy(policyXml);
+ Policy policy = this.loadPolicy(policyXml);
ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
- MessageBuilder builder = new MessageBuilder();
- builder.build(ctx);
-
- // Building the SOAP envelope from the OMElement
- buildSOAPEnvelope(ctx);
-
RampartEngine engine = new RampartEngine();
- List<WSSecurityEngineResult> results = engine.process(ctx);
-
- /*
- The principle purpose of the test case is to verify that the above processes
- without throwing an exception. However, perform a minimal amount of validation on the
- results.
- */
- assertNotNull("RampartEngine returned null result", results);
- //verify cert was stored
- X509Certificate usedCert = null;
- for (WSSecurityEngineResult result : results) {
- Integer action = (Integer) result.get(WSSecurityEngineResult.TAG_ACTION);
- if (action == WSConstants.SIGN) {
- //the result is for the signature, which contains the used certificate
- usedCert = (X509Certificate) result.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
- break;
- }
- }
- assertNotNull("Result of processing did not include a certificate", usedCert);
+ engine.process(ctx);
}
+ @Test
+ public void testValidSOAPMessage() throws Exception {
+ runRampartEngine(getMsgCtx(), "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml");
+ }
+
+ @Test
public void testValidSOAP12Message() throws Exception {
+ runRampartEngine(getMsgCtx12(), "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml");
+ }
- MessageContext ctx = getMsgCtx12();
-
- String policyXml = "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml";
+ private void runRampartEngine(MessageContext ctx, String policyXml) throws Exception {
Policy policy = loadPolicy(policyXml);
ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
@@ -130,7 +97,7 @@
SOAPBuilder soapBuilder = new SOAPBuilder();
SOAPEnvelope env = ctx.getEnvelope();
ByteArrayInputStream inStream = new ByteArrayInputStream(env.toString().getBytes());
- env = (SOAPEnvelope) soapBuilder.processDocument(inStream, getContentTypeForEnvelope(env), ctx);
+ env = (SOAPEnvelope) soapBuilder.processDocument(inStream, env.getVersion().getMediaType().toString(), ctx);
ctx.setEnvelope(env);
}
}
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/SymmetricBindingBuilderTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/SymmetricBindingBuilderTest.java
index e86a4ca..2f5b1df 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/SymmetricBindingBuilderTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/SymmetricBindingBuilderTest.java
@@ -17,7 +17,6 @@
package org.apache.rampart;
import java.util.ArrayList;
-import java.util.Vector;
import javax.xml.namespace.QName;
@@ -40,7 +39,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -89,7 +88,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -113,7 +112,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -137,7 +136,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -159,7 +158,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- ArrayList list = new ArrayList();
+ ArrayList<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/TransportBindingBuilderTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/TransportBindingBuilderTest.java
index 6def58e..850af3e 100644
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/TransportBindingBuilderTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/rampart/TransportBindingBuilderTest.java
@@ -38,7 +38,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- List list = new ArrayList();
+ List<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.USERNAME_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.BINARY_TOKEN_LN));
@@ -57,7 +57,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- List list = new ArrayList();
+ List<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.USERNAME_TOKEN_LN));
list.add(new QName(WSConstants.SIG_NS, WSConstants.SIG_LN));
@@ -75,7 +75,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- List list = new ArrayList();
+ List<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
list.add(new QName(WSConstants.WSSE_NS, WSConstants.USERNAME_TOKEN_LN));
list.add(new QName(WSConstants.ENC_NS, WSConstants.ENC_KEY_LN));
@@ -97,7 +97,7 @@
MessageBuilder builder = new MessageBuilder();
builder.build(ctx);
- List list = new ArrayList();
+ List<QName> list = new ArrayList<QName>();
list.add(new QName(WSConstants.WSU_NS, WSConstants.TIMESTAMP_TOKEN_LN));
this.verifySecHeader(list.iterator(), ctx.getEnvelope());
}
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/InflowConfigurationTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/InflowConfigurationTest.java
deleted file mode 100644
index 4f2ca7b..0000000
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/InflowConfigurationTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler.config;
-
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.ws.security.handler.WSHandlerConstants;
-
-import junit.framework.TestCase;
-
-public class InflowConfigurationTest extends TestCase {
-
- public InflowConfigurationTest() {
- super();
- }
-
- public InflowConfigurationTest(String name) {
- super(name);
- }
-
- public void testGetProperty() {
- String actionItems = "Timestamp Signature Encrypt";
- String sigPropFile = "sig.properties";
- String decPropFile = "enc.properties";
- String pwcb = "org.apache.axis2.security.PWCallback";
-
- InflowConfiguration ifc = new InflowConfiguration();
-
- ifc.setActionItems(actionItems);
- ifc.setSignaturePropFile(sigPropFile);
- ifc.setDecryptionPropFile(decPropFile);
- ifc.setPasswordCallbackClass(pwcb);
-
- // Check whether the props are there
- assertTrue("Action items missing", -1 < ifc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSSHandlerConstants.ACTION_ITEMS + ">"
- + actionItems + "</"
- + WSSHandlerConstants.ACTION_ITEMS + ">"));
-
- assertTrue("passwordCallbackClass missing", -1 < ifc.getProperty().getParameterElement()
- .toString().indexOf(
- "<" + WSHandlerConstants.PW_CALLBACK_CLASS + ">" + pwcb
- + "</" + WSHandlerConstants.PW_CALLBACK_CLASS
- + ">"));
-
- assertTrue("sigPropFile missing", -1 < ifc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.SIG_PROP_FILE + ">"
- + sigPropFile + "</"
- + WSHandlerConstants.SIG_PROP_FILE + ">"));
-
- assertTrue("decPropFile missing", -1 < ifc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.DEC_PROP_FILE + ">"
- + decPropFile + "</"
- + WSHandlerConstants.DEC_PROP_FILE + ">"));
- }
-
-}
diff --git a/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/OutflowConfigurationTest.java b/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/OutflowConfigurationTest.java
deleted file mode 100644
index 01f786a..0000000
--- a/modules/rampart-tests/src/test/java/org/apache/rampart/handler/config/OutflowConfigurationTest.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed 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.rampart.handler.config;
-
-import junit.framework.TestCase;
-import org.apache.rampart.handler.WSSHandlerConstants;
-import org.apache.ws.security.WSConstants;
-import org.apache.ws.security.handler.WSHandlerConstants;
-
-/**
- * Tests the org.apache.axis2.security.handler.config.OutflowConfiguration
- */
-public class OutflowConfigurationTest extends TestCase {
-
- public OutflowConfigurationTest() {
- super();
- }
-
- public OutflowConfigurationTest(String name) {
- super(name);
- }
-
- /**
- * This sets all the possible properties that can be set with
- * the outflow configuration
- */
- public void testGetProperty() {
-
- OutflowConfiguration ofc = new OutflowConfiguration();
-
- String actionItems = "Timestamp Signature Encrypt";
- String user = "alice";
- String pwcb = "org.apache.axis2.security.PWCallback";
- String sigKeyId = "interop.properties";
- String sigParts = "{Element}{http://schemas.xmlsoap.org/ws/2004/08/"
- + "addressing}MessageID;{Element}{http://docs.oasis-open.org/wss/"
- + "2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd}Timestamp";
- String optimizeParts = "//xenc:EncryptedData/xenc:CipherData/xenc:CipherValue";
- String embeddedKeyCallbackClass = "org.apache.axis2.security.PWCallback";
- String encrUser = "bob";
- String samlPropFile = "saml.properties";
- String sigPropFile = "sig.properties";
- String encPropFile = "enc.properties";
-
- // Setting the properties in the ofc
- ofc.setActionItems(actionItems);
- ofc.setUser(user);
- ofc.setPasswordCallbackClass(pwcb);
- ofc.setSignatureKeyIdentifier(sigKeyId);
- ofc.setEncryptionKeyIdentifier(WSSHandlerConstants.SKI_KEY_IDENTIFIER);
- ofc.setSignatureParts(sigParts);
- ofc.setOptimizeParts(optimizeParts);
- ofc.setEmbeddedKeyCallbackClass(embeddedKeyCallbackClass);
- ofc.setEncryptionKeyTransportAlgorithm(WSConstants.KEYTRANSPORT_RSA15);
- ofc.setEncryptionSymAlgorithm(WSConstants.AES_128);
- ofc.setEncryptionUser(encrUser);
- ofc.setPasswordType(WSConstants.PW_DIGEST);
- ofc.setSamlPropFile(samlPropFile);
- ofc.setSignaturePropFile(sigPropFile);
- ofc.setEncryptionPropFile(encPropFile);
-
- // Check whether the props are there
- assertTrue("Action items missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSSHandlerConstants.ACTION_ITEMS + ">"
- + actionItems + "</"
- + WSSHandlerConstants.ACTION_ITEMS + ">"));
-
- assertTrue("User missing", -1 < ofc.getProperty().getParameterElement().toString().indexOf(
- "<" + WSHandlerConstants.USER + ">" + user + "</"
- + WSHandlerConstants.USER + ">"));
-
- assertTrue("passwordCallbackClass missing", -1 < ofc.getProperty().getParameterElement()
- .toString().indexOf(
- "<" + WSHandlerConstants.PW_CALLBACK_CLASS + ">" + pwcb
- + "</" + WSHandlerConstants.PW_CALLBACK_CLASS
- + ">"));
-
- assertTrue("sigKeyId missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.SIG_KEY_ID + ">" + sigKeyId
- + "</" + WSHandlerConstants.SIG_KEY_ID + ">"));
-
- assertTrue("encKeyId missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENC_KEY_ID + ">"
- + WSSHandlerConstants.SKI_KEY_IDENTIFIER + "</"
- + WSHandlerConstants.ENC_KEY_ID + ">"));
-
- assertTrue("signature parts missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.SIGNATURE_PARTS + ">"
- + sigParts + "</"
- + WSHandlerConstants.SIGNATURE_PARTS + ">"));
-
- assertTrue("optimize parts missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSSHandlerConstants.OPTIMIZE_PARTS + ">"
- + optimizeParts + "</"
- + WSSHandlerConstants.OPTIMIZE_PARTS + ">"));
-
- assertTrue("EmbeddedKeyCallbackClass missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENC_CALLBACK_CLASS + ">"
- + embeddedKeyCallbackClass + "</"
- + WSHandlerConstants.ENC_CALLBACK_CLASS + ">"));
-
- assertTrue("encryptionKeyTransportAlgorithm missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENC_KEY_TRANSPORT + ">"
- + WSConstants.KEYTRANSPORT_RSA15 + "</"
- + WSHandlerConstants.ENC_KEY_TRANSPORT + ">"));
-
- assertTrue("encryptionSymAlgorithm missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENC_SYM_ALGO + ">"
- + WSConstants.AES_128 + "</"
- + WSHandlerConstants.ENC_SYM_ALGO + ">"));
-
- assertTrue("encrUser missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENCRYPTION_USER + ">"
- + encrUser + "</"
- + WSHandlerConstants.ENCRYPTION_USER + ">"));
-
- assertTrue("passwordType missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.PASSWORD_TYPE + ">"
- + WSConstants.PW_DIGEST + "</"
- + WSHandlerConstants.PASSWORD_TYPE + ">"));
-
- assertTrue("samlPropFile missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.SAML_PROP_FILE + ">"
- + samlPropFile + "</"
- + WSHandlerConstants.SAML_PROP_FILE + ">"));
-
- assertTrue("sigPropFile missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.SIG_PROP_FILE + ">"
- + sigPropFile + "</"
- + WSHandlerConstants.SIG_PROP_FILE + ">"));
- assertTrue("encPropFile missing", -1 < ofc.getProperty().getParameterElement().toString()
- .indexOf(
- "<" + WSHandlerConstants.ENC_PROP_FILE + ">"
- + encPropFile + "</"
- + WSHandlerConstants.ENC_PROP_FILE + ">"));
- }
-
- /**
- * This tests multiple action configurations
- */
- public void testMultipleActions() {
- OutflowConfiguration ofc = new OutflowConfiguration(2);
-
- String actionItems1 = "Timestamp Signature Encrypt";
- String user1 = "alice";
-
- String actionItems2 = "Signature Encrypt Timestamp";
- String user2 = "alice2";
-
- ofc.setActionItems(actionItems1);
- ofc.setUser(user1);
-
- ofc.nextAction();
-
- ofc.setActionItems(actionItems2);
- ofc.setUser(user2);
-
- assertEquals("Action items mismatch", actionItems2, ofc.getActionItems());
- assertEquals("Action items mismatch", user2, ofc.getUser());
-
- ofc.previousAction();
-
- assertEquals("Action items mismatch", actionItems1, ofc.getActionItems());
- assertEquals("Action items mismatch", user1, ofc.getUser());
-
- }
-
-}
diff --git a/modules/rampart-tests/src/test/java/org/apache/ws/secpolicy/model/SecpolicyModelTest.java b/modules/rampart-tests/src/test/java/org/apache/ws/secpolicy/model/SecpolicyModelTest.java
index acefd3e..e2d9c89 100644
--- a/modules/rampart-tests/src/test/java/org/apache/ws/secpolicy/model/SecpolicyModelTest.java
+++ b/modules/rampart-tests/src/test/java/org/apache/ws/secpolicy/model/SecpolicyModelTest.java
@@ -35,12 +35,12 @@
public void testSymmBinding() throws Exception {
Policy p = this.getPolicy("test-resources/policy-symm-binding.xml");
- List assertions = (List)p.getAlternatives().next();
+ List<Assertion> assertions = (List<Assertion>)p.getAlternatives().next();
boolean symmBindingFound = false;
- for (Iterator iter = assertions.iterator(); iter.hasNext();) {
- Assertion assertion = (Assertion) iter.next();
+ for (Iterator<Assertion> iter = assertions.iterator(); iter.hasNext();) {
+ Assertion assertion = iter.next();
if(assertion instanceof SymmetricBinding) {
symmBindingFound = true;
SymmetricBinding binding = (SymmetricBinding)assertion;
@@ -67,11 +67,22 @@
public void testAsymmBinding() throws Exception {
this.getPolicy("test-resources/policy-asymm-binding.xml");
}
-
+
public void testTransportBinding() throws Exception {
this.getPolicy("test-resources/policy-transport-binding.xml");
}
+ public void testSymmBindingWithBothProtectionTokenAndEncryptionToken() throws Exception {
+ boolean exceptionThrown = false;
+ try {
+ this.getPolicy("test-resources/policy-symm-binding-fault1.xml");
+ } catch (IllegalArgumentException e) {
+ exceptionThrown = true;
+ }
+ assertTrue("Policy cannot contain both ProtectionToken and EncryptionToken",
+ exceptionThrown);
+ }
+
private Policy getPolicy(String filePath) throws Exception {
OMXMLParserWrapper builder = OMXMLBuilderFactory.createOMBuilder(new FileInputStream(filePath));
OMElement elem = builder.getDocumentElement();
diff --git a/modules/rampart-tests/test-resources/axis2.xml b/modules/rampart-tests/test-resources/axis2.xml
index 2219d74..48eb3b1 100644
--- a/modules/rampart-tests/test-resources/axis2.xml
+++ b/modules/rampart-tests/test-resources/axis2.xml
@@ -20,7 +20,7 @@
<parameter name="passwordCallbackClass" locked="false">
org.apache.axis2.security.PWCallback</parameter>
- <transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+ <transportSender name="http" class="org.apache.axis2.transport.http.impl.httpclient4.HTTPClient4TransportSender">
<parameter name="PROTOCOL" locked="false">HTTP/1.0</parameter>
</transportSender>
diff --git a/modules/rampart-tests/test-resources/policy-symm-binding-fault1.xml b/modules/rampart-tests/test-resources/policy-symm-binding-fault1.xml
new file mode 100644
index 0000000..aa19666
--- /dev/null
+++ b/modules/rampart-tests/test-resources/policy-symm-binding-fault1.xml
@@ -0,0 +1,64 @@
+<wsp:Policy wsu:Id="3" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SymmetricBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:ProtectionToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireDerivedKeys/>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:ProtectionToken>
+ <sp:EncryptionToken>
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/Never">
+ <wsp:Policy>
+ <sp:RequireDerivedKeys/>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:EncryptionToken>
+ <sp:AlgorithmSuite>
+ <wsp:Policy>
+ <sp:Basic128/>
+ </wsp:Policy>
+ </sp:AlgorithmSuite>
+ <sp:Layout>
+ <wsp:Policy>
+ <sp:Strict/>
+ </wsp:Policy>
+ </sp:Layout>
+ <sp:IncludeTimestamp/>
+ <sp:EncryptSignature/>
+ <sp:OnlySignEntireHeadersAndBody/>
+ </wsp:Policy>
+ </sp:SymmetricBinding>
+ <sp:EndorsingSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:X509Token sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <sp:RequireThumbprintReference/>
+ <sp:WssX509V3Token10/>
+ </wsp:Policy>
+ </sp:X509Token>
+ </wsp:Policy>
+ </sp:EndorsingSupportingTokens>
+ <sp:Wss11 xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
+ <wsp:Policy>
+ <sp:MustSupportRefKeyIdentifier/>
+ <sp:MustSupportRefIssuerSerial/>
+ <sp:MustSupportRefThumbprint/>
+ <sp:MustSupportRefEncryptedKey/>
+ <sp:RequireSignatureConfirmation/>
+ </wsp:Policy>
+ </sp:Wss11>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-tests/test-resources/policy/rampart-hashed-password.xml b/modules/rampart-tests/test-resources/policy/rampart-hashed-password.xml
new file mode 100644
index 0000000..7a250df
--- /dev/null
+++ b/modules/rampart-tests/test-resources/policy/rampart-hashed-password.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsp:Policy wsu:Id="UTOverTransport"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SignedSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient">
+ <wsp:Policy>
+ <sp:HashPassword/>
+ </wsp:Policy>
+ </sp:UsernameToken>
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-tests/test-resources/policy/rampart-plaintext-password.xml b/modules/rampart-tests/test-resources/policy/rampart-plaintext-password.xml
new file mode 100644
index 0000000..05b9cac
--- /dev/null
+++ b/modules/rampart-tests/test-resources/policy/rampart-plaintext-password.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<wsp:Policy wsu:Id="UTOverTransport"
+ xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
+ xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy">
+ <wsp:ExactlyOne>
+ <wsp:All>
+ <sp:SignedSupportingTokens xmlns:sp="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702">
+ <wsp:Policy>
+ <sp:UsernameToken sp:IncludeToken="http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient"/>
+ </wsp:Policy>
+ </sp:SignedSupportingTokens>
+ </wsp:All>
+ </wsp:ExactlyOne>
+</wsp:Policy>
diff --git a/modules/rampart-tests/test-resources/policy/soapmessage12.xml b/modules/rampart-tests/test-resources/policy/soapmessage12.xml
new file mode 100644
index 0000000..c8e5d0b
--- /dev/null
+++ b/modules/rampart-tests/test-resources/policy/soapmessage12.xml
@@ -0,0 +1,57 @@
+<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
+ xmlns:axis2="http://ws.apache.org/namespaces/axis2">
+ <soapenv:Header xmlns:fabrikam="http://example.com/fabrikam">
+ <wsa:MessageID soapenv:mustUnderstand="0">
+ uuid:920C5190-0B8F-11D9-8CED-F22EDEEBF7E5</wsa:MessageID>
+ <wsa:To soapenv:mustUnderstand="0">http://localhost:8081/axis/services/BankPort</wsa:To>
+ <wsa:From axis2:AttrExt="123456789" soapenv:mustUnderstand="0" >
+ <wsa:Address>
+ http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</wsa:Address>
+ <wsa:ReferenceParameters>
+ <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
+ </wsa:ReferenceParameters>
+ <wsa:ReferenceProperties>
+ <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
+ </wsa:ReferenceProperties>
+ <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
+ </wsa:From>
+ <wsa:Action>http://ws.apache.org/tests/action</wsa:Action>
+ <wsa:ReplyTo axis2:AttrExt="123456789">
+ <wsa:Address>http://example.com/fabrikam/acct</wsa:Address>
+ <wsa:ReferenceParameters>
+ <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
+ </wsa:ReferenceParameters>
+ <wsa:ReferenceProperties>
+ <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
+ </wsa:ReferenceProperties>
+ <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
+ </wsa:ReplyTo>
+
+ <wsa:FaultTo axis2:AttrExt="123456789">
+ <wsa:Address>http://example.com/fabrikam/fault</wsa:Address>
+ <wsa:ReferenceParameters>
+ <fabrikam:CustomerKey>123456789</fabrikam:CustomerKey>
+ </wsa:ReferenceParameters>
+ <wsa:ReferenceProperties>
+ <fabrikam:ShoppingCart>ABCDEFG</fabrikam:ShoppingCart>
+ </wsa:ReferenceProperties>
+ <axis2:EPRExt axis2:AttrExt="123456789">123456789</axis2:EPRExt>
+ </wsa:FaultTo>
+ <wsa:RelatesTo>http://some.previous.message</wsa:RelatesTo>
+ <wsa:RelatesTo RelationshipType="axis2:some.custom.relationship">http://identifier.of.other.message/</wsa:RelatesTo>
+
+ </soapenv:Header>
+ <soapenv:Body>
+ <ns1:getBalance soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xmlns:ns1="http://localhost:8081/axis/services/BankPort">
+ <accountNo href="#id0"/>
+ </ns1:getBalance>
+ <multiRef id="id0" soapenc:root="0"
+ soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
+ xsi:type="xsd:int" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
+ 1001</multiRef>
+ </soapenv:Body>
+</soapenv:Envelope>
\ No newline at end of file
diff --git a/modules/rampart-trust-mar/pom.xml b/modules/rampart-trust-mar/pom.xml
index f08bcf7..c5de97e 100644
--- a/modules/rampart-trust-mar/pom.xml
+++ b/modules/rampart-trust-mar/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -35,30 +35,9 @@
<packaging>mar</packaging>
<name>Rampart - Trust-Mar</name>
- <scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk</connection>
- <developerConnection>
- scm:svn:https://svn.apache.org/repos/asf/axis/axis2/java/rampart/trunk</developerConnection>
- <url>http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk</url>
- </scm>
-
<build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- </resource>
- </resources>
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-mar-maven-plugin</artifactId>
<extensions>true</extensions>
diff --git a/modules/rampart-trust/pom.xml b/modules/rampart-trust/pom.xml
index adf100c..a4b5452 100644
--- a/modules/rampart-trust/pom.xml
+++ b/modules/rampart-trust/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart-project</artifactId>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<relativePath>../../pom.xml</relativePath>
</parent>
@@ -35,31 +35,8 @@
<name>Rampart - Trust</name>
<build>
- <sourceDirectory>src/main/java</sourceDirectory>
- <resources>
- <resource>
- <directory>src/main/java</directory>
- <excludes>
- <exclude>**/*.java</exclude>
- </excludes>
- </resource>
- </resources>
- <testResources>
- <testResource>
- <directory>${project.basedir}/src/test/resources</directory>
- </testResource>
- </testResources>
-
<plugins>
<plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <configuration>
- <source>1.5</source>
- <target>1.5</target>
- </configuration>
- </plugin>
- <plugin>
<artifactId>maven-surefire-plugin</artifactId>
<!--configuration>
<includes>
@@ -82,6 +59,28 @@
<scope>runtime</scope>
</dependency>
<dependency>
+ <groupId>org.apache.ws.security</groupId>
+ <artifactId>wss4j</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<scope>test</scope>
@@ -92,19 +91,4 @@
<scope>test</scope>
</dependency>
</dependencies>
-
- <reporting>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <configuration>
- <templateDirectory>${basedir}</templateDirectory>
- <menu ref="parent" />
- </configuration>
- </plugin>
- </plugins>
- </reporting>
-
</project>
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java b/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
index 7194688..2f0b906 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
@@ -19,7 +19,7 @@
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMXMLBuilderFactory;
-import org.apache.axiom.om.util.Base64;
+import org.apache.axiom.util.base64.Base64Utils;
import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.context.MessageContext;
import org.apache.ws.security.WSConstants;
@@ -395,7 +395,7 @@
OMElement binSecElem = entropyElem.getFirstElement();
if (binSecElem != null && binSecElem.getText() != null
&& !"".equals(binSecElem.getText())) {
- this.requestEntropy = Base64.decode(binSecElem.getText());
+ this.requestEntropy = Base64Utils.decode(binSecElem.getText());
} else {
throw new TrustException("malformedEntropyElement",
new String[]{entropyElem.toString()});
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java b/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
index 944ad45..553af5f 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/STSMessageReceiver.java
@@ -39,7 +39,7 @@
.getParameter(TokenRequestDispatcherConfig.CONFIG_PARAM_KEY);
Parameter paramFile = inMessage
.getParameter(TokenRequestDispatcherConfig.CONFIG_FILE_KEY);
- TokenRequestDispatcher dispatcher = null;
+ TokenRequestDispatcher dispatcher;
if (param != null) {
dispatcher = new TokenRequestDispatcher(param
.getParameterElement().getFirstChildWithName(
@@ -53,12 +53,8 @@
.getProperty(TokenRequestDispatcherConfig.CONFIG_PARAM_KEY));
}
- if(dispatcher != null) {
- SOAPEnvelope responseEnv = dispatcher.handle(inMessage, outMessage);
- outMessage.setEnvelope(responseEnv);
- } else {
- throw new TrustException("missingDispatcherConfiguration");
- }
+ SOAPEnvelope responseEnv = dispatcher.handle(inMessage, outMessage);
+ outMessage.setEnvelope(responseEnv);
} catch (TrustException e) {
e.printStackTrace();
//Log the exception
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java b/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java
index 61ebc08..74e0e56 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java
@@ -23,7 +23,12 @@
import javax.xml.namespace.QName;
import java.io.Serializable;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Hashtable;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReadWriteLock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
@@ -86,17 +91,13 @@
}
public String[] getTokenIdentifiers() throws TrustException {
- List identifiers = new ArrayList();
-
readLock.lock();
try {
- for (Iterator iterator = tokens.keySet().iterator(); iterator.hasNext();) {
- identifiers.add(iterator.next());
- }
+ Set identifiers = tokens.keySet();
+ return (String[]) identifiers.toArray(new String[identifiers.size()]);
} finally {
readLock.unlock();
}
- return (String[]) identifiers.toArray(new String[identifiers.size()]);
}
public Token[] getValidTokens() throws TrustException {
@@ -116,8 +117,7 @@
return getTokens(Token.EXPIRED);
}
- private Token[] getTokens(int[] states) throws TrustException {
- processTokenExpiry();
+ private Token[] getTokens(int... states) throws TrustException {
List tokens = new ArrayList();
readLock.lock();
@@ -125,6 +125,7 @@
try {
for (Iterator iterator = this.tokens.values().iterator(); iterator.hasNext();) {
Token token = (Token) iterator.next();
+ processTokenExpiry(token);
for (int i = 0; i < states.length; i++) {
if (token.getState() == states[i]) {
tokens.add(token);
@@ -138,28 +139,7 @@
return (Token[]) tokens.toArray(new Token[tokens.size()]);
}
- private Token[] getTokens(int state) throws TrustException {
- processTokenExpiry();
- List tokens = new ArrayList();
-
- readLock.lock();
-
- try {
- for (Iterator iterator = this.tokens.values().iterator(); iterator.hasNext();) {
- Token token = (Token) iterator.next();
- if (token.getState() == state) {
- tokens.add(token);
- }
- }
- } finally {
- readLock.unlock();
- }
- return (Token[]) tokens.toArray(new Token[tokens.size()]);
- }
-
public Token getToken(String id) throws TrustException {
- processTokenExpiry();
-
readLock.lock();
Token token;
@@ -172,6 +152,7 @@
//Try to find the token using attached refs & unattached refs
for (Iterator iterator = this.tokens.values().iterator(); iterator.hasNext();) {
Token tempToken = (Token) iterator.next();
+ processTokenExpiry(tempToken);
OMElement elem = tempToken.getAttachedReference();
if(elem != null && id.equals(this.getIdFromSTR(elem))) {
token = tempToken;
@@ -182,7 +163,8 @@
}
}
-
+ } else {
+ processTokenExpiry(token);
}
} finally {
@@ -202,20 +184,10 @@
}
}
- protected void processTokenExpiry() throws TrustException {
-
- readLock.lock();
-
- try {
- for (Iterator iterator = tokens.values().iterator(); iterator.hasNext();) {
- Token token = (Token) iterator.next();
- if (token.getExpires() != null &&
- token.getExpires().getTime() < System.currentTimeMillis()) {
- token.setState(Token.EXPIRED);
- }
- }
- } finally {
- readLock.unlock();
+ protected void processTokenExpiry(Token token) throws TrustException {
+ if (token.getExpires() != null &&
+ token.getExpires().getTime() < System.currentTimeMillis()) {
+ token.setState(Token.EXPIRED);
}
}
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java b/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
index 200b48c..2416a5b 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java
@@ -20,9 +20,9 @@
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMException;
import org.apache.axiom.om.OMNode;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
-import org.apache.axiom.om.util.Base64;
+import org.apache.axiom.om.OMXMLBuilderFactory;
import org.apache.axiom.soap.SOAP12Constants;
+import org.apache.axiom.util.base64.Base64Utils;
import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.AddressingConstants;
import org.apache.axis2.addressing.EndpointReference;
@@ -474,10 +474,10 @@
BINARY_SECRET))) {
//First check for the binary secret
String b64Secret = child.getText();
- secret = Base64.decode(b64Secret);
+ secret = Base64Utils.decode(b64Secret);
} else if (child.getQName().equals(new QName(ns, WSConstants.ENC_KEY_LN))) {
- Element domChild = (Element) new StAXOMBuilder(
+ Element domChild = (Element)OMXMLBuilderFactory.createStAXOMBuilder(
OMAbstractFactory.getMetaFactory(
OMAbstractFactory.FEATURE_DOM).getOMFactory(),
child.getXMLStreamReader()).getDocumentElement();
@@ -505,7 +505,7 @@
if (binSecElem != null && binSecElem.getText() != null
&& !"".equals(binSecElem.getText().trim())) {
- byte[] serviceEntr = Base64.decode(binSecElem.getText());
+ byte[] serviceEntr = Base64Utils.decode(binSecElem.getText());
//Right now we only use PSHA1 as the computed key algo
P_SHA1 p_sha1 = new P_SHA1();
@@ -718,10 +718,10 @@
this.requestorEntropy =
WSSecurityUtil.generateNonce(this.algorithmSuite.
getMaximumSymmetricKeyLength()/8);
- binSec.setText(Base64.encode(this.requestorEntropy));
+ binSec.setText(Base64Utils.encode(this.requestorEntropy));
if (log.isDebugEnabled()) {
- log.debug("Clien entropy : " + Base64.encode(this.requestorEntropy));
+ log.debug("Clien entropy : " + Base64Utils.encode(this.requestorEntropy));
}
// Add the ComputedKey element
@@ -744,10 +744,10 @@
this.requestorEntropy =
WSSecurityUtil.generateNonce(this.algorithmSuite.
getMaximumSymmetricKeyLength()/8);
- binSec.setText(Base64.encode(this.requestorEntropy));
+ binSec.setText(Base64Utils.encode(this.requestorEntropy));
if (log.isDebugEnabled()) {
- log.debug("Clien entropy : " + Base64.encode(this.requestorEntropy));
+ log.debug("Clien entropy : " + Base64Utils.encode(this.requestorEntropy));
}
// Add the ComputedKey element
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
index 8d7b312..2e32a92 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SAML2TokenIssuer.java
@@ -136,7 +136,7 @@
* <wst:TokenType>...</wst:TokenType>
* <wst:RequestedSecurityToken>...</wst:RequestedSecurityToken>
* ...
- * <wsp:AppliesTo xmlns:wsp="...”>...</wsp:AppliesTo>
+ * <wsp:AppliesTo xmlns:wsp="...">...</wsp:AppliesTo>
* <wst:RequestedAttachedReference>
* ...
* </wst:RequestedAttachedReference>
@@ -359,7 +359,7 @@
* ...
* </saml2:NameID>
* <saml2:SubjectConfirmation
- * Method=”urn:oasis:names:tc:SAML:2.0:cm:holder-of-key”>
+ * Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
* <saml2:SubjectConfirmationData
* xsi:type="saml2:KeyInfoConfirmationDataType">
* <ds:KeyInfo>
@@ -441,8 +441,8 @@
* <saml:Subject>
* <saml:NameIdentifier
* NameQualifier="www.example.com"
- * Format=“urn:oasis:names:tc:SAML:1.1:nameid-
- * format:X509SubjectName”>
+ * Format="urn:oasis:names:tc:SAML:1.1:nameid-
+ * format:X509SubjectName">
* uid=joe,ou=people,ou=saml-demo,o=baltimore.com
* </saml:NameIdentifier>
* <saml:SubjectConfirmation>
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SCTIssuerConfig.java b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SCTIssuerConfig.java
index 5d0f231..891c2fc 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SCTIssuerConfig.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SCTIssuerConfig.java
@@ -17,7 +17,8 @@
package org.apache.rahas.impl;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.rahas.TrustException;
import javax.xml.namespace.QName;
@@ -68,10 +69,10 @@
public static SCTIssuerConfig load(String configFilePath)
throws TrustException {
FileInputStream fis;
- StAXOMBuilder builder;
+ OMXMLParserWrapper builder;
try {
fis = new FileInputStream(configFilePath);
- builder = new StAXOMBuilder(fis);
+ builder = OMXMLBuilderFactory.createOMBuilder(fis);
} catch (Exception e) {
throw new TrustException("errorLoadingConfigFile",
new String[] { configFilePath });
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenCancelerConfig.java b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenCancelerConfig.java
index a125c23..bddc9ba 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenCancelerConfig.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenCancelerConfig.java
@@ -16,7 +16,8 @@
package org.apache.rahas.impl;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.OMXMLBuilderFactory;
+import org.apache.axiom.om.OMXMLParserWrapper;
import org.apache.rahas.TrustException;
import javax.xml.namespace.QName;
@@ -68,10 +69,10 @@
public static TokenCancelerConfig load(String configFilePath)
throws TrustException {
FileInputStream fis;
- StAXOMBuilder builder;
+ OMXMLParserWrapper builder;
try {
fis = new FileInputStream(configFilePath);
- builder = new StAXOMBuilder(fis);
+ builder = OMXMLBuilderFactory.createOMBuilder(fis);
} catch (Exception e) {
throw new TrustException("errorLoadingConfigFile", new String[] { configFilePath });
}
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenIssuerUtil.java b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenIssuerUtil.java
index 620d078..27319cf 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenIssuerUtil.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/TokenIssuerUtil.java
@@ -18,7 +18,7 @@
import java.security.SecureRandom;
import org.apache.axiom.om.OMElement;
-import org.apache.axiom.om.util.Base64;
+import org.apache.axiom.util.base64.Base64Utils;
import org.apache.rahas.RahasConstants;
import org.apache.rahas.RahasData;
import org.apache.rahas.Token;
@@ -94,7 +94,7 @@
//set the RPT to include a ComputedKey element
OMElement respEntrElem = TrustUtil.createEntropyElement(wstVersion, rstrElem);
- String entr = Base64.encode(data.getResponseEntropy());
+ String entr = Base64Utils.encode(data.getResponseEntropy());
OMElement binSecElem = TrustUtil.createBinarySecretElement(wstVersion,
respEntrElem,
RahasConstants.BIN_SEC_TYPE_NONCE);
@@ -141,7 +141,7 @@
OMElement binSecElem = TrustUtil.createBinarySecretElement(wstVersion,
reqProofTokElem,
null);
- binSecElem.setText(Base64.encode(secret));
+ binSecElem.setText(Base64Utils.encode(secret));
token.setSecret(secret);
} else {
throw new IllegalArgumentException(config.proofKeyType);
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
index 01e0676..dd58343 100644
--- a/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
+++ b/modules/rampart-trust/src/main/java/org/apache/rahas/impl/util/SAMLUtils.java
@@ -1,5 +1,6 @@
package org.apache.rahas.impl.util;
+import org.apache.axiom.util.UIDGenerator;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.rahas.RahasConstants;
@@ -25,8 +26,6 @@
import org.opensaml.xml.security.SecurityHelper;
import org.opensaml.xml.security.credential.Credential;
import org.opensaml.xml.signature.*;
-import org.opensaml.xml.signature.KeyInfo;
-import org.opensaml.xml.signature.X509Data;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
@@ -386,7 +385,7 @@
* This method creates the final SAML assertion. The final SAML assertion would looks like as follows,
* <saml:Assertion AssertionID="_a75adf55-01d7-40cc-929f-dbd8372ebdfc"
* IssueInstant="2003-04-17T00:46:02Z"
- * Issuer=”www.opensaml.org”
+ * Issuer="www.opensaml.org"
* MajorVersion="1"
* MinorVersion="1"
* xmlns="urn:oasis:names:tc:SAML:1.0:assertion">
@@ -436,7 +435,8 @@
assertion.setIssuer(issuerName);
assertion.setConditions(SAMLUtils.createConditions(notBefore, notOnOrAfter));
assertion.getStatements().addAll(statements);
-
+ assertion.setID(UIDGenerator.generateUID());
+ assertion.setIssueInstant(new DateTime());
return assertion;
}
@@ -565,7 +565,7 @@
// Encoding type set to http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0
// #Base64Binary
keyIdentifier.setEncodingType(KeyIdentifier.ENCODING_TYPE_BASE64_BINARY);
- keyIdentifier.setValueType(WSSecurityConstants.THUMB_PRINT_SHA1);
+ keyIdentifier.setValueType(WSSecurityConstants.WS_SECURITY11_NS+"#ThumbprintSHA1");
keyIdentifier.setValue(getThumbprintSha1(certificate));
securityTokenReference.getUnknownXMLObjects().add(keyIdentifier);
diff --git a/modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties b/modules/rampart-trust/src/main/resources/org/apache/rahas/errors.properties
similarity index 100%
rename from modules/rampart-trust/src/main/java/org/apache/rahas/errors.properties
rename to modules/rampart-trust/src/main/resources/org/apache/rahas/errors.properties
diff --git a/pom.xml b/pom.xml
index 4666ecf..75a4a3d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
- <version>8</version>
+ <version>17</version>
</parent>
<groupId>org.apache.rampart</groupId>
@@ -33,7 +33,7 @@
<artifactId>rampart-project</artifactId>
<packaging>pom</packaging>
<description> WS-Security, WS-Trust and WS-SecureConversation implementaion for Apache Axis2 </description>
- <version>1.7.0-SNAPSHOT</version>
+ <version>1.8.0-SNAPSHOT</version>
<name>Apache Rampart</name>
<url>http://axis.apache.org/axis2/java/rampart</url>
@@ -118,6 +118,13 @@
<url>http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk</url>
</scm>
+ <distributionManagement>
+ <site>
+ <id>site</id>
+ <url>scm:svn:https://svn.apache.org/repos/asf/axis/site/axis2/java/rampart-staging</url>
+ </site>
+ </distributionManagement>
+
<build>
<pluginManagement>
<plugins>
@@ -126,16 +133,66 @@
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<preparationGoals>clean install</preparationGoals>
+ <tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.axis2</groupId>
<artifactId>axis2-mar-maven-plugin</artifactId>
- <version>1.5.4</version>
+ <version>${axis2.version}</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.10</version>
+ <configuration>
+ <argLine>${jacoco.surefireArgLine}</argLine>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <version>1.7</version>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.gmavenplus</groupId>
+ <artifactId>gmavenplus-plugin</artifactId>
+ <version>1.5</version>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <version>2.4.4</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ <plugin>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <version>2.6</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.7</version>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-repo-maven-plugin</artifactId>
+ <version>${axis2.version}</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.4</version>
+ <configuration>
+ <!-- Required by maven-scm-publish-plugin -->
+ <skipDeploy>true</skipDeploy>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <version>2.6</version>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>2.10.3</version>
</plugin>
</plugins>
</pluginManagement>
@@ -157,110 +214,240 @@
<banPluginRepositories>true</banPluginRepositories>
<!-- We still need to allow the Apache snapshot repository -->
<allowSnapshotRepositories>true</allowSnapshotRepositories>
+ <allowSnapshotPluginRepositories>true</allowSnapshotPluginRepositories>
</requireNoRepositories>
</rules>
</configuration>
</execution>
</executions>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.gmavenplus</groupId>
+ <artifactId>gmavenplus-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>initialize</id>
+ <phase>initialize</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <scripts>
+ <script>
+ <!-- Skip Jacoco if necessary -->
+ if (project.packaging == 'pom' || project.properties['skipTests'] == 'true') {
+ project.properties['skipJacoco'] = 'true'
+ }
+ </script>
+ </scripts>
+ </configuration>
+ </execution>
+ <execution>
+ <id>prepare-site</id>
+ <phase>pre-site</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <scripts>
+ <script>
+ import java.util.Date
+ import java.text.MessageFormat
+ project.properties['release_date'] = MessageFormat.format("{0,date,MMMMM dd, yyyy}", new Date())
+ project.properties['release_version'] = project.version.replaceAll("-SNAPSHOT", "")
+ project.properties['skipSiteSite'] = String.valueOf(!new File(project.basedir, 'src/site/site.xml').exists())
+ </script>
+ </scripts>
+ </configuration>
+ </execution>
+ <execution>
+ <id>check-site</id>
+ <phase>post-site</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <scripts>
+ <script>
+ project.properties['skipSiteStage'] = String.valueOf(!new File(project.reporting.outputDirectory).exists())
+ </script>
+ </scripts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ <version>${jacoco.version}</version>
+ <executions>
+ <execution>
+ <id>prepare-agent-for-surefire</id>
+ <goals>
+ <goal>prepare-agent</goal>
+ </goals>
+ <configuration>
+ <propertyName>jacoco.surefireArgLine</propertyName>
+ <!-- Anonymize the session ID (by default it contains the name of the host executing the build) -->
+ <sessionId>mvn:${project.groupId}:${project.artifactId}:${project.version}:surefire</sessionId>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <skip>${skipJacoco}</skip>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>build-helper-maven-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-jacoco-exec</id>
+ <phase>test</phase>
+ <goals>
+ <goal>attach-artifact</goal>
+ </goals>
+ <configuration>
+ <skipAttach>${skipJacoco}</skipAttach>
+ <artifacts>
+ <artifact>
+ <file>${project.build.directory}/jacoco.exec</file>
+ <classifier>jacoco</classifier>
+ <type>exec</type>
+ </artifact>
+ </artifacts>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <!-- We need (some of) the source JARs for the code coverage analysis. -->
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>source-jars</id>
+ <goals>
+ <goal>jar-no-fork</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <attach>true</attach>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0</version>
<configuration>
- <source>1.5</source>
- <target>1.5</target>
+ <source>1.6</source>
+ <target>1.6</target>
</configuration>
</plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>animal-sniffer-maven-plugin</artifactId>
+ <version>1.14</version>
+ <executions>
+ <execution>
+ <id>check</id>
+ <phase>verify</phase>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ <configuration>
+ <signature>
+ <groupId>org.codehaus.mojo.signature</groupId>
+ <artifactId>java16</artifactId>
+ <version>1.1</version>
+ </signature>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
- <version>2.0-beta-5</version>
- <inherited>false</inherited>
+ <executions>
+ <execution>
+ <id>default-site</id>
+ <phase>site</phase>
+ <goals>
+ <goal>site</goal>
+ </goals>
+ <configuration>
+ <skip>${skipSiteSite}</skip>
+ </configuration>
+ </execution>
+ <execution>
+ <id>site-stage</id>
+ <phase>site-deploy</phase>
+ <goals>
+ <goal>stage</goal>
+ </goals>
+ <configuration>
+ <skip>${skipSiteStage}</skip>
+ </configuration>
+ </execution>
+ </executions>
+ <configuration>
+ <!-- Don't deploy; we use maven-scm-publish-plugin -->
+ <skipDeploy>true</skipDeploy>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-scm-publish-plugin</artifactId>
+ <version>1.0-beta-2</version>
</plugin>
</plugins>
</build>
-
- <dependencies>
-
- <!-- Axis2 and Axiom Dependencies -->
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-kernel</artifactId>
- <version>${axis2.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>mex</artifactId>
- <version>${axis2.version}</version>
- <classifier>impl</classifier>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-mtompolicy</artifactId>
- <version>${axis2.version}</version>
- <scope>compile</scope>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>addressing</artifactId>
- <type>mar</type>
- <version>${axis2.version}</version>
- <scope>compile</scope>
- </dependency>
-
- <!-- Other Rampart Dependencies -->
- <dependency>
- <groupId>org.apache.ws.security</groupId>
- <artifactId>wss4j</artifactId>
- <version>${wss4j.version}</version>
- </dependency>
- <dependency>
- <groupId>xalan</groupId>
- <artifactId>xalan</artifactId>
- <version>2.7.1</version>
- </dependency>
- <dependency>
- <groupId>org.opensaml</groupId>
- <artifactId>opensaml</artifactId>
- <version>${opensaml.version}</version>
- <exclusions>
- <!-- Don't allow OpenSAML to impose a particular logging implementation -->
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>jcl-over-slf4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>org.slf4j</groupId>
- <artifactId>log4j-over-slf4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>commons-lang</groupId>
- <artifactId>commons-lang</artifactId>
- <version>2.3</version>
- </dependency>
- <dependency>
- <groupId>bouncycastle</groupId>
- <artifactId>bcprov-jdk15</artifactId>
- <version>${bcprov.jdk15.version}</version>
- </dependency>
-
- <!-- Junit Dependency -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
-
- </dependencies>
-
+ <reporting>
+ <plugins>
+ <plugin>
+ <artifactId>maven-project-info-reports-plugin</artifactId>
+ <version>2.8.1</version>
+ <reportSets>
+ <reportSet>
+ <reports>
+ <report>project-team</report>
+ <report>dependencies</report>
+ <report>mailing-list</report>
+ </reports>
+ </reportSet>
+ </reportSets>
+ </plugin>
+ </plugins>
+ </reporting>
+
<dependencyManagement>
<dependencies>
+ <!-- Axis2 dependencies -->
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-kernel</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-mtompolicy</artifactId>
+ <version>${axis2.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>mex</artifactId>
+ <version>${axis2.version}</version>
+ <classifier>impl</classifier>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>addressing</artifactId>
+ <version>${axis2.version}</version>
+ <type>mar</type>
+ </dependency>
+
<!-- Since Rampart depends on DOOM, but axiom-dom is not a transitive
dependency, we need to manage the Axiom version. -->
<dependency>
@@ -278,7 +465,49 @@
<artifactId>axiom-dom</artifactId>
<version>${axiom.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.ws.commons.axiom</groupId>
+ <artifactId>axiom-truth</artifactId>
+ <version>${axiom.version}</version>
+ </dependency>
+ <!-- Other Rampart Dependencies -->
+ <dependency>
+ <groupId>org.apache.ws.security</groupId>
+ <artifactId>wss4j</artifactId>
+ <version>${wss4j.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
+ <version>${bcprov.jdk15.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>xalan</groupId>
+ <artifactId>xalan</artifactId>
+ <version>2.7.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.opensaml</groupId>
+ <artifactId>opensaml</artifactId>
+ <version>${opensaml.version}</version>
+ <exclusions>
+ <!-- Don't allow OpenSAML to impose a particular logging implementation -->
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>jcl-over-slf4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.slf4j</groupId>
+ <artifactId>log4j-over-slf4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
@@ -320,21 +549,17 @@
</exclusion>
</exclusions>
</dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>4.12</version>
+ </dependency>
</dependencies>
</dependencyManagement>
<profiles>
<profile>
<id>apache-release</id>
- <activation>
- <property>
- <name>release</name>
- </property>
- </activation>
- <modules>
- <module>modules/documentation</module>
- <module>modules/distribution</module>
- </modules>
<build>
<plugins>
<plugin>
@@ -355,22 +580,26 @@
</execution>
</executions>
</plugin>
+ <plugin>
+ <artifactId>maven-source-plugin</artifactId>
+ <executions>
+ <execution>
+ <!-- Skip the execution configured in org.apache:apache. We use our own configuration. -->
+ <id>attach-sources</id>
+ <phase>none</phase>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
</plugins>
</build>
</profile>
-
- <profile>
- <!-- Profile that includes all modules. This is handy when using maven-release-plugin
- for anything else than doing a release. -->
- <id>everything</id>
- <modules>
- <module>modules/documentation</module>
- <module>modules/distribution</module>
- </modules>
- </profile>
</profiles>
<modules>
+ <module>apidocs</module>
<module>modules/rampart-policy</module>
<module>modules/rampart-trust</module>
<module>modules/rampart-core</module>
@@ -378,24 +607,35 @@
<module>modules/rampart-mar</module>
<module>modules/rampart-trust-mar</module>
<module>modules/rampart-integration</module>
- <!-- Compile sample codes -->
- <module>modules/rampart-samples</module>
+ <module>modules/rampart-samples</module> <!-- Compile sample codes -->
+ <module>modules/distribution</module>
+ <module>code-coverage</module>
</modules>
<properties>
- <axis2.version>1.7.0-SNAPSHOT</axis2.version>
- <axiom.version>1.2.14-SNAPSHOT</axiom.version>
+ <axis2.version>1.8.0-SNAPSHOT</axis2.version>
+ <axiom.version>1.3.0-SNAPSHOT</axiom.version>
- <wss4j.version>1.6.4</wss4j.version>
+ <wss4j.version>1.6.19</wss4j.version>
<opensaml.version>2.5.1-1</opensaml.version>
- <bcprov.jdk15.version>140</bcprov.jdk15.version>
+ <bcprov.jdk15.version>1.49</bcprov.jdk15.version>
- <junit.version>3.8.2</junit.version>
-
- <!-- distribution properties -->
- <dist.dir>rampart-${project.version}</dist.dir>
<failIfNoTests>false</failIfNoTests>
+ <jacoco.version>0.7.5.201505241946</jacoco.version>
</properties>
+
+ <pluginRepositories>
+ <pluginRepository>
+ <id>apache.snapshots</id>
+ <url>http://repository.apache.org/snapshots/</url>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ </pluginRepository>
+ </pluginRepositories>
</project>
diff --git a/release-docs/ChangeLog.txt b/release-docs/ChangeLog.txt
deleted file mode 100644
index e491892..0000000
--- a/release-docs/ChangeLog.txt
+++ /dev/null
@@ -1,255 +0,0 @@
-This file contains a listing of all Jira issues that have been closed
-for a given release.
-
-Release 1.6.0 - 06 Jun 2011
-===========================
-** Bug
- * [RAMPART-327] - SVN locations mentioned in the developer guide are obsoleted
- * [RAMPART-326] - Soap faults would not be secured if parameter based configuration is used
- * [RAMPART-317] - Rampart Trust implementation does not properly handle SAML token with Bearer subject confirmation method
- * [RAMPART-305] - If Rampart detects a security error a HTML page is send to the client instead of a SOAP fault
- * [RAMPART-299] - Rampart ignores BootstrapPolicy settings in message exchange with WS-SecureConversation STS
- * [RAMPART-398] - Client using SymmetricBinding runs slower and slower as more requests are made
- * [RAMPART-264] - PolicyBasedResultsValidator fails on ContentEncryptedElements and EncryptedElements
- * [RAMPART-236] - Error in service method is not properly handled for parameter based WS-Security (issue in RampartReceiver??)
- * [RAMPART-201] - Add alias/certificate used for validating signature
- * [RAMPART-183] - Rampart not correctly enforcing Signature validity if other security elements exist (ie - Timestamp)
- * [RAMPART-98] - When the request uses a BEARER keyType, The STSClient tries to retrieve the ProofToken even when the token type is Bearer.
-
-
-** Improvement
- * [RAMPART-297] - Add support for ContentEncryptedElements Assertion
- * [RAMPART-321] - Possible improvements to the logging in Rampart
-
-
-Release 1.5.1 - 23 Dec 2010
-===========================
-
-** Bug
- * [RAMPART-316] - commons-lang jar is not available with Axis2 which breaks Sample-08
- * [RAMPART-315] - Sample-06 is not working in the current trunk
- * [RAMPART-181] - OptimizePartsConfig does not open namespace tag when serializing the assertion
- * [RAMPART-186] - Password call back not copied over when the call back is set via a parameter to the axis Service (Secure conversation)
- * [RAMPART-174] - Rampart module says true to all assertions when canSupportAssertion is called
- * [RAMPART-202] - RampartEngine throws ClassCastException retrieving SOAPHeaderBlocks
- * [RAMPART-212] - WSSecurityException: Error in converting SOAP Envelope to Document
- * [RAMPART-314] - Rampart distribution does not contain OpenSAML 1.1 jars
- * [RAMPART-198] - Rampart 1.4 assumes WSS10 or WSS11 to be present in the policy
- * [RAMPART-273] - multiple rampart samples doesn't work
- * [RAMPART-254] - Public getter/setter setCallbackHander/getCallbackHander mis-spelled [ hander --> handler] in SAMLTokenIssuerConfig
- * [RAMPART-259] - SAML2TokenIssuer calls DefaultBootstrap.bootstrap() per every request and attribute call back handler not being called
- * [RAMPART-277] - Rampart ignores token inclusion settings when using the asymmetric security binding
- * [RAMPART-267] - div class="xleft" does not work
- * [RAMPART-224] - Error in Rampart configuration schema
- * [RAMPART-283] - sp:ProtectTokens Assertion Ignored w/ Transport Security Binding
- * [RAMPART-288] - Supporting Tokens Not Encrypted When Protection Order is Sign Before Encrypting
- * [RAMPART-300] - Rampart automaticaly tries to load an "Encryption user" if the security policy defines the use of a UsernameToken with a AsymmetricBinding
- * [RAMPART-225] - SupportingToken UsernameToken is always encrypted
- * [RAMPART-303] - Incorrect XML Passed to Digest Algorithm when XML Elements Belong to Empty Namespace
- * [RAMPART-309] - Incorrect XML Passed to Digest Algorithm
- * [RAMPART-116] - Policy Sample 04 on application scope fails with "Error in key derivation"
- * [RAMPART-253] - TTL doesn't serialized in to saml-issuer-config from SAMLTokenIssuerConfig
- * [RAMPART-270] - NPE in RampartMessageData
- * [RAMPART-274] - renewing a sts token doesn't work
- * [RAMPART-180] - Wrong NameIdentifier format
- * [RAMPART-276] - SignedEncryptedElements can incorrectly set the namespace of child xpaths during serialization
- * [RAMPART-293] - NPE in RampartMessageData prevents fault being returned to service consumer
- * [RAMPART-308] - All security exceptions reported as wsse:InvalidSecurity
- * [RAMPART-290] - NullPointerException in RampartEngine.isSecurityFault if the incoming fault message contains an invalid fault code element
- * [RAMPART-311] - Error AxisFault: A required message part [body] is not signed.
- * [RAMPART-239] - Axis2: Rampart module should not check the order of WS-Security header tags
- * [RAMPART-119] - Invalid behavior when empty <sp:SignedParts/> element present in the policy
- * [RAMPART-310] - Property 'invalidIssuerAddress' missing from error.properties
- * [RAMPART-154] - org.apache.rahas.client.STSClient.org.apache.rahas.processIssueResponse fails if SamlAssertion is issued.
- * [RAMPART-130] - MTOM with WS-Security
- * [RAMPART-97 ] - interop(WSE3.0 + Rampart1.3) Signature varification failed,When request with Non-English Character
- * [RAMPART-210] - samples/basic/sample11 does not exist in distro rampart-dist-1.4-bin.zip
- * [RAMPART-22 ] - Exception handling in UsernameTokenProcessor.handleUsernameToken
- * [RAMPART-111] - Rampart won't send certificate serial + issuer. Only either BinaryToken or Identity, but not always as it should
- * [RAMPART-187] - Secure conversation clients do not work when the bootstrap policy requires Username Token
- * [RAMPART-195] - Maven metadata are invalid in official repo preventing the use of rampart in offline mode
- * [RAMPART-280] - renewToken() does not provide a mechanism to update the token in the token-store
- * [RAMPART-6 ] - RAMPART : Incoming policy validation of KeyWrap Algorithm.
- * [RAMPART-7 ] - RAMPART : Incoming policy validation of Bulk Encryption Algorithms.
- * [RAMPART-266] - Rampart module fails validating signing certificate when security provider is Bouncy Castle
- * [RAMPART-271] - Build failure in the rampart trunk
- * [RAMPART-279] - NPE thrown when WS-Trust renew binding implementation
- * [RAMPART-285] - Interoporability issues in SAML 2.0 implementation
- * [RAMPART-306] - Rampart Configuration page of the web site should be updated with Crypto Caching configurations
- * [RAMPART-307] - Spelling error in org.apache.rampart.builder.BindingBuilder - Method getSignatureBuider should be getSignatureBuilder
- * [RAMPART-206] - RampartUtil.getToken() not setting parent properties on the STS service call resulting in HTTP 401 error
-
-** Improvement
- * [RAMPART-313] - Improvements to the site axis.apache.org/axis2/java/rampart/
- * [RAMPART-121] - Handling of KeyStores
- * [RAMPART-25 ] - Abilty to dynamically set Encryption certificate on client
- * [RAMPART-258] - A sample is required to demonstrate the SAML 2.0 Token issuing capability in Rampart
- * [RAMPART-291] - Possible improvements to SAML2TokenIssuer
- * [RAMPART-265] - Incorrect version references in Rampart 1.4
-
-Release 1.5 01 Feb 2010
-=======================
-
-** Bug
- * [RAMPART-189] - WS-Security rampart uses wrong token in service response
- * [RAMPART-191] - NullPointerException in AbstractHTTPSender.java:126 leading to "Unexpected number of certificates: 0"
- * [RAMPART-193] - Missing signature in SOAP fault messages
- * [RAMPART-209] - https urls are present in the src checkout page for both anonymous and developpers
- * [RAMPART-230] - Rampart expands message object model unnecessarily
- * [RAMPART-232] - Problem when body is signed and then an XPath is encrypted
- * [RAMPART-244] - Invalid behavior when empty <sp:EncryptedParts/> element present in the policy
- * [RAMPART-247] - Rampart fails to handle scenarios where password type is not set by default in UsernameToken [where 'type' is not included in the UsernameToken element]
- * [RAMPART-249] - The way attached references and unattached references created incorrectly for SAML tokens and does not interop with WCF
- * [RAMPART-250] - For SecureConversationToken key identifier type not set properly
- * [RAMPART-251] - <EncryptedElements/> fails when the element is not namespce qualified
- * [RAMPART-255] - Sample05 does not work correctly
- * [RAMPART-257] - "build.xml" file inside the samples/policy does not copy the correct versions of the rampart, rahas, and addressing mar files.
- * [RAMPART-259] - SAML2TokenIssuer calls DefaultBootstrap.bootstrap() per every request and attribute call back handler not being called
- * [RAMPART-260] - Sample06 does not work correctly
- * [RAMPART-262] - SymmetricBinding client can invoke the AsymmetricBinding service policy
-
-** Improvement
- * [RAMPART-200] - Provide capability to configure x509 supporting token certificates different from the ones used for the assymetric binding
- * [RAMPART-233] - Tests are required for negative scenario testing
- * [RAMPART-242] - Test Cases are required for upcoming SAML2.0 support in Rampart
- * [RAMPART-243] - Updating the README.txt and the contents of the binary distribution corresponding to SAML 2.0 support
- * [RAMPART-245] - Supporting same type of multiple SupprtingToken
- * [RAMPART-246] - Need to able to set a AttributeCallbackHandler class by name to the SAMLTokenIssuerConfig
- * [RAMPART-248] - Caching crypto objects to improve the performance when using the same crypto for signing and encrypting.
- * [RAMPART-256] - Sample for a policy having multiple supporting tokens - enabling to sign/encrypt with multiple keys
- * [RAMPART-258] - A sample is required to demonstrate the SAML 2.0 Token issuing capability in Rampart
-
-** New Feature
- * [RAMPART-231] - Implementing the SAML 2.0 support in Rampart
-
-Release 1.4 - 12/Jun/2008
-=========================
-
-** Bug
- * [RAMPART-41] - "IncludeToken/Once" is not handled properly in Rampart
- * [RAMPART-84] - "SupportingTokens" Token Inop for Asymetric Binding (Sign before Encrypt)
- * [RAMPART-86] - Test the SymmetricBinding implementation
- * [RAMPART-88] - Policy sample "sample-tomcat" incorrectly adds client.jks to Client's truststore
- * [RAMPART-89] - License files missing in distribution
- * [RAMPART-90] - Rampart must respond using the applicable WS-Policy even when returning a fault
- * [RAMPART-91] - Wrong KeyIdentifierType in WSSecSignature and WSSecEncryptedKey
- * [RAMPART-92] - Error in checking generated encrypted parts with the policy
- * [RAMPART-93] - ValueType is not set correctly in the Signature when a encrypted key is used to sign
- * [RAMPART-100] - Missing encrypted key token in response when Asymmetric Binding is used
- * [RAMPART-101] - Rampart uses xmlsec-1.4.0
- * [RAMPART-102] - Policy Validation Error
- * [RAMPART-104] - Rampart generates empty reference lists
- * [RAMPART-107] - Rampart ignores the MTOM assertion in the bootstrap policy in secure conversation
- * [RAMPART-108] - Policy Validator doesn't check the transport when Transport binding is used with HttpsToken
- * [RAMPART-109] - Error in placement of reference list in No-Timestamp scenarios
- * [RAMPART-110] - Symmetric binding scenario: "Cannot find Reference in Manifest" Exception is thrown
- * [RAMPART-114] - "Unexpected signature" exception thrown when using Signed/SupportingTokens Assertion
- * [RAMPART-115] - Incrorrect reference URI in the soap response in Secure Conversation Scenarios
- * [RAMPART-117] - 1.3 not available on download page
- * [RAMPART-122] - /sp:EncryptedParts/sp:Header needs qualified attribute names
- * [RAMPART-123] - client stub are not given the namespace declaration for <sp:EncryptedElements>
- * [RAMPART-124] - /sp:SignedParts/sp:Header selects no elements if the Name attribute is unspecified
- * [RAMPART-125] - Encryption of SOAP Headers broken
- * [RAMPART-127] - Possible Security Hole
- * [RAMPART-129] - Validation of supporting tokens according to a service's policy
- * [RAMPART-130] - MTOM with WS-Security
- * [RAMPART-131] - Rampart security header problem
- * [RAMPART-132] - Issue with XPath configuration inside RampartUtil
- * [RAMPART-133] - Supporting tokens are not added to the soap header
- * [RAMPART-136] - Rampart doesn't support RequiredElements Assertion
- * [RAMPART-138] - Created response of SymmetricBindingBuilder WITHOUT timestamp is incorrect
- * [RAMPART-139] - SignatureToken doesn't work for Symetricbinding
- * [RAMPART-140] - Processing of response fails if a security policy is set
- * [RAMPART-141] - Issue of Rampart not supporting X509PKIPathv1 token
- * [RAMPART-143] - Policy with 'Layout' 'Lax' having no subelements leads to a NullPointerException in PolicyEngine
- * [RAMPART-145] - When we use an issued token for sig/encrypt we must use the attached reference or unattached reference as specified by policy
- * [RAMPART-146] - The exact elements that are equired to be encrypted are not validated
- * [RAMPART-147] - Header parts included in EncryptedParts are not processed by Rampart
- * [RAMPART-148] - Release notes are not copied to source distribution
- * [RAMPART-149] - Improvements to the documentation
- * [RAMPART-151] - Rahas docs not being built
- * [RAMPART-153] - Incorrect links given in source checkout page
- * [RAMPART-157] - Duplicate namespace declaration in SingedEncryptedElements assertion
- * [RAMPART-160] - Source files are also copied in to Rampart jars
- * [RAMPART-161] - java.util.ConcurrentModificationException while a token is associated with a user when sevaral users are using a service
- * [RAMPART-162] - NullPointerException thrown when a non-existing algorythm suite is used in a policy file when invoking a secured service
- * [RAMPART-165] - Exception in Rampart Processing causes NPE
- * [RAMPART-166] - Wrong SoapFault code accessing a Secure endpoint without security
- * [RAMPART-167] - Remove bouncycastle from the distribution and add a note
- * [RAMPART-168] - When SecureConversationTokens are used Rampart always try to use the attached reference
- * [RAMPART-169] - HttpsToken serializer does not support ws-securitypolicy 1.2
-
-** Improvement
- * [RAMPART-85] - Uncommented and fixed AsymmetricBindingBuilderTest
- * [RAMPART-94] - Change rampart implementation to use same encrypted key in both request and response messages
- * [RAMPART-99] - add userCertAlias parameter to Rampart Configuration
- * [RAMPART-103] - include a note on adding bouncycastle as a security provider in the JRE
- * [RAMPART-105] - Update RampartTest to include test scenarios for RAMPART-99, RAMPART-102 and RAMPART-104
- * [RAMPART-106] - Encrypt the Username Token when it is used as a supporting token
- * [RAMPART-113] - Enforce transport level security when Transport binding is used with Https Token
- * [RAMPART-120] - sources unavailable in maven repository
- * [RAMPART-134] - Add WS - Security Policy 1.2 support to Rampart
- * [RAMPART-135] - Allow custom implementation of PolicyBasedResultsValidator using callback handler mechanism
- * [RAMPART-137] - Add tests for encrypted supporting token scenarios
- * [RAMPART-152] - Timestamp Precision In Milliseconds Configuration
- * [RAMPART-163] - Update the WS wiki with Rampart information
-
-** New Feature
- * [RAMPART-87] - Add renewal and validation support for issued token
- * [RAMPART-95] - Support Encrypted Header
-
-
-
-** Task
- * [RAMPART-158] - Create a FAQ
- * [RAMPART-159] - Fix Releases/Versions in Rampart JIRA
-
-Release 1.3 - 06/Sep/07
-=======================
-
-** Bug
- * [RAMPART-32] - Processing of <Issuer> and <RequestSecurityTokenTemplate> in class org.apache.ws.secpolicy.builders.IssuedTokenBuilder is wrong.
- * [RAMPART-42] - TransportBinding does not encrypt the message payload
- * [RAMPART-49] - RampartPolicyBuilder logs to console/System.out
- * [RAMPART-52] - UsernameToken Builder Bug.
- * [RAMPART-53] - rampart causes problems with hierarchies
- * [RAMPART-57] - Move generated code into target directory in rampart-integration test
- * [RAMPART-58] - problems engaging rampart per operation
- * [RAMPART-62] - Build failure on Mac OS
- * [RAMPART-76] - Rampart 1.3.mar throws error with Axis2 1.3
- * [RAMPART-79] - setAction in Options does not create a non-null "Action" element in the SOAP Header
-
-** Improvement
- * [RAMPART-17] - Create Apache Rampart website
- * [RAMPART-20] - Improve logging
- * [RAMPART-27] - The user in the configuration for UsernameToken and Signature should be different
- * [RAMPART-48] - RampartMessageData class needs tightening
- * [RAMPART-51] - Rampart developer guide
- * [RAMPART-54] - Reviewed the Developer Guide
-
-Release 1.2 - 02/Jun/07
-=======================
-
-** Bug
- * [RAMPART-12] - ClassCastException in fault parsing
- * [RAMPART-28] - Cannot add parts of the header for encryption
- * [RAMPART-34] - SignedEncryptedSupportingTokens assertion does not work
- * [RAMPART-35] - SignedSupportingTokens does not sign the UsernameToken
- * [RAMPART-36] - Using the "SupportingTokens" assertion throws exception
- * [RAMPART-37] - SymmetricBinding is broken
- * [RAMPART-43] - When IncludeTimestamp is commented in Sample03 service throws a Nullpointer exception.
-
-
-** New Feature
- * [RAMPART-38] - AsymmetricBinding does not support UsernameToken as a supporting token
- * [RAMPART-40] - implementation of the Xpath support
-
-
-
-
-
-
-
-
-
-
diff --git a/release-docs/release-notes.html b/release-docs/release-notes.html
deleted file mode 100644
index 3af20d0..0000000
--- a/release-docs/release-notes.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
- "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
- <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
- <title>Apache Rampart - Release Notes</title>
- <meta name="generator" content="amaya 9.2.2, see http://www.w3.org/Amaya/"
- />
-</head>
-
-<body>
-<h1>Apache Rampart Release Notes</h1>
-
-<p>This is the 1.6.0 release of Apache Rampart.</p>
-
-<p>Apache Rampart 1.6.0 is a toolkit that provides implementations of the WS-Sec*
-specifications for Apache Axis2 1.6.0, based on Apache WSS4J 1.5.11 and
-the Apache AXIOM-DOOM 1.2.11 implementation.</p>
-
-<b>What is in this release</b>
-
-<p>There are two main Apache Axis2 modules provided with this release.</p>
-<ul>
-<li>rampart-1.6.0.mar</li>
-This provides support for WS-Security and WS-SecureConversation features.
-<li>rahas-1.6.0.mar</li>
-This module provides the necessary components to enable SecurityTokenService
-functionality on a service.
-</ul>
-
-<p>Apache Rampart 1.6.0 uses a configuration model based on WS-Policy
-and WS-Security Policy and it is important to note that Apache Rampart 1.0 style
-configuration is also available even though being marked as deprecated.
-</p>
-
-<p>Apache Rampart 1.6.0 can be successfully used with the next Apache Sandesha2 1.6.0
-release targeted towards Apache Axis2 1.6.0 to configure
-WS-SecureConversation + WS-ReliableMessaging scenarios.</p>
-<p>
-The rampart module was successfully tested for interoperability with other
-WS-Security implementations.</p>
-
-<p>WS - Sec* specifications supported by Apache Rampart are as follows:</p>
-
-<ul>
-<li>WS - Security 1.0</li>
-<li>WS - Secure Conversation - February 2005</li>
-<li>WS - Security Policy - 1.1 - July 2005</li>
-<li>WS - Trust - February 2005</li>
-<li>WS - Trust - WS-SX specification</li>
-<li>SAML Specification - 1.1 </li>
-<li>SAML Specification - 2.0 </li>
-</ul>
-
-
-
-
-<p>Thank you for using Apache Rampart.</p>
-
-<p></p>
-
-<p>Apache Rampart Team</p>
-
-<p></p>
-</body>
-</html>
diff --git a/src/site/markdown/download.md.vm b/src/site/markdown/download.md.vm
new file mode 100644
index 0000000..b970037
--- /dev/null
+++ b/src/site/markdown/download.md.vm
@@ -0,0 +1,60 @@
+##
+## 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.
+##
+
+Releases
+--------
+
+The current release is ${release_version} and was published on ${release_date}. The release note for this
+release can be found [here](release-notes/${release_version}.html).
+
+The following distributions are available for download:
+
+ | Link | Checksums and signatures
+--------------------|----------------------------------------------|----------------------------
+Binary distribution | [rampart-dist-${release_version}-bin.zip][1] | [MD5][2] [SHA1][3] [PGP][4]
+Source distribution | [rampart-dist-${release_version}-src.zip][5] | [MD5][6] [SHA1][7] [PGP][8]
+
+The binary distribution contains the following Axis2 modules:
+
+* `rampart-${release_version}.mar` provides support for WS-Security and WS-SecureConversation
+ features.
+
+* `rahas-${release_version}.mar` provides the necessary components to enable SecurityTokenService
+ functionality on a service.
+
+The signatures of the distributions can be [verified][9] against the public keys in the [KEYS][10] file.
+
+Maintenance releases from branches other than the main branch can be found [here][11].
+Distributions for older releases can be found in the [archive][12].
+
+All releases are also available as Maven artifacts in the [central repository][13].
+
+[1]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-bin.zip
+[2]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-bin.zip.md5
+[3]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-bin.zip.sha1
+[4]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-bin.zip.asc
+[5]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-src.zip
+[6]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-src.zip.md5
+[7]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-src.zip.sha1
+[8]: https://www.apache.org/dist/axis/axis2/java/rampart/${release_version}/rampart-dist-${release_version}-src.zip.asc
+[9]: http://www.apache.org/dev/release-signing#verifying-signature
+[10]: https://www.apache.org/dist/axis/axis2/java/rampart/KEYS
+[11]: http://www.apache.org/dyn/closer.lua/axis/axis2/java/rampart/
+[12]: http://archive.apache.org/dist/axis/axis2/java/rampart/
+[13]: http://search.maven.org/#search%7Cga%7C1%7Cg%3A%22org.apache.rampart%22
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
new file mode 100644
index 0000000..e174284
--- /dev/null
+++ b/src/site/markdown/index.md
@@ -0,0 +1,23 @@
+Welcome to Apache Rampart
+-------------------------
+
+Apache Rampart™ provides implementations of the WS-Sec* specifications for
+Apache Axis2, based on [Apache WSS4J][1] and the [Apache Axiom DOOM implementation][2].
+Rampart implements the following specifications:
+
+* WS - Security 1.0
+* WS - Security 1.1
+* WS - Secure Conversation - February 2005
+* WS - Security Policy - 1.1 - July 2005
+* WS - Security Policy - 1.2
+* WS - Trust - February 2005
+* WS - Trust - WS-SX specification
+* SAML Specification - 1.1
+* SAML Specification - 2.0
+
+- - -
+
+Apache Rampart, Rampart, Apache, the Apache feather logo, and the Apache Rampart project logo are trademarks of The Apache Software Foundation.
+
+[1]: http://ws.apache.org/wss4j/
+[2]: http://ws.apache.org/axiom/implementations/axiom-dom/
diff --git a/src/site/markdown/release-notes/1.6.1.md b/src/site/markdown/release-notes/1.6.1.md
new file mode 100644
index 0000000..680fd6f
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.1.md
@@ -0,0 +1,7 @@
+Apache Rampart 1.6.1 Release Note
+---------------------------------
+
+The Apache Rampart 1.6.1 release updates WSS4J to version 1.5.12 and ensures
+compatibility with Axis2 1.6.1. Please note that Rampart 1.6.1 will not work
+with Axis2 1.6.0 and that users of Axis2 1.6.1 are required to update to
+Rampart 1.6.1, i.e. Rampart 1.6.0 doesn't work with Axis2 1.6.1.
diff --git a/src/site/markdown/release-notes/1.6.2.md b/src/site/markdown/release-notes/1.6.2.md
new file mode 100644
index 0000000..746b984
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.2.md
@@ -0,0 +1,10 @@
+Apache Rampart 1.6.2 Release Note
+---------------------------------
+
+Apache Rampart 1.6.2 is a maintenance release that updates WSS4J to version
+1.6.4 and OpenSAML to version 2.5.1. Apache Rampart 1.6.2 ensure compatibility
+with the latest Axis2 1.6.2 release.
+
+A complete list of issues fixed in this release can be found [here][1].
+
+[1]: http://s.apache.org/rampart1.6.2
diff --git a/src/site/markdown/release-notes/1.6.3.md b/src/site/markdown/release-notes/1.6.3.md
new file mode 100644
index 0000000..dcf8861
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.3.md
@@ -0,0 +1,7 @@
+Apache Rampart 1.6.3 Release Note
+---------------------------------
+
+Apache Rampart 1.6.3 is a maintenance release compatible with Apache Axis2
+1.6.3. A complete list of issues fixed in this release can be found [here][1].
+
+[1]: http://s.apache.org/rampart1.6.3
\ No newline at end of file
diff --git a/src/site/markdown/release-notes/1.6.4.md b/src/site/markdown/release-notes/1.6.4.md
new file mode 100644
index 0000000..2f8f4a5
--- /dev/null
+++ b/src/site/markdown/release-notes/1.6.4.md
@@ -0,0 +1,7 @@
+Apache Rampart 1.6.4 Release Note
+---------------------------------
+
+Apache Rampart 1.6.4 is a maintenance release compatible with Apache Axis2
+1.6.4. A complete list of issues fixed in this release can be found [here][1].
+
+[1]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310610&version=12334369
diff --git a/src/site/markdown/release-notes/1.7.0.md b/src/site/markdown/release-notes/1.7.0.md
new file mode 100644
index 0000000..183c21e
--- /dev/null
+++ b/src/site/markdown/release-notes/1.7.0.md
@@ -0,0 +1,11 @@
+Apache Rampart 1.7.0 Release Note
+---------------------------------
+
+Apache Rampart 1.7.0 is a major release designed for compatibility with Axis2
+1.7.0. A complete list of issues fixed in this release can be found [here][1].
+
+Please note that Apache Rampart uses a configuration model based on WS-Policy
+and WS-Security Policy and that the Apache Rampart 1.0 style configuration
+(already deprecated since Rampart 1.1) is no longer supported in 1.7.0.
+
+[1]: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310610&version=12316529
diff --git a/src/site/markdown/release-notes/1.8.0.md b/src/site/markdown/release-notes/1.8.0.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/site/markdown/release-notes/1.8.0.md
diff --git a/modules/documentation/src/site/resources/images/apache-rampart-logo.jpg b/src/site/resources/images/apache-rampart-logo.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/apache-rampart-logo.jpg
rename to src/site/resources/images/apache-rampart-logo.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/logos/asf_logo_wide.png b/src/site/resources/images/logos/asf_logo_wide.png
similarity index 100%
rename from modules/documentation/src/site/resources/images/logos/asf_logo_wide.png
rename to src/site/resources/images/logos/asf_logo_wide.png
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/message-builder.jpg b/src/site/resources/images/message-builder.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/message-builder.jpg
rename to src/site/resources/images/message-builder.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/rampart-engine.jpg b/src/site/resources/images/rampart-engine.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/rampart-engine.jpg
rename to src/site/resources/images/rampart-engine.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/rampart-handlers.jpg b/src/site/resources/images/rampart-handlers.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/rampart-handlers.jpg
rename to src/site/resources/images/rampart-handlers.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/rampart-trust.jpg b/src/site/resources/images/rampart-trust.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/rampart-trust.jpg
rename to src/site/resources/images/rampart-trust.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/images/security-stack.jpg b/src/site/resources/images/security-stack.jpg
similarity index 100%
rename from modules/documentation/src/site/resources/images/security-stack.jpg
rename to src/site/resources/images/security-stack.jpg
Binary files differ
diff --git a/modules/documentation/src/site/resources/rampart-config.xsd b/src/site/resources/rampart-config.xsd
similarity index 100%
rename from modules/documentation/src/site/resources/rampart-config.xsd
rename to src/site/resources/rampart-config.xsd
diff --git a/modules/documentation/src/site/resources/samples/msgs/creq04.xml b/src/site/resources/samples/msgs/creq04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/creq04.xml
rename to src/site/resources/samples/msgs/creq04.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/cres04.xml b/src/site/resources/samples/msgs/cres04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/cres04.xml
rename to src/site/resources/samples/msgs/cres04.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/req01.xml b/src/site/resources/samples/msgs/req01.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/req01.xml
rename to src/site/resources/samples/msgs/req01.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/req02.xml b/src/site/resources/samples/msgs/req02.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/req02.xml
rename to src/site/resources/samples/msgs/req02.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/req03.xml b/src/site/resources/samples/msgs/req03.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/req03.xml
rename to src/site/resources/samples/msgs/req03.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/req04.xml b/src/site/resources/samples/msgs/req04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/req04.xml
rename to src/site/resources/samples/msgs/req04.xml
diff --git a/src/site/resources/samples/msgs/req09.xml b/src/site/resources/samples/msgs/req09.xml
new file mode 100644
index 0000000..ca9cc80
--- /dev/null
+++ b/src/site/resources/samples/msgs/req09.xml
@@ -0,0 +1,59 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">
+ <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
+ <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
+ <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-1">
+ <wsu:Created>2011-10-02T17:02:00.891Z</wsu:Created>
+ <wsu:Expires>2011-10-02T17:07:00.891Z</wsu:Expires>
+ </wsu:Timestamp>
+ <xenc:EncryptedKey Id="EncKeyId-217C2EC3C2E291A44313175749217822">
+ <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" />
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <wsse:SecurityTokenReference>
+ <wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#ThumbprintSHA1">aqePjuZzE1lzwMMtquksvNJsbmI=</wsse:KeyIdentifier>
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ <xenc:CipherData>
+ <xenc:CipherValue>dcU0PS/8bZjpJ1u5Mey5oytQNdNj+Naq+1cMnEv4abN/BP6RDURGv+4+XT1uIHSU4G7FpspJ+U06fa4VeqNyCfAq2SDul6WzPLRTQ3qRdiHARBpR8kI5YrOWXmTR/nl5yzz03NC51GGqA+R6X1CwpuXDrCbcz3CsE+TQduFHtlM=</xenc:CipherValue>
+ </xenc:CipherData>
+ </xenc:EncryptedKey>
+ <xenc:ReferenceList>
+ <xenc:DataReference URI="#EncDataId-3" />
+ </xenc:ReferenceList>
+ <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-2">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" />
+ <ds:Reference URI="#Timestamp-1">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>nJA1OmoBVIEcnsJBZEadzN6UJs0=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>pf4BJD5Qiv8Z+oqs7I+D13D0Oz8=</ds:SignatureValue>
+ <ds:KeyInfo Id="KeyId-217C2EC3C2E291A44313175749218033">
+ <wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-217C2EC3C2E291A44313175749218034">
+ <wsse:Reference URI="#EncKeyId-217C2EC3C2E291A44313175749217822" ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKey" />
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ </ds:Signature>
+ </wsse:Security>
+ <wsa:To>http://localhost:8081/axis2/services/sample09</wsa:To>
+ <wsa:MessageID>urn:uuid:2f08b4d8-4a46-439c-bd89-e6eb0a6f227c</wsa:MessageID>
+ <wsa:Action>urn:echo</wsa:Action>
+ </soapenv:Header>
+ <soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-2030128673">
+ <xenc:EncryptedData Id="EncDataId-3" Type="http://www.w3.org/2001/04/xmlenc#Content">
+ <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes256-cbc" />
+ <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
+ <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
+ <wsse:Reference URI="#EncKeyId-217C2EC3C2E291A44313175749217822" />
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ <xenc:CipherData>
+ <xenc:CipherValue>oUOJCeKFAGyuKdMDjUDB2n3NjcHC8udPl+ZWHwwKOttJSt/IlthXipCs62Gnn8gmzLi4DT0LnwhI9/vwUbulFjuPRENIs3D+IRu8mrL+UgxIYnkn44qKR/hYIOR/bY6SyLkbKlITAatDtJafqz5rs6IdSOQ/07s+JQImBYDQD7dxBtXsJw/0TBb78VeSIl+VWsQDDSf+PSxZLAWCQYQZRBXPMWxQ+lm7ArS2rLIswPoS6D9PwyHJDDmcJ5A4C2DTSu/IgTvM6wj7spLIjGL1nGa4kRmg71bwHpZ4aKNOrslNuDOldrPPuDxNiuSijX/lhbHMHOCYg/YJP2SbhWfVLkFmRqFbQFdoyYqbM+s/pweclcAIWVaLlvu003shSBqrvgfXUPFKH3vUDOsM/jD2iOKOpAc+hdKqWVKIUjjyBVZNSQ2DX+9XBeL5VWECgRC0</xenc:CipherValue>
+ </xenc:CipherData>
+ </xenc:EncryptedData>
+ </soapenv:Body>
+</soapenv:Envelope>
diff --git a/modules/documentation/src/site/resources/samples/msgs/res01.xml b/src/site/resources/samples/msgs/res01.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/res01.xml
rename to src/site/resources/samples/msgs/res01.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/res02.xml b/src/site/resources/samples/msgs/res02.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/res02.xml
rename to src/site/resources/samples/msgs/res02.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/res03.xml b/src/site/resources/samples/msgs/res03.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/res03.xml
rename to src/site/resources/samples/msgs/res03.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/res04.xml b/src/site/resources/samples/msgs/res04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/res04.xml
rename to src/site/resources/samples/msgs/res04.xml
diff --git a/src/site/resources/samples/msgs/res09.xml b/src/site/resources/samples/msgs/res09.xml
new file mode 100644
index 0000000..b2ba53e
--- /dev/null
+++ b/src/site/resources/samples/msgs/res09.xml
@@ -0,0 +1,51 @@
+<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
+ <soapenv:Header xmlns:wsa="http://www.w3.org/2005/08/addressing">
+ <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
+ <wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-4">
+ <wsu:Created>2011-10-02T17:02:01.986Z</wsu:Created>
+ <wsu:Expires>2011-10-02T17:07:01.986Z</wsu:Expires>
+ </wsu:Timestamp>
+ <wsse11:SignatureConfirmation xmlns:wsse11="http://docs.oasis-open.org/wss/oasis-wss-wssecurity-secext-1.1.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" Value="pf4BJD5Qiv8Z+oqs7I+D13D0Oz8=" wsu:Id="SigConf-5" />
+ <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-6">
+ <ds:SignedInfo>
+ <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#hmac-sha1" />
+ <ds:Reference URI="#Id-2097953288">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>G/7ZztG0V1Kmv0wm+mzgymHcOyo=</ds:DigestValue>
+ </ds:Reference>
+ <ds:Reference URI="#Timestamp-4">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>1wuRtmA8p7YYbLHbGZCg/zwoLbI=</ds:DigestValue>
+ </ds:Reference>
+ <ds:Reference URI="#SigConf-5">
+ <ds:Transforms>
+ <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
+ </ds:Transforms>
+ <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
+ <ds:DigestValue>S1DcEeIgKXsIRXEFarD4mV2+2q0=</ds:DigestValue>
+ </ds:Reference>
+ </ds:SignedInfo>
+ <ds:SignatureValue>r8Rlddsga6YTXf2iVLKA7TK8rGg=</ds:SignatureValue>
+ <ds:KeyInfo Id="KeyId-297B8911F2D33E5F7213175749219873">
+ <wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-297B8911F2D33E5F7213175749219874">
+ <wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/oasis-wss-soap-message-security-1.1#EncryptedKeySHA1">BaA/2+IZ8kYoENnGHL4K7unfywk=</wsse:KeyIdentifier>
+ </wsse:SecurityTokenReference>
+ </ds:KeyInfo>
+ </ds:Signature>
+ </wsse:Security>
+ <wsa:Action>urn:echoResponse</wsa:Action>
+ <wsa:RelatesTo>urn:uuid:2f08b4d8-4a46-439c-bd89-e6eb0a6f227c</wsa:RelatesTo>
+ </soapenv:Header>
+ <soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Id-2097953288">
+ <ns:echoResponse xmlns:ns="http://sample09.policy.samples.rampart.apache.org">
+ <ns:return>Hello world</ns:return>
+ </ns:echoResponse>
+ </soapenv:Body>
+</soapenv:Envelope>
diff --git a/modules/documentation/src/site/resources/samples/msgs/rst04.xml b/src/site/resources/samples/msgs/rst04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/rst04.xml
rename to src/site/resources/samples/msgs/rst04.xml
diff --git a/modules/documentation/src/site/resources/samples/msgs/rstr04.xml b/src/site/resources/samples/msgs/rstr04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/msgs/rstr04.xml
rename to src/site/resources/samples/msgs/rstr04.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample01.xml b/src/site/resources/samples/policy/sample01.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample01.xml
rename to src/site/resources/samples/policy/sample01.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample02.xml b/src/site/resources/samples/policy/sample02.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample02.xml
rename to src/site/resources/samples/policy/sample02.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample03.xml b/src/site/resources/samples/policy/sample03.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample03.xml
rename to src/site/resources/samples/policy/sample03.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample04.xml b/src/site/resources/samples/policy/sample04.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample04.xml
rename to src/site/resources/samples/policy/sample04.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample05.xml b/src/site/resources/samples/policy/sample05.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample05.xml
rename to src/site/resources/samples/policy/sample05.xml
diff --git a/modules/documentation/src/site/resources/samples/policy/sample06.xml b/src/site/resources/samples/policy/sample06.xml
similarity index 100%
rename from modules/documentation/src/site/resources/samples/policy/sample06.xml
rename to src/site/resources/samples/policy/sample06.xml
diff --git a/src/site/site.xml b/src/site/site.xml
new file mode 100644
index 0000000..7f3505f
--- /dev/null
+++ b/src/site/site.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!--
+ ~ 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 name="Apache Rampart">
+
+ <bannerLeft>
+ <src>images/apache-rampart-logo.jpg</src>
+ </bannerLeft>
+
+ <bannerRight>
+ <src>http://www.apache.org/images/asf_logo_wide.png</src>
+ <href>http://www.apache.org</href>
+ </bannerRight>
+
+ <skin>
+ <groupId>org.apache.maven.skins</groupId>
+ <artifactId>maven-fluido-skin</artifactId>
+ <version>1.4</version>
+ </skin>
+
+ <publishDate format="dd MMM yyyy"/>
+
+ <body>
+ <links>
+ <item name="Apache Axis2/Java" href="http://axis.apache.org/axis2/java/core/" />
+ </links>
+
+ <menu name="Apache Rampart">
+ <item name="Home" href="index.html" />
+ <item name="Downloads" href="javascript:void(0)">
+ <item name="Releases" href="download.html"/>
+ <item name="Source Code" href="svn.html"/>
+ </item>
+ <item name="Release Notes" href="javascript:void(0)">
+ <item name="1.6.1" href="release-notes/1.6.1.html"/>
+ <item name="1.6.2" href="release-notes/1.6.2.html"/>
+ <item name="1.6.3" href="release-notes/1.6.3.html"/>
+ <item name="1.6.4" href="release-notes/1.6.4.html"/>
+ <item name="1.7.0" href="release-notes/1.7.0.html"/>
+ </item>
+ </menu>
+ <menu name="Documentation">
+ <item name="Getting Started" href="quick-start.html"/>
+ <item name="Samples" href="samples.html"/>
+ <item name="FAQ" href="http://wiki.apache.org/ws/FrontPage/Rampart/FAQ"/>
+ <item name="Rampart Configuration" href="rampartconfig-guide.html"/>
+ <item name="STS Configuration" href="setting-up-sts.html"/>
+ <item name="Developer Guide" href="developer-guide.html"/>
+ <item name="Build the Site" href="siteHowTo.html" />
+ </menu>
+ <menu name="Resources">
+ <item name="Articles" href="articles.html" />
+ <item name="Specifications" href="specifications.html"/>
+ <item name="Online Javadocs" href="apidocs/index.html"/>
+ </menu>
+ <menu name="Project Information">
+ <item name="Project Team" href="team-list.html" />
+ <item name="Issue Tracking" href="http://issues.apache.org/jira/browse/Rampart" />
+ <item name="Mailing Lists" href="mail-lists.html"/>
+ <item name="Source Code" href="http://svn.apache.org/viewvc/axis/axis2/java/rampart/" />
+ <item name="License" href="http://www.apache.org/licenses/"/>
+ <item name="Sponsorship" href="http://www.apache.org/foundation/sponsorship.html"/>
+ <item name="Thanks" href="http://www.apache.org/foundation/thanks.html"/>
+ <item name="Security" href="http://www.apache.org/security/"/>
+ </menu>
+ </body>
+</project>
diff --git a/modules/documentation/src/site/xdoc/articles.xml b/src/site/xdoc/articles.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/articles.xml
rename to src/site/xdoc/articles.xml
diff --git a/modules/documentation/src/site/xdoc/developer-guide.xml b/src/site/xdoc/developer-guide.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/developer-guide.xml
rename to src/site/xdoc/developer-guide.xml
diff --git a/modules/documentation/src/site/xdoc/quick-start.xml b/src/site/xdoc/quick-start.xml
similarity index 93%
rename from modules/documentation/src/site/xdoc/quick-start.xml
rename to src/site/xdoc/quick-start.xml
index a5d41cc..90db940 100644
--- a/modules/documentation/src/site/xdoc/quick-start.xml
+++ b/src/site/xdoc/quick-start.xml
@@ -11,7 +11,7 @@
<p>Steps to install</p>
<ol>
<li>If you haven't installed Axis2, then download and extract the standard binary distribution. Make sure you have set the AXIS2_HOME environment variable</li>
- <li>Run ant from the "samples" directory to copy the required libraries and modules to relevant directories in AXIS2_HOME.</li>
+ <li>Run ant from the top level directory of the Rampart distribution to copy the required libraries and modules to relevant directories in AXIS2_HOME.</li>
</ol>
<p></p>
diff --git a/modules/documentation/src/site/xdoc/rampartconfig-guide.xml b/src/site/xdoc/rampartconfig-guide.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/rampartconfig-guide.xml
rename to src/site/xdoc/rampartconfig-guide.xml
diff --git a/modules/documentation/src/site/xdoc/samples.xml b/src/site/xdoc/samples.xml
similarity index 97%
rename from modules/documentation/src/site/xdoc/samples.xml
rename to src/site/xdoc/samples.xml
index 574d7f7..73565fb 100644
--- a/modules/documentation/src/site/xdoc/samples.xml
+++ b/src/site/xdoc/samples.xml
@@ -29,6 +29,7 @@
<h2> Policy samples </h2>
<p>These samples use WS Security Policy Language for configuration. It is recommended to use policy based configuration model for all production scenarios </p>
<h3>Running Samples</h3>
+ <p>Before beginning, please install Rampart as described <a href="quick-start.html">here</a>.</p>
<p>Now we'll look at how to run the first sample inside samples/policy folder.</p>
<ol>
<li>Open a console and change the directory to sample/policy and give the following command. This will start the server at port 8080</li>
diff --git a/modules/documentation/src/site/xdoc/setting-up-sts.xml b/src/site/xdoc/setting-up-sts.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/setting-up-sts.xml
rename to src/site/xdoc/setting-up-sts.xml
diff --git a/modules/documentation/src/site/xdoc/siteHowTo.xml b/src/site/xdoc/siteHowTo.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/siteHowTo.xml
rename to src/site/xdoc/siteHowTo.xml
diff --git a/modules/documentation/src/site/xdoc/specifications.xml b/src/site/xdoc/specifications.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/specifications.xml
rename to src/site/xdoc/specifications.xml
diff --git a/modules/documentation/src/site/xdoc/svn.xml b/src/site/xdoc/svn.xml
similarity index 100%
rename from modules/documentation/src/site/xdoc/svn.xml
rename to src/site/xdoc/svn.xml