From a53a18d184054bf530b29afc596877f0123ba72b Mon Sep 17 00:00:00 2001 From: Brian Rosenberger Date: Mon, 24 Aug 2015 07:58:52 +0000 Subject: [PATCH] Various improvements git-svn-id: https://brutex.net/svn/xservices/trunk@177 e7e49efb-446e-492e-b9ec-fcafc1997a86 --- BruteXServices_User_Guide.html | 207 ----------------- .../security/DirectoryPermission.java | 1 + .../security/PermissionResolver.java | 29 ++- .../security/XmlServicePermission.java | 67 ++++++ .../brutex/xservices/ws/ArchiveService.java | 2 +- .../brutex/xservices/ws/StringService.java | 6 + .../net/brutex/xservices/ws/XmlService.java | 2 + .../xservices/ws/impl/ExecuteServiceImpl.java | 13 -- .../xservices/ws/impl/StringServiceImpl.java | 9 + .../xservices/ws/impl/XmlServiceImpl.java | 2 + .../net/brutex/xservices/ws/rs/FileInfo.java | 1 + .../brutex/xservices/ws/rs/FileInfoImpl.java | 19 +- .../brutex/xservices/ws/rs/FileListType.java | 16 ++ .../brutex/xservices/ws/rs/ResultType.java | 16 ++ test/ArchiveService-soapui-project.xml | 6 +- test/DateService-soapui-project.xml | 4 +- test/ExecuteService-soapui-project.xml | 6 +- test/FileRest-soapui-project.xml | 10 +- test/FileService-soapui-project.xml | 4 +- test/FileServiceMTOM-soapui-project.xml | 6 +- test/JobServices-soapui-project.xml | 139 +++--------- test/MailService-soapui-project.xml | 4 +- test/MiscService-soapui-project.xml | 4 +- test/StoreService-soapui-project.xml | 4 +- test/StringService-soapui-project.xml | 213 +++++++++++++++++- test/XmlServices-soapui-project.xml | 6 +- 26 files changed, 434 insertions(+), 362 deletions(-) delete mode 100644 BruteXServices_User_Guide.html create mode 100644 src/java/net/brutex/xservices/security/XmlServicePermission.java diff --git a/BruteXServices_User_Guide.html b/BruteXServices_User_Guide.html deleted file mode 100644 index d4ead48..0000000 --- a/BruteXServices_User_Guide.html +++ /dev/null @@ -1,207 +0,0 @@ -User Guide

User Guide

Brian Rosenberger

-

- The copyright holders make no representation about the - suitability of - this document for any purpose. It is provided - as is - without expressed or implied warranty. -

-
-

Apache Tomcat and Apache Ant are trademarks of the Apache - Software Foundation.

-

1997

Abstract

- -

In complex IT environments it is necessary to integrate - different information systems with each other, exchange data - between - tools and automate actions and function calls depending - on events - arising from user interaction. To meet the requirements - of - integration building usually means to implement APIs and to - create - tool-to-tool bridges. Web Services can help to clean up - bridges into - interfaces as well as to abstract functions from - their underlying - platform and implementation.

-

These are the major goals of the loosely coupled - integration - strategy which is in turn one essential idea of a - service-oriented - architecture (SOA).

-

provide a low level set of functions and web services. - These can - be orchestrated into services and used in business - processes which - make up the execution part of a SOA - environment.

-

is an add-on to XBridgeNG 2.0. It runs standalone or in - combination with XBridgeNG. Pure XBridgeNG has two - components:

-

-

  • -

    XML Schema for item based data types (e.g. tickets - from a bug - tracker system or a database record)

    -
  • -

    Set of Apache Ant tasks to function as a bridge - between the - XBridgeNG XML format at legacy 3rd party - software (e.g. HP Quality - Center, Serena TeamTrack, - ...)

    -
  • -

    The add Web Services (SOAP) wrapper around Apache Ant - tasks - (since XBridgeNG 2.0)

    -

-

-

The current focus is on file-based operations. do not - contain an - integration server or a process execution - engine.

-

List of Tables

2.1. runCommand input parameters
- - -

Chapter 1. Getting started

- - -

This chapter describes the installation.

-

Prerequisites

- -

tbd.

-

Sun Java SE 1.6.0

-

Apache Tomcat 6

-
-

Installation

- -

tbd.

-

In short: Deploy .WAR file to Apache Tomcat

-

Securing with Basic Authentication

- -

There is a quick guide explaining Basic Authentication - for - Tomcat here:

-

- http://oreilly.com/pub/a/java/archive/tomcat-tips.html?page=1 -

-
-

Limit access to

- -

Sometimes you'll only want to restrict access to to - only - specified host names or IP addresses. This way, only - clients at - those specified addresses can use the web services. - Tomcat provides - two configuration values for that: - RemoteHostValve and - RemoteAddrValve.

-

These Valves allow you to filter requests by host name or - by IP - address, and to allow or deny hosts that match. The - example below - restricts access to the ArchiveService from any - machine that is not - the local host.

-
<Context
-					path="/XService/ArchiveService" ...> <Valve
-					className="org.apache.catalina.valves.RemoteAddrValve"
-					allow="127.0.0.1" deny=""/> </Context>
-

If no allow pattern is given, then patterns that match - the deny - attribute patterns will be rejected, and all others - will be allowed. - Similarly, if no deny pattern is given, - patterns that match the - allow attribute will be allowed, and - all others will be denied. -

-

The <context> element must be placed into the - server.xml - file (into <engine><host>).

-
-
-
-

Chapter 2. Available Services

- - -

List of available web services and their operations.

-

ArchiveServices

- -

The ArchiveService bundles file packing operations. Its - WSDL is - located at - http://server:port/XServices/ArchiveService?wsdl

-
-
-

ExecuteServices

- -

The ExecuteService bundles local and remote command - execution - operations. Its WSDL is located at - http://server:port/XServices/ExecuteService?wsdl

-

runCommand

- -

Run an executable with arguments on the server providing - the - web - service. The command is run within the environment and - under the - user - privileges of the user who is running the Tomcat - Server.

-
- -

-

Table 2.1. runCommand input parameters

- -
parametertyperequireddescription
executableStringYesCommand to be run. The command may be - specified with full - path using forward slash - "/" as path separator. -
arglineStringNoAny command line arguments
-

-

-
-
-
-
-
- -

Chapter 3. XML Types

Table of Contents

AntProperty type
- - -

This chapter bundles the documentation for common xml types - used - by XServices web service.

-

AntProperty type

- -

The AntProperty type defines a list of key/value pairs.

-

- The defining Java class is - - net.brutex.xservices.types.AntProperty - - . -

- -
-<xs:complexType name="antProperty">
-   <xs:sequence>
-      <xs:element name="name" type="xs:string"/>
-      <xs:element name="value" type="xs:string"/>
-   </xs:sequence>
-</xs:complexType>
-			
- -
-<AntProperty>
-    <name>key2</name>
-    <value>value2</value>
-</AntProperty>
-			
-
-
-
\ No newline at end of file diff --git a/src/java/net/brutex/xservices/security/DirectoryPermission.java b/src/java/net/brutex/xservices/security/DirectoryPermission.java index 8138146..979cd00 100644 --- a/src/java/net/brutex/xservices/security/DirectoryPermission.java +++ b/src/java/net/brutex/xservices/security/DirectoryPermission.java @@ -30,6 +30,7 @@ public class DirectoryPermission implements Permission { private final String path; public DirectoryPermission(String antlikepath) { + logger.debug(String.format("Creating permission for path '%s'", antlikepath)); path = antlikepath; } diff --git a/src/java/net/brutex/xservices/security/PermissionResolver.java b/src/java/net/brutex/xservices/security/PermissionResolver.java index 04d2f7b..478d58e 100644 --- a/src/java/net/brutex/xservices/security/PermissionResolver.java +++ b/src/java/net/brutex/xservices/security/PermissionResolver.java @@ -16,8 +16,12 @@ package net.brutex.xservices.security; +import net.brutex.xservices.ws.XmlService; +import net.brutex.xservices.ws.rs.FileInfo; + import org.apache.log4j.Logger; import org.apache.shiro.authz.Permission; +import org.apache.shiro.authz.permission.InvalidPermissionStringException; /** * @author Brian Rosenberger, bru(at)brutex.de @@ -26,10 +30,31 @@ import org.apache.shiro.authz.Permission; public class PermissionResolver implements org.apache.shiro.authz.permission.PermissionResolver { final Logger logger = Logger.getLogger(PermissionResolver.class); + private final String DELIMITER = "||"; @Override public Permission resolvePermission(String permissionString) { - logger.debug(String.format("Creating new Permission '%s'", permissionString)); - return new DirectoryPermission(permissionString); + logger.debug(String.format("Trying to examine new Permission '%s'", permissionString)); + if(! permissionString.contains(DELIMITER)) { + logger.error(String.format("Permission '%s' is missing permission class.", permissionString)); + throw new InvalidPermissionStringException(String.format("Permission '%s' is missing permission class.", permissionString), permissionString); + } + int delimiterIndex = permissionString.indexOf(DELIMITER); + String value = permissionString.substring(0, delimiterIndex); + delimiterIndex = delimiterIndex + DELIMITER.length(); + switch (value) { + case XmlService.SERVICE_NAME: + logger.debug(String.format("Found '%s' as permission class.", value)); + return new XmlServicePermission(permissionString.substring( delimiterIndex )); + + case FileInfo.SERVICE_NAME: + logger.debug(String.format("Found '%s' as permission class.", value)); + return new DirectoryPermission(permissionString.substring( delimiterIndex )); + + + default: + logger.warn(String.format("Permission class '%s' is not defined.", value)); + throw new InvalidPermissionStringException(String.format("Permission class '%s' is not defined.", value), permissionString); + } } } diff --git a/src/java/net/brutex/xservices/security/XmlServicePermission.java b/src/java/net/brutex/xservices/security/XmlServicePermission.java new file mode 100644 index 0000000..56343b2 --- /dev/null +++ b/src/java/net/brutex/xservices/security/XmlServicePermission.java @@ -0,0 +1,67 @@ +/* + * Copyright 2013 Brian Rosenberger (Brutex Network) + * + * 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 net.brutex.xservices.security; + +import org.apache.log4j.Logger; +import org.apache.shiro.authz.Permission; +import org.apache.shiro.util.AntPathMatcher; + +/** + * @author Brian Rosenberger, bru(at)brutex.de + * + */ +public class XmlServicePermission implements Permission { + + private final Logger logger = Logger.getLogger(XmlServicePermission.class); + private final String permissionString; + + public XmlServicePermission(String permissionString) { + logger.debug(String.format("Creating permission for '%s'", permissionString)); + this.permissionString = permissionString; + } + + @Override + public boolean implies(Permission p) { + boolean result = false; + + /* is of same type */ + if(! (p instanceof XmlServicePermission)) { + logger.debug(String.format("Testing if permission of type '%s' implies permission of type '%s'. Result was '%s'" , this.getClass(), p.getClass(), result)); + return result; + } + + /* comparing to non null directory */ + if( ((XmlServicePermission)p).getPermissionString() == null) { + logger.debug(String.format("Testing if DirectoryPermission '%s' implies permission to 'null'. Result was '%s'" , permissionString, result)); + return result; + } + + /* directory pattern implies other */ + //TODO + /*if( (new AntPathMatcher()).matches(permissionString, ((XmlServicePermission)p).getPermissionString())) ) { + result = true; + } + logger.debug(String.format("Testing if DirectoryPermission '%s' implies permission to '%s'. Result was '%s'" , permissionString, ((XmlServicePermission) p).getPermissionString(), result)); + */ + return result; + } + + public String getPermissionString() { + return permissionString; + } + +} diff --git a/src/java/net/brutex/xservices/ws/ArchiveService.java b/src/java/net/brutex/xservices/ws/ArchiveService.java index 1249728..b49ddd5 100644 --- a/src/java/net/brutex/xservices/ws/ArchiveService.java +++ b/src/java/net/brutex/xservices/ws/ArchiveService.java @@ -1,5 +1,5 @@ /* - * Copyright 2010 Brian Rosenberger (Brutex Network) +g * Copyright 2010 Brian Rosenberger (Brutex Network) * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/src/java/net/brutex/xservices/ws/StringService.java b/src/java/net/brutex/xservices/ws/StringService.java index 3ef51c2..306dfd5 100644 --- a/src/java/net/brutex/xservices/ws/StringService.java +++ b/src/java/net/brutex/xservices/ws/StringService.java @@ -75,4 +75,10 @@ public abstract interface StringService @WebParam(name="delimiter") @XmlElement(required=true) String delimiter) throws XServicesFault; + @WebMethod(operationName="removeCRLF") + @WSDLDocumentation("Remove any line feed and/ or carriage return characters") + public abstract String removeCRLF( + @WebParam(name="string") @XmlElement(required=true) String paramString) + throws XServicesFault; + } \ No newline at end of file diff --git a/src/java/net/brutex/xservices/ws/XmlService.java b/src/java/net/brutex/xservices/ws/XmlService.java index d198cfc..cc67f2f 100644 --- a/src/java/net/brutex/xservices/ws/XmlService.java +++ b/src/java/net/brutex/xservices/ws/XmlService.java @@ -27,6 +27,7 @@ import net.brutex.xservices.types.StringSplitType; import net.brutex.xservices.types.ant.FileResource; import org.apache.cxf.annotations.WSDLDocumentation; +import org.apache.shiro.authz.annotation.RequiresPermissions; /** * @author Brian Rosenberger, bru(at)brutex.de @@ -41,6 +42,7 @@ public abstract interface XmlService public static final String PARAM_XPATH = "xpath"; public static final String PARAM_XML = "xmldata"; + @RequiresPermissions("insertNodes") @WebMethod(operationName="insertNodes") @WSDLDocumentation("Insert an XML fragment into an XML document given as string.") public abstract String insertNodes( diff --git a/src/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java b/src/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java index d5cc249..934499c 100644 --- a/src/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java +++ b/src/java/net/brutex/xservices/ws/impl/ExecuteServiceImpl.java @@ -17,15 +17,12 @@ package net.brutex.xservices.ws.impl; import java.io.File; -import java.util.UUID; - import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import net.brutex.xservices.types.HostConnection; import net.brutex.xservices.types.ReturnCode; import net.brutex.xservices.util.BrutexNamespaces; -import net.brutex.xservices.util.JobWrapper; import net.brutex.xservices.util.RunTask; import net.brutex.xservices.ws.ExecuteService; import net.brutex.xservices.ws.XServicesFault; @@ -37,16 +34,6 @@ import org.apache.tools.ant.taskdefs.optional.ssh.SSHExec; import org.apache.tools.ant.types.Commandline; import org.mozilla.javascript.Context; import org.mozilla.javascript.Scriptable; -import org.quartz.JobBuilder; -import org.quartz.JobDetail; -import org.quartz.Scheduler; -import org.quartz.SchedulerException; -import org.quartz.Trigger; -import static org.quartz.TriggerBuilder.*; -import static org.quartz.SimpleScheduleBuilder.*; -import org.quartz.TriggerUtils; -import org.quartz.impl.StdSchedulerFactory; -import org.quartz.impl.triggers.SimpleTriggerImpl; /** * diff --git a/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java b/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java index 4ccd1c5..c114720 100644 --- a/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java +++ b/src/java/net/brutex/xservices/ws/impl/StringServiceImpl.java @@ -20,12 +20,15 @@ import java.util.ArrayList; import java.util.StringTokenizer; import java.util.regex.Matcher; import java.util.regex.Pattern; + import javax.jws.WebService; + import net.brutex.xservices.types.StringMatchType; import net.brutex.xservices.types.StringReplaceType; import net.brutex.xservices.types.StringSplitType; import net.brutex.xservices.ws.StringService; import net.brutex.xservices.ws.XServicesFault; + import org.apache.commons.lang3.StringEscapeUtils; import org.apache.commons.lang3.text.translate.CharSequenceTranslator; import org.apache.commons.lang3.text.translate.NumericEntityEscaper; @@ -96,6 +99,12 @@ public class StringServiceImpl } return result; } + + @Override + public String removeCRLF(String paramString) throws XServicesFault { + String value = paramString.replaceAll("[\r\n]", ""); + return value; + } private int getFlags(String flags) { int allflags = 0; diff --git a/src/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java b/src/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java index ef761d6..6f3005f 100644 --- a/src/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java +++ b/src/java/net/brutex/xservices/ws/impl/XmlServiceImpl.java @@ -61,6 +61,7 @@ import org.apache.axiom.om.xpath.AXIOMXPath; import org.apache.log4j.Logger; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authz.UnauthorizedException; +import org.apache.shiro.authz.annotation.RequiresPermissions; import org.jaxen.JaxenException; import org.jaxen.SimpleNamespaceContext; @@ -194,6 +195,7 @@ public class XmlServiceImpl implements XmlService { } } + @RequiresPermissions("insertNodes") public String insertNodes(String source, String encoding, NamespaceListType nsList, String xpath, String xmlFragment) throws XServicesFault { encoding = validateEncoding(encoding); try { diff --git a/src/java/net/brutex/xservices/ws/rs/FileInfo.java b/src/java/net/brutex/xservices/ws/rs/FileInfo.java index 834dd1a..1f76a0b 100644 --- a/src/java/net/brutex/xservices/ws/rs/FileInfo.java +++ b/src/java/net/brutex/xservices/ws/rs/FileInfo.java @@ -42,6 +42,7 @@ import net.brutex.xservices.ws.XServicesFault; public abstract interface FileInfo { public final static String BASE_PATH = "/FileService/"; + public final static String SERVICE_NAME = "FileInfoService"; /** * Get the file/ directory listing. diff --git a/src/java/net/brutex/xservices/ws/rs/FileInfoImpl.java b/src/java/net/brutex/xservices/ws/rs/FileInfoImpl.java index eb60b80..9670c12 100644 --- a/src/java/net/brutex/xservices/ws/rs/FileInfoImpl.java +++ b/src/java/net/brutex/xservices/ws/rs/FileInfoImpl.java @@ -73,12 +73,14 @@ public class FileInfoImpl implements FileInfo { */ public Response getFiles(HttpHeaders h, UriInfo uriInfo, String dir, boolean withDir, boolean withFiles, int level, String search, int count, int page, boolean useCache) { - + if(dir==null) { + dir = "c:/"; + logger.warn("No directory specified. Default is 'c:/'."); + } isPermitted(dir); URI baseuri = URI.create(uriInfo.getBaseUri()+FileInfo.BASE_PATH+"getFile?file="); - if(dir==null) {dir = "c:/"; System.out.println("No directory specified.");} logger.info(String.format("Listing directory '%s'.", dir)); if (level <= 0) level = 1; @@ -109,9 +111,8 @@ public class FileInfoImpl implements FileInfo { logger.info(String.format("Returning items %s to %s from total of %s items in the list.", fromIndex, toIndex, list.size())); return Response.ok(sublist).build(); } catch (CacheException e) { - Response.serverError().build(); + return Response.serverError().build(); } - return null; } /** @@ -254,4 +255,14 @@ private boolean isPermitted(String dir) { } return true; } + +//http://stackoverflow.com/questions/3758606/how-to-convert-byte-size-into-human-readable-format-in-java +private static String humanReadableByteCount(long bytes, boolean si) { + int unit = si ? 1000 : 1024; + if (bytes < unit) return bytes + " B"; + int exp = (int) (Math.log(bytes) / Math.log(unit)); + String pre = (si ? "kMGTPE" : "KMGTPE").charAt(exp-1) + (si ? "" : "i"); + return String.format("%.1f %sB", bytes / Math.pow(unit, exp), pre); +} + } \ No newline at end of file diff --git a/src/java/net/brutex/xservices/ws/rs/FileListType.java b/src/java/net/brutex/xservices/ws/rs/FileListType.java index c2d6181..2eca8f8 100644 --- a/src/java/net/brutex/xservices/ws/rs/FileListType.java +++ b/src/java/net/brutex/xservices/ws/rs/FileListType.java @@ -1,3 +1,19 @@ +/* + * Copyright 2014 Brian Rosenberger (Brutex Network) + * + * 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 net.brutex.xservices.ws.rs; import javax.xml.bind.annotation.XmlElement; diff --git a/src/java/net/brutex/xservices/ws/rs/ResultType.java b/src/java/net/brutex/xservices/ws/rs/ResultType.java index 76c8d93..7464b8c 100644 --- a/src/java/net/brutex/xservices/ws/rs/ResultType.java +++ b/src/java/net/brutex/xservices/ws/rs/ResultType.java @@ -1,3 +1,19 @@ +/* + * Copyright 2014 Brian Rosenberger (Brutex Network) + * + * 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 net.brutex.xservices.ws.rs; import net.brutex.xservices.types.scm.ItemType; diff --git a/test/ArchiveService-soapui-project.xml b/test/ArchiveService-soapui-project.xml index a1d01a0..f86d5ee 100644 --- a/test/ArchiveService-soapui-project.xml +++ b/test/ArchiveService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/xservices/ArchiveService?WSDL +http://localhost:8080/xservices/ArchiveService?WSDL @@ -501,7 +501,7 @@ c:\temp -]]>UTF-8http://localhost:8080/xservices/ArchiveService +]]>No AuthorizationUTF-8http://localhost:8080/xservices/ArchiveService @@ -518,4 +518,4 @@ ? -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/DateService-soapui-project.xml b/test/DateService-soapui-project.xml index 42e78f8..1749ecb 100644 --- a/test/DateService-soapui-project.xml +++ b/test/DateService-soapui-project.xml @@ -1,5 +1,5 @@ - + @@ -879,4 +879,4 @@ seconds -]]>Global HTTP Settingsfalse300250truetrue-1180TIMEBurst6000010000100true500 \ No newline at end of file +]]>Global HTTP Settingsfalse300250truetrue-1180TIMEBurst6000010000100true500 \ No newline at end of file diff --git a/test/ExecuteService-soapui-project.xml b/test/ExecuteService-soapui-project.xml index 63dc394..ccbeeee 100644 --- a/test/ExecuteService-soapui-project.xml +++ b/test/ExecuteService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/ExecuteService?wsdl +http://localhost:8080/XServices/ExecuteService?wsdl @@ -388,7 +388,7 @@ 15000 -]]>Global HTTP SettingsUTF-8http://localhost:8080/XServices/ExecuteService +]]>BasicBasicGlobal HTTP SettingsUTF-8http://localhost:8080/XServices/ExecuteService @@ -496,4 +496,4 @@ with(blub) { ? -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/FileRest-soapui-project.xml b/test/FileRest-soapui-project.xml index 8b18aab..25648f2 100644 --- a/test/FileRest-soapui-project.xml +++ b/test/FileRest-soapui-project.xml @@ -1,2 +1,10 @@ - \ No newline at end of file +http://localhost:8080/XServices/fileinfodirectoryQUERYincludeDirectoriesQUERYxs:boolean01depthQUERYxs:intincludeFilesQUERYxs:booleansearchQUERYitemsPerPageQUERYxs:intusecacheQUERYxs:booleantext/html;charset=utf-8401html401datatext/xml200fileInfoTypes401data401data<xml-fragment/>http://localhost:8080/XServices/fileinfohttp://localhost/XServices/fileinfo/FileService/getFilesadminBasicBasicGlobal HTTP Settings + + + + + + + +directoryincludeDirectoriesdepthincludeFilessearchitemsPerPageusecachefileQUERYtext/html;charset=utf-8401htmltext/plain200data<xml-fragment/>http://localhost:8080/XServices/fileinfohttp://localhost/XServices/fileinfo/FileService/getFileadminBasicBasicGlobal HTTP Settingsfile \ No newline at end of file diff --git a/test/FileService-soapui-project.xml b/test/FileService-soapui-project.xml index 92ec686..aeef4e2 100644 --- a/test/FileService-soapui-project.xml +++ b/test/FileService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/FileService?wsdl +http://localhost:8080/XServices/FileService?wsdl /* * Copyright 2010 Brian Rosenberger (Brutex Network) * @@ -934,4 +934,4 @@ -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/FileServiceMTOM-soapui-project.xml b/test/FileServiceMTOM-soapui-project.xml index 67eb7ce..322c354 100644 --- a/test/FileServiceMTOM-soapui-project.xml +++ b/test/FileServiceMTOM-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/FileServiceMTOM?wsdl +http://localhost:8080/XServices/FileServiceMTOM?wsdl @@ -441,7 +441,7 @@ -]]>http://schemas.xmlsoap.org/wsdl/http://localhost:8080/XServices/FileServiceMTOMhttp://localhost:8080/XServices/FileService<xml-fragment/>UTF-8http://localhost:8080/XServices/FileServiceMTOM +]]>http://schemas.xmlsoap.org/wsdl/http://localhost:8080/XServices/FileServicehttp://localhost:8080/XServices/FileServiceMTOM<xml-fragment/>UTF-8http://localhost:8080/XServices/FileServiceMTOM @@ -642,4 +642,4 @@ -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/JobServices-soapui-project.xml b/test/JobServices-soapui-project.xml index 1b72106..46bf183 100644 --- a/test/JobServices-soapui-project.xml +++ b/test/JobServices-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/JobServices?wsdl +http://localhost:8080/XServices/JobService?wsdl @@ -8,8 +8,6 @@ - - @@ -38,34 +36,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -84,6 +54,7 @@ + @@ -93,7 +64,6 @@ - @@ -111,9 +81,6 @@ - - - @@ -123,9 +90,6 @@ - - - @@ -142,12 +106,6 @@ - - Get scheduler statistics - - - - Delete a scheduled job. @@ -175,30 +133,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - @@ -211,6 +145,18 @@ + + + + + + + + + + + + @@ -226,65 +172,50 @@ - + -]]>http://schemas.xmlsoap.org/wsdl/http://localhost:8080/XServices/JobServices<xml-fragment/>UTF-8http://localhost:8080/XServices/JobServices +]]>http://schemas.xmlsoap.org/wsdl/http://localhost:8080/XServices/JobServicehttp://localhost:8080/XServices/JobServices<xml-fragment/>UTF-8http://localhost:8080/XServices/JobService -]]><xml-fragment/>UTF-8http://localhost:8080/XServices/JobServices +]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/JobService 6b3da1f0-ff1c-4422-b2ce-17a6d1c2a990 -]]><xml-fragment/>UTF-8http://localhost:8080/XServices/JobServices +]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/JobService - + 2012-05-14T07:52:00+02:00 - - -]]><xml-fragment/>UTF-8http://localhost:8080/XServices/JobServices +]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/JobService + + + + + Hello World 2 + + Some description + 2014-08-21T09:53:00+02:00 + + + + + +]]>No Authorization<xml-fragment/>UTF-8http://localhost:8080/XServices/JobService 6b3da1f0-ff1c-4422-b2ce-17a6d1c2a990 -]]><xml-fragment/>UTF-8http://localhost:8080/XServices/JobServices - - - - -]]> \ No newline at end of file +]]>No Authorization \ No newline at end of file diff --git a/test/MailService-soapui-project.xml b/test/MailService-soapui-project.xml index b4b4d96..1ba73e0 100644 --- a/test/MailService-soapui-project.xml +++ b/test/MailService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/MailService?wsdl +http://localhost:8080/XServices/MailService?wsdl @@ -315,4 +315,4 @@ -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/MiscService-soapui-project.xml b/test/MiscService-soapui-project.xml index d3f3797..9b53761 100644 --- a/test/MiscService-soapui-project.xml +++ b/test/MiscService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/MiscService?WSDL +http://localhost:8080/XServices/MiscService?WSDL @@ -277,4 +277,4 @@ -]]>Global HTTP Settings \ No newline at end of file +]]>Global HTTP Settings \ No newline at end of file diff --git a/test/StoreService-soapui-project.xml b/test/StoreService-soapui-project.xml index 065c6b6..373b5ca 100644 --- a/test/StoreService-soapui-project.xml +++ b/test/StoreService-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/StorageServices?wsdl +http://localhost:8080/XServices/StorageServices?wsdl @@ -243,4 +243,4 @@ ? -]]> \ No newline at end of file +]]> \ No newline at end of file diff --git a/test/StringService-soapui-project.xml b/test/StringService-soapui-project.xml index 4f1c482..765ec9a 100644 --- a/test/StringService-soapui-project.xml +++ b/test/StringService-soapui-project.xml @@ -1,9 +1,80 @@ -http://localhost:8080/XServices/StringService?wsdl +http://localhost:8080/XServices/StringService?wsdl + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -23,6 +94,7 @@ + @@ -32,19 +104,66 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + Remove any line feed and/ or carriage return characters + + + + + + Match text based data + + + + + + Split a string into tokens + + + + + + Match text based data + + + + Store text based data @@ -54,6 +173,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -76,10 +243,40 @@ - Hallo Welt - W.* - Brian - ig - + -]]> \ No newline at end of file +]]>No AuthorizationUTF-8http://localhost:8080/XServices/StringService + + + + + +]]><xml-fragment/>UTF-8http://localhost:8080/XServices/StringService + + + + Hier + is + some + text. + + + +]]>No AuthorizationUTF-8http://localhost:8080/XServices/StringService + + + + ? + + +]]><xml-fragment/>UTF-8http://localhost:8080/XServices/StringService + + + + Hi er + is + some + text + + +]]>No Authorization \ No newline at end of file diff --git a/test/XmlServices-soapui-project.xml b/test/XmlServices-soapui-project.xml index 02a1db7..9d7441f 100644 --- a/test/XmlServices-soapui-project.xml +++ b/test/XmlServices-soapui-project.xml @@ -1,5 +1,5 @@ -http://localhost:8080/XServices/XmlService?wsdl +http://localhost:8080/XServices/XmlService?wsdl @@ -435,7 +435,7 @@ xmlns:ws="http://ws.xservices.brutex.net"> */bx:note/ns:heading/text() -]]>Global HTTP SettingsUTF-8http://localhost:8080/XServices/XmlService +]]>BasicBasicGlobal HTTP SettingsUTF-8http://localhost:8080/XServices/XmlService @@ -523,4 +523,4 @@ xmlns:ws="http://ws.xservices.brutex.net"> Meyer45]]]]>> -]]>adminGlobal HTTP Settings \ No newline at end of file +]]>adminGlobal HTTP Settings \ No newline at end of file