Need a Java library for generating WSSE headers for API calls
$250-750 CAD
Ολοκληρώθηκε
Αναρτήθηκε περίπου 6 χρόνια πριν
$250-750 CAD
Πληρωμή κατά την παράδοση
Our API requires WSSE headers to communicate with the server. We presently have generators written in PHP, C# and JavaScript. All produce the same output. We now want a Java library that our customers could integrate into their projects.
What we want out of this project:
1- A code library that customers can integrate into their own projects
2- Unit tests to confirm the code is working as expected
3- Documentation explaining how the code works
The following information is needed to generate a WSSE header:
1- The name of the customer as it appears in the software;
2- A nonce, which is a random string generated by you. This string must be different with each request;
The current date & time in UTC-0. See [login to view URL] for more information;
3- Username – Your username;
4- API token – A unique token assigned to you by us.
The following PHP script demonstrates how to generate a WSSE header. This code can be easily tested using PhpFiddle ([login to view URL]).
=== PHP EXAMPLE ===
<?php
$orgName = "YOUR_ORGANZATION";
$username = "YOUR_USERNAME";
$token = "YOUR_TOKEN";
$key = md5($username);
$cryptAlgo = 'AES-256-CFB';
$iv = mb_substr(base64_decode($token), 0, 16, '8bit');
$secret = base64_encode($iv.openssl_encrypt($token, $cryptAlgo, $key, 0, $iv));
date_default_timezone_set('UTC');
$current_time = date('c');
$nonce = md5(rand(), true);
$base64_nonce = base64_encode($nonce);
$password_digest = base64_encode(sha1($nonce . $current_time . $secret, true));
$header = "UsernameToken Username=\"$username\",".
"PasswordDigest=\"$password_digest\",".
"Nonce=\"$base64_nonce\",".
"Created=\"$current_time\",".
"Organization=\"$orgName\"";
echo $header;
?>
=== PHP EXAMPLE : END ===
The following Javascript script demonstrates how to generate a WSSE header. This code can be easily tested using Postman ([login to view URL]).
=== JAVASCRIPT SAMPLE ===
var moment = require('moment');
var username = "YOUR_USERNAME",
orgName = "YOUR_ORGANZATION",
token = "YOUR_TOKEN",
key = [login to view URL](username).toString(),
iv = atob(token).substring(0, 16).toString([login to view URL]),
encrypted,
secret,
created,
nonce,
base64Nonce,
passwordDigest,
utf8iv = [login to view URL](iv),
utf8key = [login to view URL](key),
utf8token = [login to view URL](token);
encrypted = [login to view URL](utf8token, utf8key, {
iv: utf8iv,
mode: [login to view URL],
padding: [login to view URL]
});
secret = btoa(iv + encrypted);
created = moment().utc().format();
created = [login to view URL](0, [login to view URL] - 1) + '+00:00';
nonce = [login to view URL]() * 32767 + '0';
nonce = [login to view URL](nonce).toString();
var stringToSha1 = nonce + created + secret;
var sha1Temp = [login to view URL](stringToSha1, {
asBytes: true
});
base64Nonce = btoa(nonce);
passwordDigest = [login to view URL](sha1Temp);
header = `UsernameToken Username="${username}",PasswordDigest="${passwordDigest}", Nonce="${base64Nonce}", Created="${created}", Organization="${orgName}"`;
=== JAVASCRIPT SAMPLE : END ===
Hi,
I am expert java developer with 8 years of experience of in developing Java/J2EE application. i am very good in Web services development and consuming 3rd party web services. I will develop this utility library which will contains these things which you mentioned.
1- A code library that customers can integrate into their own projects
2- Unit tests to confirm the code is working as expected
3- Documentation explaining how the code works
Please review my profile and feel free to message me.
Thanks,
Sandeep
Hello Sir,
I have huge experience in java development and i worked on consuming SOAP web service in which i generated the WSSE headers. I reviewed your job description and it's look ok to me. I will develop the java library which will generate the WSSE headers as you specified. I have few question can discuss in chat. After that i am ready to start it.
Thanks,
Hi, My name is Xiong Jie Zhao, live in China.
I am a newbie in this freelancer, but I have a lot of experiences with Java EE and Java web development using spring framework.
I have some skills with API development.
Let's discuss more detail.
Regards.
I have 10+ years experience in Java.
I have experience with http so creating library for you will be easy.
If you provide current implementation in c# I can port it to Java this approach have advantage that I can reuse your tests scenarios.