serviceProxy
A service proxy can be deployed on front of a Web server, Web Service or a REST resource. It conceals the server and offers the same interface as the target server to its clients.
Can be used in
Syntax
<serviceProxy name="string" port="integer" method="[*,POST,PUT,GET,DELETE,TRACE,OPTIONS]" host="[string,*]" blockRequest="[true,false]" blockResponse="[true,false]" ip="[ip]"> <path />? <ssl />? <request> [interceptors]* </request> [interceptors]* <response> [interceptors]* </response> <localhost />? <target />? </serviceProxy>
Listing 1: serviceProxy Syntax
Sample
<serviceProxy port="80"> <response> <transform xslt="customer2person.xsl" /> </response> <target host="www.thomas-bayer.com" port="80" /> </serviceProxy>
Listing 2: serviceProxy Example
Attributes
| Name | Mandatory | Default | Description | Example |
|---|---|---|---|---|
| name | no | A name is created based on the pattern: [target host] [method] [path]:[target port] | Test Web Service | |
| port | no | 80 | Listen Port | 80 |
| host | no | * | Applies rule only if attribute is * or client host equals this attribute. | localhost |
| method | no | * | Applies rule only if attribute is * or request method equals this attribute. | false |
| blockResponse | no | false | false | |
| blockRequest | no | false | false | |
| ip | no | missing | If present, binds the port only on the specified IP. Useful for hosts with multiple IP addresses. | 127.0.0.1 |
Child Elements
| Name | Cardinality | Description |
|---|---|---|
| localhost | 0..1 | Defines the host address that is used when connecting to the server. |
| path | 0..1 | Limits client request by path components. |
| request | 0..* | Limits interceptors to requests only. |
| response | 0..* | Limits interceptors to response only. |
| ssl | 0..1 | Configures inbound (in <serviceProxy/>) or outbound (in <target/>) SSL. |
| target | 0..1 | Specifies target host and port. |
Interceptor Child Elements
| Name | Cardinality | Description |
|---|---|---|
| accessControl | 0..1 | Interceptor to restrict access to services and resources. |
| adminConsole | 0..1 | Initializes the Admin Console. |
| balancer | 0..1 | LoadBalancer Interceptor |
| basicAuthentication | 0..1 | HTTP Basic Authentication Interceptor |
| clusterNotification | 0..1 | Up/Down push interface interceptor for cluster managment |
| counter | 0..* | Interceptor that provides a test web site. |
| exchangeStore | 0..* | Interceptor that stores exchanges. |
| formValidation | 0..* | Interceptor that validates form parameter. |
| groovy | 0..* | Runs Groovy scripts. |
| interceptor | 0..* | References a interceptor defined in the monitor-beans.xml |
| log | 0..* | Logs request and response. |
| regExReplacer | 0..* | Interceptor that replaces parts of the content based on a regulare expression. |
| rest2Soap | 0..* | Interceptor that exposes a SOAP service as REST resource. |
| rewriter | 0..* | Interceptor to rewrite URLs. |
| statisticsCSV | 0..* | Interceptor that logs in a CSV file. |
| statisticsJDBC | 0..* | Interceptor that logs in a database. |
| switch | 0..* | Interceptor for content based routing. |
| throttle | 0..* | Interceptor that delays and limits requests. |
| transform | 0..* | Interceptor that applies XSLT transformations |
| validator | 0..* | Interceptor that validates against a WSDL and referenced Schemas |
| webServer | 0..1 | Web Server Interceptor |
| wsdlRewriter | 0..1 | Interceptor that rewrites URLs in endpoint and import definitions of a WSDL. |
| xmlProtection | 0..1 | Interceptor that protects against certain forms of XML attacks. |