OTPPostHTTPValve

Valve for delivering one-time passwords by HTTP POST.

Supports configurable SSL protocols and ciphers.

Properties

Name Description Default value Mandatory Supports property expansion
generated_otp_name Item property containing the generated otp. generated_otp No No
recipient_param_name Property containing the recipient mobile number. mobile No Yes
userid_param_name Property containing the username. User-Name No Yes
url_list List of URLs to send to. Configured as JSON string array. Yes No
success_code HTTP response code for successful POST. 200 No No
connection_timeout Timeout in seconds. 5 No No
body The body of the POST. No No
auth_username Username for auth. No No
auth_password Password for auth. No No
headers Headers to add to the request. Configured as JSON array. Syntax: "key": "header_name", "value": "header_value". No No
params URL parameters to add to the request. Configured as JSON array. Syntax: "key": "parameter_name", "value": "parameter_value". No No
ssl_protocols SSL protocols to support. Configured as JSON string array. No No
ssl_ciphers SSL ciphers to support. Configured as JSON string array. No No
wash_recipient_number If the mobile number should be washed (i.e. removal of whitespaces, - and other non-number characters). true No No
remove_leading_plus If the leading + character should be removed from the mobile number. false No No
recipient_prefix If the mobile number should be prepended with a country prefix. (example: +46) No No

Example Configuration

{
        "name": "OTPPostHTTPValve",
        "config": {
              "generated_otp_name" : "generated_otp",
              "recipient_param_name" : "{{item.othermobile}}",
              "userid_param_name" : "{{request.username}}",
              "url_list":["https://www.messageservice.dd","https://www.messageservice.ff"],
              "success_code":"202",
              "connection_timeout" : "10",
              "auth_username" : "myaccountid",
              "auth_password" : "myaccuntpassword",
              "ssl_protocols" : [
                    "TLSv1.1",
                    "TLSv1.2"
              ],
              "ssl_ciphers" : [
                   "TLS_RSA_WITH_AES_256_CBC_SHA256",
                   "TLS_ECDH_RSA_WITH_RC4_128_SHA"
              ],
              "wash_recipient_number" : "true",
              "recipient_prefix" : "+46",
              "headers":[
                   {"key":"Cache-Control",
                    "value":"no-cache"},
                   {"key":"Connection",
                    "value":"keep-alive"}
              ]
        }
}

In the example above the value for attribute othermobile has been picked up earlier in the flow.

The value for userid_param_name has been picked up from the request. Most common values are {{request.User-Name}} for RADIUS and {{request.username}} for HTTP.

Information about values for url_list, body and success_code should be retrieved from the supplier of the message service.

More information about cipher suites:
https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html

Requirements

Item set must have at least one entry.