For setting up a custom authentication service for API's (on service package) the following is needed:
| Rule type | Description |
|---|---|
| Authentication service rule (type custom) | Umbrella for the authentication |
| Timeout activity | Activity that optionally contains logic that will be run on timeout |
| Authentication Activity | Activity with purpose of authenticating the requestor. |
The purpose of the activity is to do the actual authentication. Successfull authentication is indicated by a couple of parameters:
The following can be used in a java step (where myStepPage is the operator page):
tools.putParamValue("pyOperPage", myStepPage);
tools.putParamValue("pyUserIdentifier", myStepPage.getString("pyUserIdentifier"));
Likely a token of some sort is expected in the http headers send by client/user to authenticate. In the authentication context the http headers can be read via following example:
ClipboardPage pxRequestorPage = tools.findPage("pxRequestor");
javax.servlet.http.HttpServletRequest request = (javax.servlet.http.HttpServletRequest) pxRequestorPage.getObject("pxHTTPServletRequest");
authToken = request.getHeader("Authorization");
In the example the Authorization header is fetch into a local variable authToken.
To summarize the flow of the activity: