org.jbpm.process.workitem.rest
Class RESTWorkItemHandler
java.lang.Object
org.jbpm.process.workitem.AbstractLogOrThrowWorkItemHandler
org.jbpm.process.workitem.rest.RESTWorkItemHandler
- All Implemented Interfaces:
- org.kie.api.runtime.process.WorkItemHandler
public class RESTWorkItemHandler
- extends AbstractLogOrThrowWorkItemHandler
WorkItemHandler that is capable of interacting with REST service. Supports both types of services
secured (that requires authentication) and open (no authentication). Authentication methods currently supported:
Authentication information can be given on handler initialization and can be overridden via work item parameters.
All other configuration options must be given via work item parameters map:
- Url - resource location to be invoked - mandatory
- Method - HTTP method that will be executed - defaults to GET
- ContentType - data type in case of sending data - mandatory for POST,PUT
- Content - actual data to be sent - mandatory for POST,PUT
- ConnectTimeout - connection time out - default to 60 seconds
- ReadTimeout - read time out - default to 60 seconds
- Username - user name for authentication - overrides one given on handler initialization)
- Password - password for authentication - overrides one given on handler initialization)
- AuthUrl - url that is handling authentication (usually j_security_check url)
- HandleResponseErrors - optional parameter that instructs handler to throw errors in case
of non successful response codes (other than 2XX)
Method Summary |
void |
abortWorkItem(org.kie.api.runtime.process.WorkItem workItem,
org.kie.api.runtime.process.WorkItemManager manager)
|
protected void |
close(org.apache.http.client.HttpClient httpClient,
Object httpMethod)
|
protected Object |
configureRequest(String method,
String urlStr,
Map<String,Object> params)
|
protected org.apache.http.HttpResponse |
doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
org.apache.http.client.methods.HttpRequestBase httpMethod,
Map<String,Object> params)
|
protected org.apache.http.HttpResponse |
doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
Object method,
Map<String,Object> params)
|
protected org.apache.http.HttpResponse |
doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
org.apache.http.client.methods.RequestBuilder requestBuilder,
Map<String,Object> params)
This method does the actual request, including the setup for authorization. |
void |
executeWorkItem(org.kie.api.runtime.process.WorkItem workItem,
org.kie.api.runtime.process.WorkItemManager manager)
|
String |
getAuthUrl()
|
protected org.apache.http.client.HttpClient |
getHttpClient(Integer readTimeout,
Integer connectTimeout)
|
protected Integer |
getParamAsInt(Object param)
|
protected void |
postProcessResult(String result,
Map<String,Object> results)
|
protected void |
setBody(org.apache.http.client.methods.HttpRequestBase theMethod,
Map<String,Object> params)
|
protected void |
setBody(org.apache.http.client.methods.RequestBuilder builder,
Map<String,Object> params)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
HTTP_CLIENT_API_43
protected static boolean HTTP_CLIENT_API_43
RESTWorkItemHandler
public RESTWorkItemHandler()
- Used when no authentication is required
RESTWorkItemHandler
public RESTWorkItemHandler(String username,
String password)
- Dedicated constructor when BASIC authentication method shall be used
- Parameters:
username
- - user name to be used for authenticationpassword
- - password to be used for authentication
RESTWorkItemHandler
public RESTWorkItemHandler(String username,
String password,
String authUrl)
- Dedicated constructor when FORM BASED authentication method shall be used
- Parameters:
username
- - user name to be used for authenticationpassword
- - password to be used for authenticationauthUrl
-
getAuthUrl
public String getAuthUrl()
executeWorkItem
public void executeWorkItem(org.kie.api.runtime.process.WorkItem workItem,
org.kie.api.runtime.process.WorkItemManager manager)
getParamAsInt
protected Integer getParamAsInt(Object param)
setBody
protected void setBody(org.apache.http.client.methods.RequestBuilder builder,
Map<String,Object> params)
setBody
protected void setBody(org.apache.http.client.methods.HttpRequestBase theMethod,
Map<String,Object> params)
postProcessResult
protected void postProcessResult(String result,
Map<String,Object> results)
doRequestWithAuthorization
protected org.apache.http.HttpResponse doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
Object method,
Map<String,Object> params)
doRequestWithAuthorization
protected org.apache.http.HttpResponse doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
org.apache.http.client.methods.RequestBuilder requestBuilder,
Map<String,Object> params)
- This method does the actual request, including the setup for authorization.
It is not responsible for cleaning up after the last request that it does.
It is responsible for cleaning up after all previous request, such as for form-based authentication, that happen.
- Parameters:
httpclient
- The HttpClient
instancerequestBuilder
- The RequestBuilder
instanceparams
- The parameters that may be needed for authentication
- Returns:
- A
HttpResponse
instance from which we can extract the content
doRequestWithAuthorization
protected org.apache.http.HttpResponse doRequestWithAuthorization(org.apache.http.client.HttpClient httpclient,
org.apache.http.client.methods.HttpRequestBase httpMethod,
Map<String,Object> params)
abortWorkItem
public void abortWorkItem(org.kie.api.runtime.process.WorkItem workItem,
org.kie.api.runtime.process.WorkItemManager manager)
getHttpClient
protected org.apache.http.client.HttpClient getHttpClient(Integer readTimeout,
Integer connectTimeout)
close
protected void close(org.apache.http.client.HttpClient httpClient,
Object httpMethod)
throws IOException
- Throws:
IOException
configureRequest
protected Object configureRequest(String method,
String urlStr,
Map<String,Object> params)
Copyright © 2001-2015 JBoss by Red Hat. All Rights Reserved.