You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
190 lines
7.1 KiB
190 lines
7.1 KiB
{
|
|
"info": {
|
|
"_postman_id": "79b99bf3-8422-48a2-b5ad-02ea06dce472",
|
|
"name": "Postman Utility Lib",
|
|
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
|
|
"_exporter_id": "28770298"
|
|
},
|
|
"item": [
|
|
{
|
|
"name": "Lib install",
|
|
"event": [
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"pm.test(\"Status code should be 200\", function () {",
|
|
" pm.response.to.have.status(200)",
|
|
" pm.globals.set(\"pmlib_code\", responseBody)",
|
|
"});"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
""
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"protocolProfileBehavior": {
|
|
"disableBodyPruning": true
|
|
},
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"body": {
|
|
"mode": "raw",
|
|
"raw": ""
|
|
},
|
|
"url": {
|
|
"raw": "https://joolfe.github.io/postman-util-lib/dist/bundle.js",
|
|
"protocol": "https",
|
|
"host": [
|
|
"joolfe",
|
|
"github",
|
|
"io"
|
|
],
|
|
"path": [
|
|
"postman-util-lib",
|
|
"dist",
|
|
"bundle.js"
|
|
]
|
|
},
|
|
"description": "Load the postman-util-lib from github.io and load into postman global variable."
|
|
},
|
|
"response": []
|
|
},
|
|
{
|
|
"name": "Lib use example",
|
|
"event": [
|
|
{
|
|
"listen": "prerequest",
|
|
"script": {
|
|
"exec": [
|
|
"",
|
|
"// Loading the library",
|
|
"eval(pm.globals.get('pmlib_code'))",
|
|
"",
|
|
"",
|
|
"// Generate a PKCE challenge",
|
|
"const challenge = pmlib.pkceChallenge()",
|
|
"console.log('PKCE challenge: ' +JSON.stringify(challenge))",
|
|
"",
|
|
"",
|
|
"// Obtain the SHA-256 from a string",
|
|
"const sha256String = pmlib.sha256('example string')",
|
|
"console.log('\"client_secret_jwt\": ' +sha256String)",
|
|
"",
|
|
"",
|
|
"// Create a client assertion 'client_secret_jwt'",
|
|
"const clientSecretJwt = pmlib.clientAssertSecret('mySecret', 'myIss', 'myAUD')",
|
|
"console.log('\"client_secret_jwt\": ' +clientSecretJwt)",
|
|
"",
|
|
"",
|
|
"// JWK used by jwt signature",
|
|
" const jwk = {",
|
|
" \"e\": \"AQAB\",",
|
|
" \"n\": \"7-ql2BxRpd5PEKs9h6oouoLJSK1PZgElYnHtC1EvtBcJ5rsPhRLQ95SFuzMVuPzrRymTx2DAiYrFryNNGvYgGMjwjZZ6gL0FebxGooY9P_voShuzNOg22n9aayqM7U61pmfSsu_0Gm8ZFu0hZa4VT7xn_LFIZnB_BTwG9EZtIwyGdHitMcakvdgOjTTmLqzdSjqie_7IHJrLb9JFPLrYsUDGU3v7U4joKwyZWCbaBRLrhmsAxbKhfGBA-zdSAMVtKTuu4HuQ8gnEmYpdL2wZjLH1EpxZpl_dbojzKqqGqDW7inz1SE1y4A86DE4kIzVWMqltxeMpamGOyBtSKYp5Xw\",",
|
|
" \"d\": \"7yt3myJYDse5AEAFfdoW8h_xcx862NBpqWMzUSXlLV4OQ9LVXO7uHPIWAxGhJSIVloKPTKJaLoOGINtLQYZ9ZtfiXvPVOcO10q7rp5e1NbT10_MbSrH4BQgSZmUrymK92Z8Ev9dP_I4mb-GDeq75ldyXuaQuLdkV92zo7dnLcLRciQsFsBirOOICp0RjGdCgoAZMfM5WIvRJ7XYsXP2qGMEOdyeTo3MGWZIYJGSOLvh1OMsWrrqQmPPuh0qnWj5IccJsWQv8oSNPVah9K0b0Zgv5-anr6ZkR33_vr6nK7SiZNIAH48mOrGVKGEyAZGsgoyrNhSVOg39l5jFwkamHUQ\",",
|
|
" \"p\": \"_kSDQ1oCxkTAUjSfsiZ-lj_ineDSTbcfYEP1WyhnNwfUbVP33QYAGg8f36xL65JKZAo4GaZvsVytaqiOiU5u1FFh0Tm7sRU6qG-YjYM0pynsptpQgh4p9mQ0WoURmXoryzIrqq8TRQA871gql14HVavydUrd1Gz10QJkn5cqhJk\",",
|
|
" \"q\": \"8Y0at7FhEtALdBH-L-m2Y4hI9iecA-Y6FXspsiPN4ILXmdO2V1W7pJ9uj-pBt2CWdZbBptd4w3rHiECHOXDYBsn-AjRDwcPRWnhiL_TM4TSlWtyuTAcRg7b_tSWY8ptkIH9nDHYi5_VtdkIWg74Z3oFxWZYS9SKbURnzJ8AxMLc\",",
|
|
" \"dp\": \"papmC9_9psjstaLr2dsS5zpAoLT20QPbQZGFrxsoBMbpNUJcYHmkX1YzYjyUSqxKI9w0qSGz7E-B_dhM5lFgDJ3pqbSAAeTfDxeGwc0W5UN_mUbs5ZpZpNus8L16thDPr9jEcrUXTQHWsesz9OOiy8L4ekuJNPq5PrDcds67OSE\",",
|
|
" \"dq\": \"SZXf5sf9t5pzcsesdPIw4v94oqyMZc-0MCkWGbO4m0Wg4rbRXKe8gzkimGsX3AJrs6Tal7YajwqPUJ2_1CrhVKgiXo-HeLbrxzDXUJ6174F3QkfqPTUGC-cq3Qd4IahfB1tojC5NEfb9gsI9U6MNBHDQlCcY3V7OjBVostpk4d8\",",
|
|
" \"qi\": \"M76jNmuSeQHB5niL0mhtOazj1gQ_gI69yqoCDKgG9lbb1-C1uQ_bpozc9gTwvG0OZ_iqcJ_vNm_vj3d4-2_g8Njm8KTdzILLSw8v4aV-EGijyHPJtJii91SyZY39ZDT-SaWIXAL55aIF5ZfsBhmpwcXK9iCLjy1z2sIjzo023SU\",",
|
|
" \"kty\": \"RSA\",",
|
|
" \"kid\": \"259337db-7412-45da-ad86-b63c97796588\",",
|
|
" \"use\": \"sig\"",
|
|
" }",
|
|
"// Create a signed jwt (JWS)",
|
|
"const jws = pmlib.jwtSign(jwk, { aud: 'myAUD', iss: 'myIss', claim: 'my CustomClaim' })",
|
|
"console.log('Signed JWT: ' +jws)",
|
|
"",
|
|
"",
|
|
"// Create a client assertion 'private_key_jwt'",
|
|
"const privateKeyJwt = pmlib.clientAssertPrivateKey(jwk,'myIss', 'myAUD')",
|
|
"console.log('\"private_key_jwt\": ' +privateKeyJwt)",
|
|
"",
|
|
"// Use 'jsrsasign' library",
|
|
"const base64String = pmlib.rs.stob64u('My amazing string')",
|
|
"console.log('Url Base64 string: ' + base64String)",
|
|
"",
|
|
"",
|
|
"// RSAOAEP signature example",
|
|
"const pubkey = '-----BEGIN PUBLIC KEY-----\\n' +",
|
|
"'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAstXEkU/agbNkQgh6a9DV\\n' +",
|
|
"'C/WXGmNy8g+hdTOBhYUk5PfZCwTNt5SCYBLjIPhs2ZRrNuCN3PhwHRQPQOTsS6Nl\\n' +",
|
|
"'Bzw+SjPVFBhPcbMHbJWnC87Q5ID/uAuwJjcUQXUTVspwIgfRmHvuuT7w7AYnCNvz\\n' +",
|
|
"'B5TuPj2vVH8rij9BXkAHambaeGG7L10MPeUiVU6M0F/QKCJhEWAYGEt4NffSXETx\\n' +",
|
|
"'zHSl8nyXxVJfnjxVhnZyZVXTIpLwvRy04hnkAoFexh7npRtnQdsLuIHtaJsm7gFY\\n' +",
|
|
"'mxhr3Nxbh9p1pC7fHpJ+jMcxAAhA07WqYf6lOsxXHfPav1FEMX214YTsKTw68xqo\\n' +",
|
|
"'DwIDAQAB\\n' +",
|
|
"'-----END PUBLIC KEY-----\\n'",
|
|
"const fileContent = 'My file content comes here...'",
|
|
"var keyObj = pmlib.rs.KEYUTIL.getKey(pubkey)",
|
|
"const encHex = pmlib.rs.KJUR.crypto.Cipher.encrypt(fileContent, keyObj, 'RSAOAEP')",
|
|
"console.log(encHex)",
|
|
"",
|
|
"",
|
|
"",
|
|
""
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
},
|
|
{
|
|
"listen": "test",
|
|
"script": {
|
|
"exec": [
|
|
"// Verify the returned JWT ",
|
|
"const pubkey = '-----BEGIN PUBLIC KEY-----\\n' +",
|
|
"'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAstXEkU/agbNkQgh6a9DV\\n' +",
|
|
"'C/WXGmNy8g+hdTOBhYUk5PfZCwTNt5SCYBLjIPhs2ZRrNuCN3PhwHRQPQOTsS6Nl\\n' +",
|
|
"'Bzw+SjPVFBhPcbMHbJWnC87Q5ID/uAuwJjcUQXUTVspwIgfRmHvuuT7w7AYnCNvz\\n' +",
|
|
"'B5TuPj2vVH8rij9BXkAHambaeGG7L10MPeUiVU6M0F/QKCJhEWAYGEt4NffSXETx\\n' +",
|
|
"'zHSl8nyXxVJfnjxVhnZyZVXTIpLwvRy04hnkAoFexh7npRtnQdsLuIHtaJsm7gFY\\n' +",
|
|
"'mxhr3Nxbh9p1pC7fHpJ+jMcxAAhA07WqYf6lOsxXHfPav1FEMX214YTsKTw68xqo\\n' +",
|
|
"'DwIDAQAB\\n' +",
|
|
"'-----END PUBLIC KEY-----\\n'",
|
|
"const body = JSON.parse(responseBody)",
|
|
"const result = pmlib.jwtVerify(body.jwt, pubkey)",
|
|
"console.log('Descoded JWT: ' + JSON.stringify(result))"
|
|
],
|
|
"type": "text/javascript"
|
|
}
|
|
}
|
|
],
|
|
"protocolProfileBehavior": {
|
|
"disableBodyPruning": true
|
|
},
|
|
"request": {
|
|
"method": "GET",
|
|
"header": [],
|
|
"body": {
|
|
"mode": "urlencoded",
|
|
"urlencoded": []
|
|
},
|
|
"url": {
|
|
"raw": "https://joolfe.github.io/postman-util-lib/dist/fakeresponse.json",
|
|
"protocol": "https",
|
|
"host": [
|
|
"joolfe",
|
|
"github",
|
|
"io"
|
|
],
|
|
"path": [
|
|
"postman-util-lib",
|
|
"dist",
|
|
"fakeresponse.json"
|
|
]
|
|
},
|
|
"description": "Some usefull example about how to use the library."
|
|
},
|
|
"response": []
|
|
}
|
|
]
|
|
}
|