Strategies for identifying endpoint information
For each endpoint configuration scenario, an Business Automation Workflow endpoint defines a list of strategies. The following table describes all strategies that are available.
The strategies are attempted in the order that is specified until one returns the required information. Each strategy uses a different approach to determine the transport protocol, host, and port that are used to generate URLs, for example, by extracting them from a particular header in the request. The Business Automation Workflow endpoint can also reference an Business Automation Workflow virtual host that contains fixed values for the transport protocol, host name, port number of the virtual host, and any URL prefix.
For all strategies in the default package
com.ibm.bpm.endpoint.impl.strategies
,
the package name can be omitted in the configuration.Strategy name | Description |
---|---|
BpmHeaderAbsoluteStrategy |
This strategy attempts to extract the protocol,
host, and port information from an Business Automation Workflow specific
HTTP request header: com.ibm.bpm.routing.HostAndURIPrefix or X-BPM-ROUTING-ABSOLUTE . |
BpmHeaderRelativeStrategy |
This strategy attempts to extract a relative
URL from an Business Automation Workflow specific
HTTP request header: com.ibm.bpm.routing.URIPrefix or X-BPM-ROUTING-RELATIVE .
Note that the code will use the value as is. |
CurrentJVMDefaultTransportStrategy |
This strategy will calculate a URL based on
hostname information of the current Application Server Java Virtual
Machine. The current setting of useHTTPSURLPrefixes is
evaluated to derive protocol and port information:
|
CurrentJVMInsecureStrategy |
This strategy returns a URL with insecure HTTP
protocol, the current Application Server JVM host name, and WC_defaulthost port. |
CurrentJVMSecureStrategy |
This strategy returns a URL with secure HTTPS
protocol, the current Application Server JVM host name, and WC_defaulthost_secure port. |
HttpProtocolHostStrategy |
This strategy attempts to extract the protocol, host, and port number information from the host header. |
RelativeUrlStrategy |
This strategy does not use host and port information. |
TeamworksWebappPrefixLegacyStrategy |
This strategy is for certain legacy paths such
as the /exposed REST API and the /task/clientSettings REST
API. The strategy searches for an IBM BPM endpoint that has the scenario attribute
that is set to the value COMMON_TEAMWORKS_WEBAPP_PREFIX ,
and then uses the associated Business Automation Workflow virtual
host. |
WCCMConfigStrategy |
This strategy uses static information from an Business Automation Workflow virtual
host. The virtualHost property of the Business Automation Workflow endpoint
for the strategy identifies which virtual host information is used. |
WebsphereProxyHeaderStrategy |
If you use a WebSphere
proxy, this strategy attempts to extract the protocol, host, and port
number information from the header that is added by the WebSphere
proxy. Note that this strategy actually mimics legacy behavior, for
example, of the exposed items REST API. The following headers will
be looked for:
Viaheader (if present): <$WSSC>://<$WSRH
| $WSRA>[:<port>] . |
XForwardedHeaderDefaultHttpsStrategy |
This strategy will read HTTP request header X-Forwarded-Host to
construct a URL using the secure HTTPS protocol. No port information
is expected, but it could be concatenated to the host name in X-Forwarded-Host .
If the header has multiple values, the first one will be used. |
XForwardedHeaderDefaultHttpStrategy |
This strategy will read HTTP request header X-Forwarded-Host to
construct a URL using the insecure HTTP protocol. No port information
is expected, but it could be concatenated to the hostname in X-Forwarded-Host .
If the header has multiple values, the first one will be used. |
XForwardedHeaderStrategy |
This strategy will read
HTTP request headers X-Forwarded-Host and X-Forwarded-Protocol to
construct a URL. No port information is expected, but it could be
concatenated to the hostname in X-Forwarded-Host .
If any of the headers has multiple values, the first one will be used. |