User Registration API
Call this function to add an active user.
Below is the URL to access the API functions:
PUT /CentagateWS/webresources/user/registerUserActivate/{admin_username}
Parameters
No | Parameter | Occurence | Descriptions |
---|---|---|---|
1 | firstName | Required | The User’s First Name |
2 | LastName | Required | The User’s Last Name |
3 | Username | Required | The User’s Username |
4 | Userapp | Required | The user’s application ID |
5 | userUniqueId | Required | The user’s unique ID |
6 | userClientId | Required | The user’s client ID |
7 | userAdditionalData1 | Optional | The user’s additional data 1 |
8 | userAdditionalData2 | Optional | The user’s additional data 2 |
9 | userAdditionalData3 | Optional | The user’s additional data 3 |
10 | userAdditionalData4 | Optional | The user’s additional data 4 |
11 | userAdditionalData5 | Optional | The user’s additional data 5 |
12 | roles | Required | The user’s roles. Company Admin = 2 , User= 3 |
13 | userGroup | Required | The user’s group name |
14 | userEmail | Required | The user’s email |
15 | cenToken | Required | The hmac value calculated using SHA256 with secretCode as key and plain text from admin username + authToken |
Sample Code
As in below there are some examples of source code of access the API functions:
Java
public static void main(String[] args) {
ClientConfig config = new DefaultClientConfig ();
Client client = Client.create ( config );
WebResource service = client.resource ("https://<domain_name>/CentagateWS/webresources");
Gson gson = new Gson();
String authToken = "{authToken}"
String adminUsername = "{adminUsername}";
String secretCode "{secretCode}";
String cenToken = convertHmacSha256(secretCode, adminUsername + authToken);
HashMap<String, String> map = new HashMap<String, String>();
map.put("firstName", "firstName");
map.put("lastName", "lastName");
map.put("username", "username");
map.put("userApp", "userApp");
map.put("userUniqueId", "userUniqueId");
map.put("userClientId", "userClientId");
map.put("userAdditionalData1", "userAdditionalData1");
map.put("userAdditionalData2", "userAdditionalData2");
map.put("userAdditionalData3", "userAdditionalData3");
map.put("userAdditionalData4", "userAdditionalData4");
map.put("userAdditionalData5", "userAdditionalData5");
map.put("userEmail", "userEmail");
map.put("roles", "roles");
map.put("userGroup", "userGroup");
map.put("cenToken", cenToken);
ClientResponse response = service.path("user").path("registerUserActivate").path(adminUsername).accept(MediaType.APPLICATION_JSON).put(ClientResponse.class, gson.toJson(map));
String retJson = response.getEntity(String.class);
HashMap<String, Object> returnData = (HashMap<String, Object>) gson.fromJson(retJson, HashMap.class);
String code = returnData.get("code").toString();
String message = returnData.get("message").toString();
String object = returnData.get("object").toString();
}
public static String convertHmacSha256(String secretKey, String params) throws NoSuchAlgorithmException,
InvalidKeyException,IllegalStateException, SignatureException, NoSuchProviderException, Exception
{
try
{
final SecretKeySpec secret_key = new SecretKeySpec ( StringUtils.getBytesUtf8 ( secretKey ) , "HmacSHA256" );
final Mac mac = Mac.getInstance ( "HmacSHA256" );
mac.init ( secret_key );
final byte[] bytes = mac.doFinal ( StringUtils.getBytesUtf8 ( params ) );
return Hex.encodeHexString ( bytes );
}
catch ( NoSuchAlgorithmException e )
{
throw new NoSuchAlgorithmException ( e );
}
catch ( InvalidKeyException e )
{
throw new InvalidKeyException ( e );
}
catch ( IllegalStateException e )
{
throw new IllegalStateException ( e );
}
catch ( Exception e )
{
throw new Exception ( e );
}
}
Node Js
const https = require('https')
var crypto = require('crypto');
var firstName = "<firstName>";
var lastName = "<lastName>";
var username = "<username>";
var userApp = "<userApp>";
var userUniqueId = "<userUniqueId>";
var userClientId = "<userClientId>";
var userAdditionalData1 = "<userAdditionalData1>";
var userAdditionalData2 = "<userAdditionalData2>";
var userAdditionalData3 = "<userAdditionalData3>";
var userAdditionalData4 = "<userAdditionalData4>";
var userAdditionalData5 = "<userAdditionalData5>";
var userEmail = "<userEmail>";
var roles = "<roles>";
var userGroup = "<userGroup>";
var adminUsername = "<adminUsername>";
var authToken = "<authToken>";
var secretCode = "<secretCode>";
var cenTokenText = adminUsername + authToken;
var hash, cenToken;
/* generate cenToken value*/
cenToken = crypto.createHmac(sha256, secretCode);
cenToken.write(cenTokenText);
cenToken.end();
hash = cenToken.read().toString('hex');
const data = JSON.stringify({
firstName: firstName,
lastName: lastName,
username: username,
userApp: userApp,
userUniqueId: userUniqueId,
userClientId: userClientId,
userAdditionalData1: userAdditionalData1,
userAdditionalData2: userAdditionalData2,
userAdditionalData3: userAdditionalData3,
userAdditionalData4: userAdditionalData4,
userAdditionalData5: userAdditionalData5,
userEmail: userEmail,
roles: roles,
userGroup: userGroup,
cenToken: hash
})
const options = {
hostname: "<domain_name>",
port: 443,
path:'/CentagateWS/webresources/user/registerUserActivate/'+adminUsername,
method: 'PUT',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
}
}
const req = https.request(options, res =>{
console.log(`HTTP Status Code: ${res.statusCode}`)
var body = '';
res.on('data', function(d){
body += d;
var parsed = JSON.parse(body);
if (parsed.code == 0){
console.log('Authentication Succeed');
console.log('Response:');
console.log(body);
}
else {
console.log('Authentication Fail, ' +'Message:' + parsed.message);
console.log('Code:' + parsed.code);
}
})
})
req.on('ERROR', error => {
console.error(error)
})
req.write(data)
req.end()
PHP
<?php
$adminUsername = "<adminUsername>";
$url = 'https://<domain_name>/CentagateWS/webresources/user/registerUserActivate/'.$adminUsername;
$ch = curl_init($url);
$secretCode = "<secretCode>";
$authToken = "<authToken>";
$firstName = "<firstName>";
$lastName = "<lastName>";
$username = "<username>";
$userApp = "<userApp>";
$userUniqueId = "<userUniqueId>";
$userClientId = "<userClientId>";
$userAdditionalData1 = "<userAdditionalData1>";
$userAdditionalData2 = "<userAdditionalData2>";
$userAdditionalData3 = "<userAdditionalData3>";
$userAdditionalData4 = "<userAdditionalData4>";
$userAdditionalData5 = "<userAdditionalData5>";
$userEmail = "<userEmail>";
$roles = "<roles>";
$userGroup = "<userGroup>";
$cenToken_text = $adminUsername.$authToken;
$cenToken = hash_hmac('sha256', $cenToken_text, $secretCode); // calculate cenToken value
$jsonData = array (
'firstName'=> $firstName,
'lastName'=> $lastName,
'username'=> $username,
'userApp'=> $userApp,
'userUniqueId'=> $userUniqueId,
'userClientId'=> $userClientId,
'userAdditionalData1'=> $userAdditionalData1,
'userAdditionalData2'=> $userAdditionalData2,
'userAdditionalData3'=> $userAdditionalData3,
'userAdditionalData4'=> $userAdditionalData4,
'userAdditionalData5'=> $userAdditionalData5,
'userEmail'=> $userEmail,
'roles'=> $roles,
'userGroup'=> $userGroup,
'cenToken' => $cenToken
);
$jsonDataEncoded = json_encode($jsonData);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PUT');
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
$obj = json_decode($result);
if ($obj->{'code'} != 0){
print "Authentication fail";
print "Message: ".$obj->{'message'};
echo " <br>";
print "Code: ".$obj->{'code'};
}
else {
print "Authentication succeed";
echo " <br>";
print "Message: ".$obj->{'message'};
echo " <br>";
print "Code: ".$obj->{'code'};
echo " <br>";
print "Result:" ;
echo " <br>";
print $result;
}
curl_close($ch);
?>
Error Code
Return Code | Details |
---|---|
0 | Success |
10002 | Invalid Input |
10003 | DB protection error |
10004 | DB error |
20002 | Company not found |
21001 | Group not found |
22001 | Duplicate user email |
22011 | User self register failed |
22013 | Users limit reached |
22025 | Duplicate username |
27001 | Invalid license file |