You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@taverna.apache.org by st...@apache.org on 2015/02/17 12:36:57 UTC
[37/70] [abbrv] incubator-taverna-common-activities git commit:
taverna-wsdl-activity/
taverna-wsdl-activity/
Project: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/commit/77704689
Tree: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/tree/77704689
Diff: http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/diff/77704689
Branch: refs/heads/master
Commit: 77704689c7dc6592e4391dba2444dbc0fa3d0f2e
Parents: 73158c1
Author: Stian Soiland-Reyes <st...@apache.org>
Authored: Tue Jan 6 17:04:50 2015 +0000
Committer: Stian Soiland-Reyes <st...@apache.org>
Committed: Tue Jan 6 17:04:50 2015 +0000
----------------------------------------------------------------------
.gitignore | 24 --
.travis.yml | 1 -
README.md | 3 -
pom.xml | 120 -------
.../wsdl/InputPortTypeDescriptorActivity.java | 57 ----
.../wsdl/OutputPortTypeDescriptorActivity.java | 57 ----
.../t2/activities/wsdl/T2WSDLSOAPInvoker.java | 282 ----------------
.../t2/activities/wsdl/WSDLActivity.java | 328 -------------------
.../wsdl/WSDLActivityConfigurationBean.java | 82 -----
.../wsdl/WSDLActivityDescriptorChecker.java | 147 ---------
.../t2/activities/wsdl/WSDLActivityFactory.java | 141 --------
.../wsdl/WSDLActivityHealthChecker.java | 170 ----------
.../wsdl/WSDLOperationConfigurationBean.java | 57 ----
.../sf/taverna/t2/activities/wsdl/package.html | 3 -
.../activities/wsdl/security/SSLUtilities.java | 151 ---------
.../wsdl/security/SecurityProfiles.java | 130 --------
.../TavernaAxisCustomSSLSocketFactory.java | 40 ---
.../security/ThreadLocalSSLSocketFactory.java | 186 -----------
.../activities/wsdl/wss4j/T2WSDoAllSender.java | 231 -------------
.../wsdl/xmlsplitter/AddXMLSplitterEdit.java | 290 ----------------
.../xmlsplitter/XMLInputSplitterActivity.java | 186 -----------
.../XMLInputSplitterActivityFactory.java | 96 ------
.../XMLInputSplitterHealthChecker.java | 65 ----
.../xmlsplitter/XMLOutputSplitterActivity.java | 207 ------------
.../XMLOutputSplitterActivityFactory.java | 96 ------
.../XMLOutputSplitterHealthChecker.java | 65 ----
.../XMLSplitterConfigurationBean.java | 42 ---
.../XMLSplitterConfigurationBeanBuilder.java | 205 ------------
...averna.t2.workflowmodel.health.HealthChecker | 4 -
.../spring/wsdl-activity-context-osgi.xml | 20 --
.../META-INF/spring/wsdl-activity-context.xml | 21 --
src/main/resources/schema.json | 39 ---
src/main/resources/xml-splitter.schema.json | 80 -----
.../wsdl/WSDLActivityFactoryTest.java | 64 ----
.../t2/activities/wsdl/WSDLActivityTest.java | 148 ---------
.../t2/activities/wsdl/WSRFActivityTest.java | 226 -------------
.../wsdl/security/HTTPSConnectionsTest.java | 50 ---
.../security/SecureServicesInvokerTest.java | 116 -------
.../xmlsplitter/AddXMLSplitterEditTest.java | 136 --------
.../XMLInputSplitterActivityTest.java | 88 -----
.../XMLOutputSplitterActivityTest.java | 53 ---
...XMLSplitterConfigurationBeanBuilderTest.java | 86 -----
src/test/resources/log4j.properties | 8 -
.../wsrf/counterService/CounterService_.wsdl | 9 -
.../wsdl/wsrf/counterService/WS-Addressing.xsd | 121 -------
.../wsdl/wsrf/counterService/WS-BaseFaults.xsd | 47 ---
.../wsdl/wsrf/counterService/WS-BaseN.wsdl | 298 -----------------
.../wsdl/wsrf/counterService/WS-BaseN.xsd | 50 ---
.../counterService/WS-ResourceLifetime.wsdl | 117 -------
.../wsrf/counterService/WS-ResourceLifetime.xsd | 26 --
.../counterService/WS-ResourceProperties.wsdl | 240 --------------
.../counterService/WS-ResourceProperties.xsd | 42 ---
.../wsrf/counterService/counter_bindings.wsdl | 157 ---------
.../wsrf/counterService/counter_flattened.wsdl | 111 -------
.../activities/wsdl/wsrf/counterService/xml.xsd | 105 ------
taverna-wsdl-activity/pom.xml | 120 +++++++
.../wsdl/InputPortTypeDescriptorActivity.java | 57 ++++
.../wsdl/OutputPortTypeDescriptorActivity.java | 57 ++++
.../t2/activities/wsdl/T2WSDLSOAPInvoker.java | 282 ++++++++++++++++
.../t2/activities/wsdl/WSDLActivity.java | 328 +++++++++++++++++++
.../wsdl/WSDLActivityConfigurationBean.java | 82 +++++
.../wsdl/WSDLActivityDescriptorChecker.java | 147 +++++++++
.../t2/activities/wsdl/WSDLActivityFactory.java | 141 ++++++++
.../wsdl/WSDLActivityHealthChecker.java | 170 ++++++++++
.../wsdl/WSDLOperationConfigurationBean.java | 57 ++++
.../sf/taverna/t2/activities/wsdl/package.html | 3 +
.../activities/wsdl/security/SSLUtilities.java | 151 +++++++++
.../wsdl/security/SecurityProfiles.java | 130 ++++++++
.../TavernaAxisCustomSSLSocketFactory.java | 40 +++
.../security/ThreadLocalSSLSocketFactory.java | 186 +++++++++++
.../activities/wsdl/wss4j/T2WSDoAllSender.java | 231 +++++++++++++
.../wsdl/xmlsplitter/AddXMLSplitterEdit.java | 290 ++++++++++++++++
.../xmlsplitter/XMLInputSplitterActivity.java | 186 +++++++++++
.../XMLInputSplitterActivityFactory.java | 96 ++++++
.../XMLInputSplitterHealthChecker.java | 65 ++++
.../xmlsplitter/XMLOutputSplitterActivity.java | 207 ++++++++++++
.../XMLOutputSplitterActivityFactory.java | 96 ++++++
.../XMLOutputSplitterHealthChecker.java | 65 ++++
.../XMLSplitterConfigurationBean.java | 42 +++
.../XMLSplitterConfigurationBeanBuilder.java | 205 ++++++++++++
...averna.t2.workflowmodel.health.HealthChecker | 4 +
.../spring/wsdl-activity-context-osgi.xml | 20 ++
.../META-INF/spring/wsdl-activity-context.xml | 21 ++
.../src/main/resources/schema.json | 39 +++
.../src/main/resources/xml-splitter.schema.json | 80 +++++
.../wsdl/WSDLActivityFactoryTest.java | 64 ++++
.../t2/activities/wsdl/WSDLActivityTest.java | 148 +++++++++
.../t2/activities/wsdl/WSRFActivityTest.java | 226 +++++++++++++
.../wsdl/security/HTTPSConnectionsTest.java | 50 +++
.../security/SecureServicesInvokerTest.java | 116 +++++++
.../xmlsplitter/AddXMLSplitterEditTest.java | 136 ++++++++
.../XMLInputSplitterActivityTest.java | 88 +++++
.../XMLOutputSplitterActivityTest.java | 53 +++
...XMLSplitterConfigurationBeanBuilderTest.java | 86 +++++
.../src/test/resources/log4j.properties | 8 +
.../wsrf/counterService/CounterService_.wsdl | 9 +
.../wsdl/wsrf/counterService/WS-Addressing.xsd | 121 +++++++
.../wsdl/wsrf/counterService/WS-BaseFaults.xsd | 47 +++
.../wsdl/wsrf/counterService/WS-BaseN.wsdl | 298 +++++++++++++++++
.../wsdl/wsrf/counterService/WS-BaseN.xsd | 50 +++
.../counterService/WS-ResourceLifetime.wsdl | 117 +++++++
.../wsrf/counterService/WS-ResourceLifetime.xsd | 26 ++
.../counterService/WS-ResourceProperties.wsdl | 240 ++++++++++++++
.../counterService/WS-ResourceProperties.xsd | 42 +++
.../wsrf/counterService/counter_bindings.wsdl | 157 +++++++++
.../wsrf/counterService/counter_flattened.wsdl | 111 +++++++
.../activities/wsdl/wsrf/counterService/xml.xsd | 105 ++++++
107 files changed, 5896 insertions(+), 5924 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/.gitignore
----------------------------------------------------------------------
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index ebe0e5b..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,24 +0,0 @@
-# ignore project files #
-.classpath
-.project
-.settings/
-catalog-v001.xml
-
-# ignore target files #
-target/
-bin/
-build/
-dist/
-apidoc/
-*.swp
-
-# ignore svn files if there
-.svn
-
-# ignore log files #
-*.log
-/logs/*
-*/logs/*
-
-
-
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index dff5f3a..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1 +0,0 @@
-language: java
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
deleted file mode 100644
index ff3b563..0000000
--- a/README.md
+++ /dev/null
@@ -1,3 +0,0 @@
-Taverna Workflow system WSDL Activity: data model and execution implementation
-
-This code was previously hosted at http://taverna.googlecode.com/svn/taverna/engine/net.sf.taverna.t2.activities/
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
deleted file mode 100644
index 7af8cf8..0000000
--- a/pom.xml
+++ /dev/null
@@ -1,120 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<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>
- <artifactId>taverna-parent</artifactId>
- <groupId>net.sf.taverna</groupId>
- <version>3.0.1-SNAPSHOT</version>
- </parent>
- <groupId>net.sf.taverna.t2.activities</groupId>
- <artifactId>wsdl-activity</artifactId>
- <version>2.0.1-SNAPSHOT</version>
- <packaging>bundle</packaging>
- <name>Taverna 2 WSDL Activity</name>
- <build>
- <plugins>
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <!-- Use the java version instead of xmlcommons for javax.* packages -->
- <Import-Package>javax.xml.namespace;version="0.0.0",javax.xml.parsers;version="0.0.0",org.w3c.dom;version="0.0.0",org.xml.sax;version="0.0.0",*</Import-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
- </build>
-
- <dependencies>
- <dependency>
- <groupId>net.sf.taverna.t2.core</groupId>
- <artifactId>workflowmodel-api</artifactId>
- <version>${t2.core.version}</version>
- </dependency>
- <dependency>
- <groupId>net.sf.taverna.t2.core</groupId>
- <artifactId>reference-api</artifactId>
- <version>${t2.core.version}</version>
- </dependency>
- <dependency>
- <groupId>net.sf.taverna</groupId>
- <artifactId>wsdl-generic</artifactId>
- <version>${wsdl.generic.version}</version>
- </dependency>
- <dependency>
- <groupId>net.sf.taverna.t2.security</groupId>
- <artifactId>credential-manager</artifactId>
- <version>${t2.security.version}</version>
- </dependency>
- <dependency>
- <groupId>org.jdom</groupId>
- <artifactId>com.springsource.org.jdom</artifactId>
- <version>${jdom.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.ws</groupId>
- <artifactId>com.springsource.org.apache.ws.security</artifactId>
- <version>${ws.security.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.xml</groupId>
- <artifactId>com.springsource.org.apache.xml.security</artifactId>
- <version>${xml.security.version}</version>
- </dependency>
- <dependency>
- <groupId>org.apache.log4j</groupId>
- <artifactId>com.springsource.org.apache.log4j</artifactId>
- <version>${log4j.version}</version>
- </dependency>
-
- <dependency>
- <groupId>com.fasterxml.jackson.core</groupId>
- <artifactId>jackson-databind</artifactId>
- <version>2.2.2</version>
- </dependency>
-
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>${junit.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>net.sf.taverna.t2.activities</groupId>
- <artifactId>activity-test-utils</artifactId>
- <version>${t2.activities.version}</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>net.sf.taverna.t2.core</groupId>
- <artifactId>workflowmodel-impl</artifactId>
- <version>${t2.core.version}</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
-
- <repositories>
- <repository>
- <releases />
- <snapshots>
- <enabled>false</enabled>
- </snapshots>
- <id>mygrid-repository</id>
- <name>myGrid Repository</name>
- <url>http://www.mygrid.org.uk/maven/repository</url>
- </repository>
- <repository>
- <releases>
- <enabled>false</enabled>
- </releases>
- <snapshots />
- <id>mygrid-snapshot-repository</id>
- <name>myGrid Snapshot Repository</name>
- <url>http://www.mygrid.org.uk/maven/snapshot-repository</url>
- </repository>
- </repositories>
-
-</project>
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/InputPortTypeDescriptorActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/InputPortTypeDescriptorActivity.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/InputPortTypeDescriptorActivity.java
deleted file mode 100644
index c153722..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/InputPortTypeDescriptorActivity.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLInputSplitterActivity;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-
-/**
- * Interface for an activity such as {@link WSDLActivity} and
- * {@link XMLInputSplitterActivity} that can provide {@link TypeDescriptor}s for
- * its inputs.
- *
- * @author Stian Soiland-Reyes
- *
- * @param <ActivityBeanType> The configuration bean type of the activity
- */
-public interface InputPortTypeDescriptorActivity {
-
- /**
- * Provides access to the TypeDescriptor for a given input port name.
- * <br>
- * This TypeDescriptor represents the Type defined in the schema for this Activities
- * WSDL.
- *
- * @param portName
- * @return the TypeDescriptor, or null if the portName is not recognised.
- * @throws UnknownOperationException if the operation this Activity is associated with doesn't exist.
- * @throws IOException
- *
- * @see TypeDescriptor
- * @see #getTypeDescriptorsForInputPorts()
- * @see #getTypeDescriptorForOutputPort(String)
- */
- public abstract TypeDescriptor getTypeDescriptorForInputPort(String portName)
- throws UnknownOperationException, IOException;
-
- /**
- * Return TypeDescriptor for a all input ports.
- * <p>
- * This TypeDescriptor represents the Type defined in the schema for this Activities
- * WSDL.
- *
- * @param portName
- * @return A {@link Map} from portname to {@link TypeDescriptor}
- * @throws UnknownOperationException if the operation this Activity is associated with doesn't exist.
- * @throws IOException If the WSDL or some of its dependencies could not be read
- *
- * @see TypeDescriptor
- * @see #getTypeDescriptorForInputPort(String)
- * @see #getTypeDescriptorsForOutputPorts()
- */
- public abstract Map<String, TypeDescriptor> getTypeDescriptorsForInputPorts()
- throws UnknownOperationException, IOException;
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/OutputPortTypeDescriptorActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/OutputPortTypeDescriptorActivity.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/OutputPortTypeDescriptorActivity.java
deleted file mode 100644
index 23a235c..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/OutputPortTypeDescriptorActivity.java
+++ /dev/null
@@ -1,57 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.wsdl.xmlsplitter.XMLOutputSplitterActivity;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-
-/**
- * Interface for an activity such as {@link WSDLActivity} and
- * {@link XMLOutputSplitterActivity} that can provide {@link TypeDescriptor}s for
- * it's outputs.
- *
- * @author Stian Soiland-Reyes
- *
- * @param <ActivityBeanType> The configuration bean type of the activity
- */
-public interface OutputPortTypeDescriptorActivity {
-
- /**
- * Provides access to the TypeDescriptor for a given output port name.
- * <br>
- * This TypeDescriptor represents the Type defined in the schema for this Activities
- * WSDL.
- *
- * @param portName
- * @return the TypeDescriptor, or null if the portName is not recognised.
- * @throws UnknownOperationException if the operation this Activity is associated with doesn't exist.
- * @throws IOException
- *
- * @see TypeDescriptor
- * @see #getTypeDescriptorsForOutputPorts()
- * @see #getTypeDescriptorForInputPort(String)
- */
- public abstract TypeDescriptor getTypeDescriptorForOutputPort(
- String portName) throws UnknownOperationException, IOException;
-
- /**
- * Return TypeDescriptor for a all output ports.
- * <p>
- * This TypeDescriptor represents the Type defined in the schema for this Activities
- * WSDL.
- *
- * @param portName
- * @return A {@link Map} from portname to {@link TypeDescriptor}
- * @throws UnknownOperationException if the operation this Activity is associated with doesn't exist.
- * @throws IOException If the WSDL or some of its dependencies could not be read
- *
- * @see TypeDescriptor
- * @see #getTypeDescriptorForOutputPort(String)
- * @see #getTypeDescriptorsForInputPorts()
- */
- public abstract Map<String, TypeDescriptor> getTypeDescriptorsForOutputPorts()
- throws UnknownOperationException, IOException;
-
-}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/T2WSDLSOAPInvoker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/T2WSDLSOAPInvoker.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/T2WSDLSOAPInvoker.java
deleted file mode 100644
index 1e9d1a5..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/T2WSDLSOAPInvoker.java
+++ /dev/null
@@ -1,282 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-
-import net.sf.taverna.t2.activities.wsdl.security.SecurityProfiles;
-import net.sf.taverna.t2.security.credentialmanager.CMException;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import net.sf.taverna.t2.security.credentialmanager.UsernamePassword;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-import net.sf.taverna.wsdl.soap.WSDLSOAPInvoker;
-
-import org.apache.axis.AxisProperties;
-import org.apache.axis.EngineConfiguration;
-import org.apache.axis.MessageContext;
-import org.apache.axis.client.Call;
-import org.apache.axis.configuration.XMLStringProvider;
-import org.apache.axis.message.SOAPHeaderElement;
-import org.apache.log4j.Logger;
-import org.jdom.Document;
-import org.jdom.Element;
-import org.jdom.JDOMException;
-import org.jdom.Namespace;
-import org.jdom.input.SAXBuilder;
-import org.jdom.output.DOMOutputter;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * Invokes SOAP based Web Services from T2.
- *
- * Subclasses WSDLSOAPInvoker used for invoking Web Services from Taverna 1.x
- * and extends it to provide support for invoking secure Web services.
- *
- * @author Stuart Owen
- * @author Alex Nenadic
- * @author Stian Soiland-Reyes
- *
- */
-public class T2WSDLSOAPInvoker extends WSDLSOAPInvoker {
-
- private static final String REFERENCE_PROPERTIES = "ReferenceProperties";
- private static final String ENDPOINT_REFERENCE = "EndpointReference";
- private static Logger logger = Logger.getLogger(T2WSDLSOAPInvoker.class);
- private static final Namespace wsaNS = Namespace.getNamespace("wsa",
- "http://schemas.xmlsoap.org/ws/2004/03/addressing");
-
- private String wsrfEndpointReference = null;
-
- private CredentialManager credentialManager;
-
- public T2WSDLSOAPInvoker(WSDLParser parser, String operationName,
- List<String> outputNames, CredentialManager credentialManager) {
- super(parser, operationName, outputNames);
- this.credentialManager = credentialManager;
- }
-
- public T2WSDLSOAPInvoker(WSDLParser parser, String operationName,
- List<String> outputNames, String wsrfEndpointReference, CredentialManager credentialManager) {
- this(parser, operationName, outputNames, credentialManager);
- this.wsrfEndpointReference = wsrfEndpointReference;
- }
-
- @SuppressWarnings("unchecked")
- protected void addEndpointReferenceHeaders(
- List<SOAPHeaderElement> soapHeaders) {
- // Extract elements
- // Add WSA-stuff
- // Add elements
-
- Document wsrfDoc;
- try {
- wsrfDoc = parseWsrfEndpointReference(wsrfEndpointReference);
- } catch (JDOMException e) {
- logger.warn("Could not parse endpoint reference, ignoring:\n"
- + wsrfEndpointReference, e);
- return;
- } catch (IOException e) {
- logger.error("Could not read endpoint reference, ignoring:\n"
- + wsrfEndpointReference, e);
- return;
- }
-
- Element endpointRefElem = null;
- Element wsrfRoot = wsrfDoc.getRootElement();
- if (wsrfRoot.getNamespace().equals(wsaNS)
- && wsrfRoot.getName().equals(ENDPOINT_REFERENCE)) {
- endpointRefElem = wsrfRoot;
- } else {
- // Only look for child if the parent is not an EPR
- Element childEndpoint = wsrfRoot
- .getChild(ENDPOINT_REFERENCE, wsaNS);
- if (childEndpoint != null) {
- // Support wrapped endpoint reference for backward compatibility
- // and convenience (T2-677)
- endpointRefElem = childEndpoint;
- } else {
- logger
- .warn("Unexpected element name for endpoint reference, but inserting anyway: "
- + wsrfRoot.getQualifiedName());
- endpointRefElem = wsrfRoot;
- }
- }
-
- Element refPropsElem = endpointRefElem.getChild(REFERENCE_PROPERTIES,
- wsaNS);
- if (refPropsElem == null) {
- logger.warn("Could not find " + REFERENCE_PROPERTIES);
- return;
- }
-
- List<Element> refProps = refPropsElem.getChildren();
- // Make a copy of the list as it would be modified by
- // prop.detach();
- for (Element prop : new ArrayList<Element>(refProps)) {
- DOMOutputter domOutputter = new DOMOutputter();
- SOAPHeaderElement soapElem;
- prop.detach();
- try {
- org.w3c.dom.Document domDoc = domOutputter.output(new Document(
- prop));
- soapElem = new SOAPHeaderElement(domDoc.getDocumentElement());
- } catch (JDOMException e) {
- logger.warn(
- "Could not translate wsrf element to DOM:\n" + prop, e);
- continue;
- }
- soapElem.setMustUnderstand(false);
- soapElem.setActor(null);
- soapHeaders.add(soapElem);
- }
-
- // soapHeaders.add(new SOAPHeaderElement((Element) wsrfDoc
- // .getDocumentElement()));
- }
-
- protected void configureSecurity(Call call, JsonNode bean) throws Exception {
-
- // If security settings require WS-Security - configure the axis call
- // with appropriate properties
- URI securityProfile = new URI(bean.get("securityProfile").textValue());
- if (securityProfile
- .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD)
- || securityProfile
- .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD)
- || securityProfile
- .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD)
- || securityProfile
- .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD)) {
-
- UsernamePassword usernamePassword = getUsernameAndPasswordForService(bean, false);
- call.setProperty(Call.USERNAME_PROPERTY, usernamePassword.getUsername());
- call.setProperty(Call.PASSWORD_PROPERTY, usernamePassword.getPasswordAsString());
- usernamePassword.resetPassword();
- } else if (securityProfile.equals(SecurityProfiles.HTTP_BASIC_AUTHN)){
- // Basic HTTP AuthN - set HTTP headers
- // pathrecursion allowed
- UsernamePassword usernamePassword = getUsernameAndPasswordForService(bean, true);
- MessageContext context = call.getMessageContext();
- context.setUsername(usernamePassword.getUsername());
- context.setPassword(usernamePassword.getPasswordAsString());
- usernamePassword.resetPassword();
- } else {
- logger.error("Unknown security profile " + securityProfile);
- }
- }
-
- /**
- * Get username and password from Credential Manager or ask user to supply
- * one. Username is the first element of the returned array, and the
- * password is the second.
- */
- protected UsernamePassword getUsernameAndPasswordForService(
- JsonNode bean, boolean usePathRecursion) throws CMException {
-
- // Try to get username and password for this service from Credential
- // Manager (which should pop up UI if needed)
- URI serviceUri = URI.create(bean.get("operation").get("wsdl").textValue());
- UsernamePassword username_password = credentialManager.getUsernameAndPasswordForService(serviceUri, usePathRecursion, null);
- if (username_password == null) {
- throw new CMException("No username/password provided for service " + serviceUri);
- }
- return username_password;
- }
-
- @Override
- protected List<SOAPHeaderElement> makeSoapHeaders() {
- List<SOAPHeaderElement> soapHeaders = new ArrayList<SOAPHeaderElement>(
- super.makeSoapHeaders());
- if (wsrfEndpointReference != null && getParser().isWsrfService()) {
- addEndpointReferenceHeaders(soapHeaders);
- }
- return soapHeaders;
- }
-
- protected org.jdom.Document parseWsrfEndpointReference(
- String wsrfEndpointReference) throws JDOMException, IOException {
- SAXBuilder builder = new SAXBuilder();
- return builder.build(new StringReader(wsrfEndpointReference));
- }
-
- public Map<String, Object> invoke(Map<String, Object> inputMap,
- JsonNode bean) throws Exception {
-
- EngineConfiguration wssEngineConfiguration = null;
- if (bean.has("securityProfile")) {
- URI securityProfile = new URI(bean.get("securityProfile").textValue());
-
- // If security settings require WS-Security and not just e.g. Basic HTTP
- // AuthN - configure the axis engine from the appropriate config strings
- if (securityProfile
- .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD)) {
- wssEngineConfiguration = new XMLStringProvider(
- SecurityProfiles.WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD_CONFIG);
- } else if (securityProfile
- .equals(SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD)) {
- wssEngineConfiguration = new XMLStringProvider(
- SecurityProfiles.WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD_CONFIG);
- } else if (securityProfile
- .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD)) {
- wssEngineConfiguration = new XMLStringProvider(
- SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTETPASSWORD_CONFIG);
- } else if (securityProfile
- .equals(SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD)) {
- wssEngineConfiguration = new XMLStringProvider(
- SecurityProfiles.WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD_CONFIG);
- }
- }
-
- // This does not work
-// ClassUtils.setClassLoader("net.sf.taverna.t2.activities.wsdl.security.TavernaAxisCustomSSLSocketFactory",TavernaAxisCustomSSLSocketFactory.class.getClassLoader());
-
- // Setting Axis property only works when we also set the Thread's classloader as below
- // (we do it from the net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke.requestRun())
-// Thread.currentThread().setContextClassLoader(getClass().getClassLoader());
- if (AxisProperties.getProperty("axis.socketSecureFactory")== null || !AxisProperties.getProperty("axis.socketSecureFactory").equals("net.sf.taverna.t2.activities.wsdl.security.TavernaAxisCustomSSLSocketFactory")){
- AxisProperties.setProperty("axis.socketSecureFactory", "net.sf.taverna.t2.activities.wsdl.security.TavernaAxisCustomSSLSocketFactory");
- logger.info("Setting axis.socketSecureFactory property to " + AxisProperties.getProperty("axis.socketSecureFactory"));
- }
-
- // This also does not work
- //AxisProperties.setClassDefault(SecureSocketFactory.class, "net.sf.taverna.t2.activities.wsdl.security.TavernaAxisCustomSSLSocketFactory");
-
- Call call = super.getCall(wssEngineConfiguration);
-
- // Now that we have an axis Call object, configure any additional
- // security properties on it (or its message context or its Transport
- // handler),
- // such as WS-Security UsernameToken or HTTP Basic AuthN
- if (bean.has("securityProfile")) {
- configureSecurity(call, bean);
- }
-
- return invoke(inputMap, call);
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivity.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivity.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivity.java
deleted file mode 100644
index 763cbee..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivity.java
+++ /dev/null
@@ -1,328 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.SocketTimeoutException;
-import java.net.URL;
-import java.net.URLConnection;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.ParserConfigurationException;
-
-import net.sf.taverna.t2.reference.ReferenceService;
-import net.sf.taverna.t2.reference.ReferenceServiceException;
-import net.sf.taverna.t2.reference.T2Reference;
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import net.sf.taverna.t2.workflowmodel.OutputPort;
-import net.sf.taverna.t2.workflowmodel.health.RemoteHealthChecker;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AbstractAsynchronousActivity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityConfigurationException;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.AsynchronousActivityCallback;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.apache.log4j.Logger;
-import org.xml.sax.SAXException;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-/**
- * An asynchronous Activity that is concerned with WSDL based web-services.
- * <p>
- * The activity is configured according to the WSDL location and the operation.<br>
- * The ports are defined dynamically according to the WSDL specification, and in
- * addition an output<br>
- * port <em>attachmentList</em> is added to represent any attachements that are
- * returned by the webservice.
- * </p>
- *
- * @author Stuart Owen
- * @author Stian Soiland-Reyes
- */
-public class WSDLActivity extends
- AbstractAsynchronousActivity<JsonNode> implements
- InputPortTypeDescriptorActivity, OutputPortTypeDescriptorActivity {
-
- public static final String URI = "http://ns.taverna.org.uk/2010/activity/wsdl";
-
- public static final String ENDPOINT_REFERENCE = "EndpointReference";
- private JsonNode configurationBean;
- private WSDLParser parser;
-// private Map<String, Integer> outputDepth = new HashMap<String, Integer>();
- private boolean isWsrfService = false;
-// private String endpointReferenceInputPortName;
- private CredentialManager credentialManager;
-
- public WSDLActivity(CredentialManager credentialManager) {
- this.credentialManager = credentialManager;
- }
-
- public boolean isWsrfService() {
- return isWsrfService;
- }
-
- private static Logger logger = Logger.getLogger(WSDLActivity.class);
-
- /**
- * Configures the activity according to the information passed by the
- * configuration bean.<br>
- * During this process the WSDL is parsed to determine the input and output
- * ports.
- *
- * @param bean
- * the {@link WSDLActivityConfigurationBean} configuration bean
- */
- @Override
- public void configure(JsonNode bean)
- throws ActivityConfigurationException {
- this.configurationBean = bean;
- try {
- parseWSDL();
- } catch (Exception ex) {
- throw new ActivityConfigurationException(
- "Unable to parse the WSDL " + bean.get("operation").get("wsdl").textValue(), ex);
- }
- }
-
- @Override
- public JsonNode getConfiguration() {
- return configurationBean;
- }
-
- /*
- * (non-Javadoc)
- *
- * @seenet.sf.taverna.t2.activities.wsdl.InputPortTypeDescriptorActivity#
- * getTypeDescriptorForInputPort(java.lang.String)
- */
- public TypeDescriptor getTypeDescriptorForInputPort(String portName)
- throws UnknownOperationException, IOException {
- List<TypeDescriptor> inputDescriptors = parser
- .getOperationInputParameters(configurationBean.get("operation").get("name").textValue());
- TypeDescriptor result = null;
- for (TypeDescriptor descriptor : inputDescriptors) {
- if (descriptor.getName().equals(portName)) {
- result = descriptor;
- break;
- }
- }
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @seenet.sf.taverna.t2.activities.wsdl.InputPortTypeDescriptorActivity#
- * getTypeDescriptorsForInputPorts()
- */
- public Map<String, TypeDescriptor> getTypeDescriptorsForInputPorts()
- throws UnknownOperationException, IOException {
- Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>();
- List<TypeDescriptor> inputDescriptors = parser
- .getOperationInputParameters(configurationBean.get("operation").get("name").textValue());
- for (TypeDescriptor descriptor : inputDescriptors) {
- descriptors.put(descriptor.getName(), descriptor);
- }
- return descriptors;
- }
-
- /*
- * (non-Javadoc)
- *
- * @seenet.sf.taverna.t2.activities.wsdl.OutputPortTypeDescriptorActivity#
- * getTypeDescriptorForOutputPort(java.lang.String)
- */
- public TypeDescriptor getTypeDescriptorForOutputPort(String portName)
- throws UnknownOperationException, IOException {
- TypeDescriptor result = null;
- List<TypeDescriptor> outputDescriptors = parser
- .getOperationOutputParameters(configurationBean.get("operation").get("name").textValue());
- for (TypeDescriptor descriptor : outputDescriptors) {
- if (descriptor.getName().equals(portName)) {
- result = descriptor;
- break;
- }
- }
- return result;
- }
-
- /*
- * (non-Javadoc)
- *
- * @seenet.sf.taverna.t2.activities.wsdl.OutputPortTypeDescriptorActivity#
- * getTypeDescriptorsForOutputPorts()
- */
- public Map<String, TypeDescriptor> getTypeDescriptorsForOutputPorts()
- throws UnknownOperationException, IOException {
- Map<String, TypeDescriptor> descriptors = new HashMap<String, TypeDescriptor>();
- List<TypeDescriptor> inputDescriptors = parser
- .getOperationOutputParameters(configurationBean.get("operation").get("name").textValue());
- for (TypeDescriptor descriptor : inputDescriptors) {
- descriptors.put(descriptor.getName(), descriptor);
- }
- return descriptors;
- }
-
- private void parseWSDL() throws ParserConfigurationException,
- WSDLException, IOException, SAXException, UnknownOperationException {
- String wsdlLocation = configurationBean.get("operation").get("wsdl").textValue();
- URLConnection connection = null;
- try {
- URL wsdlURL = new URL(wsdlLocation);
- connection = wsdlURL.openConnection();
- connection.setConnectTimeout(RemoteHealthChecker.getTimeoutInSeconds() * 1000);
- connection.connect();
- } catch (MalformedURLException e) {
- throw new IOException("Malformed URL", e);
- } catch (SocketTimeoutException e) {
- throw new IOException("Timeout", e);
- } catch (IOException e) {
- throw e;
- } finally {
- if ((connection != null) && (connection.getInputStream() != null)) {
- connection.getInputStream().close();
- }
- }
- parser = new WSDLParser(wsdlLocation);
- isWsrfService = parser.isWsrfService();
- }
-
- @Override
- public void executeAsynch(final Map<String, T2Reference> data,
- final AsynchronousActivityCallback callback) {
-
- callback.requestRun(new Runnable() {
-
- public void run() {
-
- ReferenceService referenceService = callback.getContext()
- .getReferenceService();
-
- Map<String, T2Reference> outputData = new HashMap<String, T2Reference>();
- Map<String, Object> invokerInputMap = new HashMap<String, Object>();
- String endpointReferenceInputPortName = getEndpointReferenceInputPortName();
-
- try {
- String endpointReference = null;
- for (String key : data.keySet()) {
- Object renderIdentifier = referenceService
- .renderIdentifier(data.get(key), String.class,
- callback.getContext());
- if (isWsrfService()
- && key.equals(endpointReferenceInputPortName)) {
- endpointReference = (String) renderIdentifier;
- } else {
- invokerInputMap.put(key, renderIdentifier);
- }
- }
- List<String> outputNames = new ArrayList<String>();
- for (OutputPort port : getOutputPorts()) {
- outputNames.add(port.getName());
- }
-
- T2WSDLSOAPInvoker invoker = new T2WSDLSOAPInvoker(parser,
- configurationBean.get("operation").get("name").textValue(), outputNames,
- endpointReference, credentialManager);
-
- Map<String, Object> invokerOutputMap = invoker.invoke(
- invokerInputMap, configurationBean);
-
- for (String outputName : invokerOutputMap.keySet()) {
- Object value = invokerOutputMap.get(outputName);
-
- if (value != null) {
- Integer depth = getOutputPortDepth(outputName);
- if (depth != null) {
- outputData.put(outputName, referenceService
- .register(value, depth, true, callback
- .getContext()));
- } else {
- logger.info("Skipping unknown output port :"
- + outputName);
-// // TODO what should the depth be in this case?
-// outputData.put(outputName, referenceService
-// .register(value, 0, true, callback
-// .getContext()));
- }
- }
- }
- callback.receiveResult(outputData, new int[0]);
- } catch (ReferenceServiceException e) {
- logger.error("Error finding the input data for "
- + getConfiguration().get("operation"), e);
- callback.fail("Unable to find input data", e);
- return;
- } catch (Exception e) {
- logger.error("Error invoking WSDL service "
- + getConfiguration().get("operation"), e);
- callback.fail(
- "An error occurred invoking the WSDL service", e);
- return;
- }
-
- }
-
- });
-
- }
-
- private Integer getOutputPortDepth(String portName) {
- for (ActivityOutputPort outputPort : getOutputPorts()) {
- if (outputPort.getName().equals(portName)) {
- return outputPort.getDepth();
- }
- }
- return null;
- }
-
- private String getEndpointReferenceInputPortName() {
- String endpointReferenceInputPortName = null;
- if (parser.isWsrfService()) {
- Set<String> inputPorts = new HashSet<>();
- try {
- List<TypeDescriptor> inputDescriptors = parser.getOperationInputParameters(configurationBean
- .get("operation").get("name").textValue());
- for (TypeDescriptor descriptor : inputDescriptors) {
- inputPorts.add(descriptor.getName());
- }
- } catch (UnknownOperationException | IOException e) {
- }
- // Make sure the port name is unique
- endpointReferenceInputPortName = WSDLActivity.ENDPOINT_REFERENCE;
- int counter = 0;
- while (inputPorts.contains(endpointReferenceInputPortName)) {
- endpointReferenceInputPortName = WSDLActivity.ENDPOINT_REFERENCE + counter++;
- }
- }
- return endpointReferenceInputPortName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityConfigurationBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityConfigurationBean.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityConfigurationBean.java
deleted file mode 100644
index 80b0bd5..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityConfigurationBean.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-
-/**
- * A standard Java Bean that provides the details required to configure a WSDLActivity.
- * <p>
- * This contains details about the WSDL and the Operation that the WSDLActivity is intended to invoke.
- * </p>
- * @author Stuart Owen
- */
-@ConfigurationBean(uri = WSDLActivity.URI + "#Config")
-public class WSDLActivityConfigurationBean {
- private WSDLOperationConfigurationBean operation;
- private URI securityProfile;
-
- // In the case service requires username and password for authentication,
- // but do not serialise these variables to file
- //transient private String username;
- //transient private String password;
-
- /** Creates a new instance of WSDLActivityConfigurationBean */
- public WSDLActivityConfigurationBean() {
- }
-
- public WSDLOperationConfigurationBean getOperation() {
- return operation;
- }
-
- @ConfigurationProperty(name = "operation", label = "WSDL Operation", description = "The WSDL operation")
- public void setOperation(WSDLOperationConfigurationBean operation) {
- this.operation = operation;
- }
-
- public URI getSecurityProfile() {
- return securityProfile;
- }
-
- @ConfigurationProperty(name = "securityProfile", label = "Security Profile", description = "WS-Security settings required by the web service", required = false)
- public void setSecurityProfile(URI securityProfile) {
- this.securityProfile = securityProfile;
- }
-
-// public void setUsername(String username) {
-// this.username = username;
-// }
-//
-// public String getUsername() {
-// return username;
-// }
-//
-// public void setPassword(String password) {
-// this.password = password;
-// }
-//
-// public String getPassword() {
-// return password;
-// }
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityDescriptorChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityDescriptorChecker.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityDescriptorChecker.java
deleted file mode 100644
index 5a41cde..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityDescriptorChecker.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/**
- *
- */
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.Dataflow;
-import net.sf.taverna.t2.workflowmodel.Datalink;
-import net.sf.taverna.t2.workflowmodel.Merge;
-import net.sf.taverna.t2.workflowmodel.MergeInputPort;
-import net.sf.taverna.t2.workflowmodel.MergeOutputPort;
-import net.sf.taverna.t2.workflowmodel.MergePort;
-import net.sf.taverna.t2.workflowmodel.Port;
-import net.sf.taverna.t2.workflowmodel.Processor;
-import net.sf.taverna.t2.workflowmodel.ProcessorInputPort;
-import net.sf.taverna.t2.workflowmodel.ProcessorPort;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.HealthChecker;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.utils.Tools;
-import net.sf.taverna.wsdl.parser.ArrayTypeDescriptor;
-import net.sf.taverna.wsdl.parser.ComplexTypeDescriptor;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-
-import org.apache.log4j.Logger;
-
-/**
- * @author alanrw
- *
- */
-public final class WSDLActivityDescriptorChecker implements HealthChecker<InputPortTypeDescriptorActivity> {
-
- private static Logger logger = Logger.getLogger(WSDLActivityDescriptorChecker.class);
-
- public boolean canVisit(Object o) {
- return ((o != null) && (o instanceof InputPortTypeDescriptorActivity));
- }
-
- public boolean isTimeConsuming() {
- return false;
- }
-
- public VisitReport visit(InputPortTypeDescriptorActivity o,
- List<Object> ancestry) {
- List<VisitReport> reports = new ArrayList<VisitReport>();
- try {
- Map<String, TypeDescriptor> typeMap = o.getTypeDescriptorsForInputPorts();
- Processor p = (Processor) VisitReport.findAncestor(ancestry, Processor.class);
- Dataflow d = (Dataflow) VisitReport.findAncestor(ancestry, Dataflow.class);
-
-
- for (Entry<String, TypeDescriptor> entry : typeMap.entrySet()) {
- TypeDescriptor descriptor = entry.getValue();
- if (!descriptor.getMimeType().contains("'text/xml'")) {
- continue;
- }
- if (!((descriptor instanceof ArrayTypeDescriptor) || (descriptor instanceof ComplexTypeDescriptor))) {
- continue;
- }
- // Find the processor port, if any that corresponds to the activity port
- ActivityInputPort aip = Tools.getActivityInputPort((Activity<?>) o, entry.getKey());
- if (aip == null) {
- continue;
- }
- ProcessorInputPort pip = Tools.getProcessorInputPort(p, (Activity<?>) o, aip);
-
- if (pip == null) {
- continue;
- }
-
- for (Datalink dl : d.getLinks()) {
-
- if (dl.getSink().equals(pip)) {
- Port source = dl.getSource();
- Set<VisitReport> subReports = checkSource(source, d, (Activity<?>) o, aip);
- for (VisitReport vr : subReports) {
- vr.setProperty("activity", o);
- vr.setProperty("sinkPort", pip);
- }
- reports.addAll(subReports);
- }
- }
-
- }
- } catch (UnknownOperationException e) {
- logger.error("Problem getting type descriptors for activity", e);
- } catch (IOException e) {
- logger.error("Problem getting type descriptors for activity", e);
- } catch (NullPointerException e) {
- logger.error("Problem getting type desciptors for activity", e);
- }
- if (reports.isEmpty()) {
- return null;
- }
- if (reports.size() == 1) {
- return reports.get(0);
- }
- else {
- return new VisitReport(HealthCheck.getInstance(), o, "Collation", HealthCheck.DEFAULT_VALUE, reports);
- }
- }
-
- private Set<VisitReport> checkSource(Port source, Dataflow d, Activity<?> o, ActivityInputPort aip) {
- Set<VisitReport> reports = new HashSet<VisitReport>();
- if (source instanceof ProcessorPort) {
- ProcessorPort processorPort = (ProcessorPort) source;
- Processor sourceProcessor = processorPort.getProcessor();
- Activity<?> sourceActivity = sourceProcessor.getActivityList().get(0);
- if (!(sourceActivity instanceof InputPortTypeDescriptorActivity)) {
- VisitReport newReport = new VisitReport(HealthCheck.getInstance(), o, "Source of " + aip.getName(), HealthCheck.DATATYPE_SOURCE, Status.WARNING);
- newReport.setProperty("sinkPortName", aip.getName());
- newReport.setProperty("sourceName", sourceProcessor.getLocalName());
- newReport.setProperty("isProcessorSource", "true");
- reports.add(newReport);
- }
- } else if (source instanceof MergeOutputPort) {
- Merge merge = ((MergePort) source).getMerge();
- for (MergeInputPort mip : merge.getInputPorts()) {
- for (Datalink dl : d.getLinks()) {
- if (dl.getSink().equals(mip)) {
- reports.addAll(checkSource(dl.getSource(), d, o, aip));
- }
- }
-
- }
- } else /* if (source instanceof DataflowInputPort) */ {
- VisitReport newReport = new VisitReport(HealthCheck.getInstance(), o, "Source of " + aip.getName(), HealthCheck.DATATYPE_SOURCE, Status.WARNING);
- newReport.setProperty("sinkPortName", aip.getName());
- newReport.setProperty("sourceName", source.getName());
- newReport.setProperty("isProcessorSource", "false");
- reports.add(newReport);
- }
- return reports;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactory.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactory.java
deleted file mode 100644
index eeb7c5a..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityFactory.java
+++ /dev/null
@@ -1,141 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2010 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.ParserConfigurationException;
-
-import net.sf.taverna.t2.security.credentialmanager.CredentialManager;
-import net.sf.taverna.t2.workflowmodel.Edits;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityFactory;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityInputPort;
-import net.sf.taverna.t2.workflowmodel.processor.activity.ActivityOutputPort;
-import net.sf.taverna.wsdl.parser.TypeDescriptor;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.apache.log4j.Logger;
-import org.xml.sax.SAXException;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * An {@link ActivityFactory} for creating <code>WSDLActivity</code>.
- *
- * @author David Withers
- */
-public class WSDLActivityFactory implements ActivityFactory {
-
- private static Logger logger = Logger.getLogger(WSDLActivityFactory.class);
-
- private CredentialManager credentialManager;
- private Edits edits;
-
- @Override
- public WSDLActivity createActivity() {
- return new WSDLActivity(credentialManager);
- }
-
- @Override
- public URI getActivityType() {
- return URI.create(WSDLActivity.URI);
- }
-
- @Override
- public JsonNode getActivityConfigurationSchema() {
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- return objectMapper.readTree(getClass().getResource("/schema.json"));
- } catch (IOException e) {
- return objectMapper.createObjectNode();
- }
- }
-
- public void setCredentialManager(CredentialManager credentialManager) {
- this.credentialManager = credentialManager;
- }
-
- @Override
- public Set<ActivityInputPort> getInputPorts(JsonNode configuration) {
- Map<String, ActivityInputPort> inputPorts = new HashMap<>();
- try {
- WSDLParser parser = new WSDLParser(configuration.get("operation").get("wsdl").textValue());
- List<TypeDescriptor> inputDescriptors = parser.getOperationInputParameters(configuration
- .get("operation").get("name").textValue());
- for (TypeDescriptor descriptor : inputDescriptors) {
- inputPorts.put(descriptor.getName(), edits.createActivityInputPort(
- descriptor.getName(), descriptor.getDepth(), true, null, String.class));
- }
- if (parser.isWsrfService()) {
- // Make sure the port name is unique
- String endpointReferenceInputPortName = WSDLActivity.ENDPOINT_REFERENCE;
- int counter = 0;
- while (inputPorts.containsKey(endpointReferenceInputPortName)) {
- endpointReferenceInputPortName = WSDLActivity.ENDPOINT_REFERENCE + counter++;
- }
- inputPorts.put(endpointReferenceInputPortName, edits.createActivityInputPort(
- endpointReferenceInputPortName, 0, true, null, String.class));
- }
- } catch (ParserConfigurationException | WSDLException | IOException | SAXException | UnknownOperationException e) {
- logger.warn(
- "Unable to parse the WSDL " + configuration.get("operation").get("wsdl").textValue(), e);
- }
-
- return new HashSet<>(inputPorts.values());
- }
-
- @Override
- public Set<ActivityOutputPort> getOutputPorts(JsonNode configuration) {
- Set<ActivityOutputPort> outputPorts = new HashSet<>();
- try {
- WSDLParser parser = new WSDLParser(configuration.get("operation").get("wsdl")
- .textValue());
- List<TypeDescriptor> outputDescriptors = parser
- .getOperationOutputParameters(configuration.get("operation").get("name")
- .textValue());
- for (TypeDescriptor descriptor : outputDescriptors) {
- outputPorts.add(edits.createActivityOutputPort(descriptor.getName(),
- descriptor.getDepth(), descriptor.getDepth()));
- }
- // add output for attachment list
- outputPorts.add(edits.createActivityOutputPort("attachmentList", 1, 1));
- } catch (ParserConfigurationException | WSDLException | IOException | SAXException | UnknownOperationException e) {
- logger.warn(
- "Unable to parse the WSDL " + configuration.get("operation").get("wsdl").textValue(), e);
- }
-
- return outputPorts;
- }
-
- public void setEdits(Edits edits) {
- this.edits = edits;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
deleted file mode 100644
index 0437ff6..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLActivityHealthChecker.java
+++ /dev/null
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2007 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.wsdl.WSDLException;
-import javax.xml.parsers.ParserConfigurationException;
-
-import net.sf.taverna.t2.visit.VisitReport;
-import net.sf.taverna.t2.visit.VisitReport.Status;
-import net.sf.taverna.t2.workflowmodel.health.HealthCheck;
-import net.sf.taverna.t2.workflowmodel.health.RemoteHealthChecker;
-import net.sf.taverna.t2.workflowmodel.processor.activity.Activity;
-import net.sf.taverna.t2.workflowmodel.processor.activity.DisabledActivity;
-import net.sf.taverna.wsdl.parser.UnknownOperationException;
-import net.sf.taverna.wsdl.parser.WSDLParser;
-
-import org.xml.sax.SAXException;
-
-import com.fasterxml.jackson.databind.JsonNode;
-
-public class WSDLActivityHealthChecker extends RemoteHealthChecker {
-
- private Activity<?> activity;
-
- public boolean canVisit(Object subject) {
- if (subject == null) {
- return false;
- }
- if (subject instanceof WSDLActivity) {
- return true;
- }
- if (subject instanceof DisabledActivity) {
- return (((DisabledActivity) subject).getActivity() instanceof WSDLActivity);
- }
- return false;
- }
-
- public VisitReport visit(Object o, List<Object> ancestors) {
- List<VisitReport> reports = new ArrayList<VisitReport>();
- activity = (Activity<?>) o;
- String endpoint = null;
-
- WSDLParser parser;
- try {
- JsonNode configuration = null;
- if (activity instanceof WSDLActivity) {
- configuration = ((WSDLActivity)activity).getConfiguration();
- } else if (activity instanceof DisabledActivity) {
- configuration = (JsonNode) ((DisabledActivity) activity).getActivityConfiguration();
- }
- endpoint = configuration.get("operation").get("wsdl").asText();
- VisitReport wsdlEndpointReport = RemoteHealthChecker.contactEndpoint(activity, endpoint);
- reports.add(wsdlEndpointReport);
- if (!wsdlEndpointReport.getStatus().equals(Status.SEVERE)) {
- parser = new WSDLParser(endpoint);
-
- String operationName = configuration.get("operation").get("name").asText();
- try {
- reports.add(testStyleAndUse(endpoint,
- parser,
- operationName));
- reports.add(testEndpoint(parser, operationName));
- } catch (UnknownOperationException e) {
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity,
- "Operation not found", HealthCheck.UNKNOWN_OPERATION,
- Status.SEVERE);
- vr.setProperty("operationName", operationName);
- vr.setProperty("endpoint", endpoint);
- reports.add(vr);
- }
- }
-
- } catch (ParserConfigurationException e) {
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
- vr.setProperty("exception", e);
- vr.setProperty("endpoint", endpoint);
- reports.add(vr);
- } catch (WSDLException e) {
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
- vr.setProperty("exception", e);
- vr.setProperty("endpoint", endpoint);
- reports.add(vr);
- } catch (IOException e) {
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Read problem", HealthCheck.IO_PROBLEM, Status.SEVERE);
- vr.setProperty("exception", e);
- vr.setProperty("endpoint", endpoint);
- reports.add(vr);
- } catch (SAXException e) {
- VisitReport vr = new VisitReport(HealthCheck.getInstance(), activity, "Invalid WSDL", HealthCheck.BAD_WSDL, Status.SEVERE);
- vr.setProperty("exception", e);
- vr.setProperty("endpoint", endpoint);
- reports.add(vr);
- }
-
- Status status = VisitReport.getWorstStatus(reports);
- VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "WSDL Activity report", HealthCheck.NO_PROBLEM,
- status, reports);
-
- return report;
- }
-
- public static boolean checkStyleAndUse(String style, String use) {
- return !(style.equalsIgnoreCase("rpc") && use.equalsIgnoreCase("literal"));
- }
-
- private VisitReport testStyleAndUse(String endpoint, WSDLParser parser, String operationName) throws
- UnknownOperationException {
- VisitReport report;
- String style = parser.getStyle().toLowerCase();
- String use = "?";
- use = parser.getUse(operationName).toLowerCase();
- if (!checkStyleAndUse(style, use)) {
- report = new VisitReport(HealthCheck.getInstance(), activity,
- "Unsupported style", HealthCheck.UNSUPPORTED_STYLE,
- Status.SEVERE);
- report.setProperty("use", use);
- report.setProperty("style", style);
- report.setProperty("endpoint", endpoint);
- } else {
- report = new VisitReport(HealthCheck.getInstance(), activity, style + "/"
- + use + " is OK", HealthCheck.NO_PROBLEM, Status.OK);
- }
- return report;
- }
-
- private VisitReport testEndpoint(WSDLParser parser, String operationName) {
- List<VisitReport> reports = new ArrayList<VisitReport>();
- List<String> endpoints = parser
- .getOperationEndpointLocations(operationName);
- for (String endpoint : endpoints) {
- reports.add(RemoteHealthChecker.contactEndpoint(activity, endpoint));
- }
-
- Status status = VisitReport.getWorstStatus(reports);
- if (reports.size()==1) {
- return reports.get(0);
- }
- else if (reports.size()==0) {
- VisitReport report = new VisitReport(HealthCheck.getInstance(), activity, "Service could not be located.", HealthCheck.NO_ENDPOINTS, Status.SEVERE);
- report.setProperty("operationName", operationName);
- return report;
- }
- else {
- return new VisitReport(HealthCheck.getInstance(), activity, "Endpoint tests", HealthCheck.NO_PROBLEM, status, reports);
- }
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
deleted file mode 100644
index ac012ae..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/WSDLOperationConfigurationBean.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (C) 2011 The University of Manchester
- *
- * Modifications to the initial code base are copyright of their
- * respective authors, or their employers as appropriate.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * as published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
- ******************************************************************************/
-package net.sf.taverna.t2.activities.wsdl;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationBean;
-import net.sf.taverna.t2.workflowmodel.processor.config.ConfigurationProperty;
-
-/**
- * Configuration for a WSDL operation.
- *
- * @author David Withers
- */
-@ConfigurationBean(uri = WSDLActivity.URI + "/operation")
-public class WSDLOperationConfigurationBean {
-
- private URI wsdl;
- private String operationName;
-
- public URI getWsdl() {
- return wsdl;
- }
-
- @ConfigurationProperty(name = "wsdl", label = "WSDL URL", description = "The location of the WSDL definition for the web service")
- public void setWsdl(URI wsdl) {
- this.wsdl = wsdl;
- }
-
- public String getOperationName() {
- return operationName;
- }
-
- @ConfigurationProperty(name = "name", label = "Operation Name", description = "The name of the WSDL operation")
- public void setOperationName(String operationName) {
- this.operationName = operationName;
- }
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html b/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
deleted file mode 100644
index e38a14e..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/package.html
+++ /dev/null
@@ -1,3 +0,0 @@
-<body>
-Contains the activity classes required to interact with a WSDL based web-service.
-</body>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
deleted file mode 100644
index 69033bb..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SSLUtilities.java
+++ /dev/null
@@ -1,151 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.security.GeneralSecurityException;
-import java.security.SecureRandom;
-import java.security.cert.X509Certificate;
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLContext;
-import javax.net.ssl.SSLSocketFactory;
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.X509TrustManager;
-
-/**
- * This class provide various static methods that relax X509 certificate and
- * hostname verification while using the SSL over the HTTP protocol.
- * <p>
- * Call:
- * SSLUtilities.trustAllHostnames() to turn off the default hostname verification on HTTPS connection;
- * SSLUtilities.trustAllHttpsCertificates() to turn off the default certificate validation on HTTPS connection.
- * SSLUtilities.stopTrustingAllHttpsCertificates() to stop trusting all hosts' certificates and go back to default Java settings.
- *
- * @author Francis Labrie
- */
-public final class SSLUtilities {
-
- /**
- * Hostname verifier.
- */
- private static HostnameVerifier hostnameVerifier;
- /**
- * Thrust managers.
- */
- private static TrustManager[] trustManagers;
-
- /**
- * Set the default Hostname Verifier to an instance of a fake class that
- * trust all hostnames.
- */
- public static void trustAllHostnames() {
- // Create a trust manager that does not validate certificate chains
- if(hostnameVerifier == null) {
- hostnameVerifier = new FakeHostnameVerifier();
- } // if
- // Install the all-trusting host name verifier:
- HttpsURLConnection.setDefaultHostnameVerifier(hostnameVerifier);
- } // _trustAllHttpsCertificates
-
- /**
- * Set the default X509 Trust Manager to an instance of a fake class that
- * trust all certificates, even the self-signed ones.
- */
- public static void trustAllHttpsCertificates() {
- SSLContext context;
-
- // Create a trust manager that does not validate certificate chains
- if(trustManagers == null) {
- trustManagers = new TrustManager[] {new FakeX509TrustManager()};
- } // if
- // Install the all-trusting trust manager:
- try {
- context = SSLContext.getInstance("SSL");
- context.init(null, trustManagers, new SecureRandom());
- } catch(GeneralSecurityException gse) {
- throw new IllegalStateException(gse.getMessage());
- } // catch
- HttpsURLConnection.setDefaultSSLSocketFactory(context.
- getSocketFactory());
- } // _trustAllHttpsCertificates
-
- /**
- * This class implements a fake hostname verificator, trusting any host
- * name.
- *
- * @author Francis Labrie
- */
- public static class FakeHostnameVerifier implements HostnameVerifier {
-
- /**
- * Always return true, indicating that the host name is
- * an acceptable match with the server's authentication scheme.
- *
- * @param hostname the host name.
- * @param session the SSL session used on the connection to
- * host.
- * @return the true boolean value
- * indicating the host name is trusted.
- */
- public boolean verify(String hostname,
- javax.net.ssl.SSLSession session) {
- return(true);
- } // verify
- } // FakeHostnameVerifier
-
- /**
- * This class allow any X509 certificates to be used to authenticate the
- * remote side of a secure socket, including self-signed certificates.
- *
- * @author Francis Labrie
- */
- public static class FakeX509TrustManager implements X509TrustManager {
-
- /**
- * Empty array of certificate authority certificates.
- */
- private static final X509Certificate[] _AcceptedIssuers =
- new X509Certificate[] {};
-
- /**
- * Always trust for client SSL chain peer certificate
- * chain with any authType authentication types.
- *
- * @param chain the peer certificate chain.
- * @param authType the authentication type based on the client
- * certificate.
- */
- public void checkClientTrusted(X509Certificate[] chain,
- String authType) {
- } // checkClientTrusted
-
- /**
- * Always trust for server SSL chain peer certificate
- * chain with any authType exchange algorithm types.
- *
- * @param chain the peer certificate chain.
- * @param authType the key exchange algorithm used.
- */
- public void checkServerTrusted(X509Certificate[] chain,
- String authType) {
- } // checkServerTrusted
-
- /**
- * Return an empty array of certificate authority certificates which
- * are trusted for authenticating peers.
- *
- * @return a empty array of issuer certificates.
- */
- public X509Certificate[] getAcceptedIssuers() {
- return(_AcceptedIssuers);
- } // getAcceptedIssuers
- } // FakeX509TrustManager
-
- /**
- * Stop trusting all certificates and go back to the default settings.
- *
- * @author Alex Nenadic
- */
- public static void stopTrustingAllHttpsCertificates(){
- HttpsURLConnection.setDefaultSSLSocketFactory((SSLSocketFactory) SSLSocketFactory.getDefault());
- }
-} // SSLUtilities
-
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
deleted file mode 100644
index aa8084b..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/SecurityProfiles.java
+++ /dev/null
@@ -1,130 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.net.URI;
-
-import net.sf.taverna.t2.activities.wsdl.WSDLActivity;
-
-/**
- * Various security profiles for Web services.
- *
- * @author Alex Nenadic
- *
- */
-public class SecurityProfiles {
-
- public static URI SECURITY = URI.create(WSDLActivity.URI).resolve("wsdl/security");
-
- /**
- * Security profile for Web services that require
- * UsernameToken authentication with plaintext password.
- * Such services should typically be invoked over HTTPS.
- */
- public static final URI WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD = SECURITY.resolve("#WSSecurityUsernameTokenPlainTextPassword");
- /**
- * XML string for configuring Axis engine with wss4j handlers to handle setting security
- * headers on the SOAP message for profile WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD.
- */
- public static final String WSSECURITY_USERNAMETOKEN_PLAINTEXTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
- "<globalConfiguration>" +
- "<requestFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
- "<parameter name=\"action\" value=\"UsernameToken\"/>" +
- "<parameter name=\"passwordType\" value=\"PasswordText\"/>" +
- "</handler>"+
- "</requestFlow>" +
- "</globalConfiguration>" +
- "<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
- "</deployment>";
-
- /**
- * Security profile for Web services that require
- * UsernameToken authentication with digest password.
- * Such services would typically be invoked over HTTPS.
- */
- public static final URI WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD = SECURITY.resolve("#WSSecurityUsernameTokenDigestPassword");
- /**
- * XML string for configuring Axis engine with wss4j handlers to handle setting security
- * headers on the SOAP message for profile WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD.
- */
- public static final String WSSECURITY_USERNAMETOKEN_DIGESTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
- "<globalConfiguration>" +
- "<requestFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
- "<parameter name=\"action\" value=\"UsernameToken\"/>" +
- "<parameter name=\"passwordType\" value=\"PasswordDigest\"/>" +
- "</handler>"+
- "</requestFlow>" +
- "</globalConfiguration>" +
- "<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
- "</deployment>";
-
- /**
- * Security profile for Web services that require a timestamp SOAP header
- * to be sent in addition to UsernameToken authentication with plaintext password.
- * Such services should typically be invoked over HTTPS.
- */
- public static final URI WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTEXTPASSWORD = SECURITY.resolve("#WSSecurityTimestampUsernameTokenPlainTextPassword");
- /**
- * XML string for configuring Axis engine with wss4j handlers to handle setting security
- * headers on the SOAP message for profile WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD.
- */
- public static final String WSSECURITY_TIMESTAMP_USERNAMETOKEN_PLAINTETPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
- "<globalConfiguration>" +
- "<requestFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
- "<parameter name=\"action\" value=\"Timestamp UsernameToken\"/>" +
- "<parameter name=\"passwordType\" value=\"PasswordText\"/>" +
- "</handler>"+
- "</requestFlow>" +
- "<responseFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllReceiver\">" +
- "<parameter name=\"action\" value=\"Timestamp\"/>" +
- "</handler>"+
- "</responseFlow>" +
- "</globalConfiguration>" +
- "<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
- "</deployment>";
-
- /**
- * Security profile for Web services that require a timestamp SOAP header
- * to be sent in addition to UsernameToken authentication with digest password.
- * Such services would typically be invoked over HTTPS.
- */
- public static final URI WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD = SECURITY.resolve("#WSSecurityTimestampUsernameTokenDigestPassword");
- /**
- * XML string for configuring Axis engine with wss4j handlers to handle setting security
- * headers on the SOAP message for profile WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD.
- */
- public static final String WSSECURITY_TIMESTAMP_USERNAMETOKEN_DIGESTPASSWORD_CONFIG = "<deployment xmlns=\"http://xml.apache.org/axis/wsdd/\" xmlns:java=\"http://xml.apache.org/axis/wsdd/providers/java\">" +
- "<globalConfiguration>" +
- "<requestFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllSender\">" +
- "<parameter name=\"action\" value=\"Timestamp UsernameToken\"/>" +
- "<parameter name=\"passwordType\" value=\"PasswordDigest\"/>" +
- "</handler>"+
- "</requestFlow>" +
- "<responseFlow>" +
- "<handler type=\"java:org.apache.ws.axis.security.WSDoAllReceiver\">" +
- "<parameter name=\"action\" value=\"Timestamp\"/>" +
- "</handler>"+
- "</responseFlow>" +
- "</globalConfiguration>" +
- "<transport name=\"http\" pivot=\"java:org.apache.axis.transport.http.HTTPSender\"/>"+
- "</deployment>";
-
- /**
- * Security profile for Web services that require HTTP Basic Authentication.
- * There is no WS-Security involved.
- * Such services should typically be invoked over HTTPS.
- */
- public static final URI HTTP_BASIC_AUTHN = SECURITY.resolve("#HTTPBasicAuthNPlainTextPassword");
-
- /**
- * Security profile for Web services that require HTTP Digest Authentication.
- * There is no WS-Security involved.
- * Such services would typically be invoked over HTTPS.
- */
- public static final URI HTTP_DIGEST_AUTHN = SECURITY.resolve("#HTTPDigestAuthN");
-
-
-}
http://git-wip-us.apache.org/repos/asf/incubator-taverna-common-activities/blob/77704689/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java b/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
deleted file mode 100644
index 19ecb14..0000000
--- a/src/main/java/net/sf/taverna/t2/activities/wsdl/security/TavernaAxisCustomSSLSocketFactory.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package net.sf.taverna.t2.activities.wsdl.security;
-
-import java.io.IOException;
-import java.net.Socket;
-import java.util.Hashtable;
-
-import javax.net.ssl.SSLContext;
-
-import org.apache.axis.components.net.BooleanHolder;
-import org.apache.axis.components.net.JSSESocketFactory;
-
-public class TavernaAxisCustomSSLSocketFactory extends JSSESocketFactory {
-
-
- public TavernaAxisCustomSSLSocketFactory(Hashtable attributes) {
- super(attributes);
- }
-
- @Override
- public Socket create(String host, int port, StringBuffer otherHeaders,
- BooleanHolder useFullURL) throws Exception {
- // Make sure we always pick up the default socket factory from SSLContext, which is based on
- // Taverna's Keystore and Truststore and gets updated when they get updated (it may have
- // been updated in the menatime so just refresh it here just in case).
- initFactory();
- return super.create(host, port, otherHeaders, useFullURL);
- }
-
- @Override
- protected void initFactory() throws IOException {
- try{
- // Set it to the default one from the SSLContext which is set to use Taverna's Keystore and Truststore
- sslFactory = SSLContext.getDefault().getSocketFactory();
- }
- catch (Exception e) {
- throw new IOException("Could not get the Taverna's default SSLSocketFactory from SSLContext",e);
- }
- }
-
-}