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

{
"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": []
}
]
}