Mass of random updates

This commit is contained in:
Justin Donnelly
2021-02-14 20:59:28 -05:00
parent f9ce38fa37
commit e417f0508d
27 changed files with 1154 additions and 0 deletions

19
azure-qseow/client.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDCjCCAfKgAwIBAgIQALHkhdJnD4HIsMPlvt0kwzANBgkqhkiG9w0BAQsFADAT
MREwDwYDVQQDDAhxc2Vvdy1DQTAeFw0yMTAyMDcyMDI3MjlaFw0zMTAyMTQyMDI3
MjlaMBUxEzARBgNVBAMMClFsaWtDbGllbnQwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCPu0JXHGR2uPFQSxlAW1Fh0L1QOmZVYeyG0cI6V/2qxWUmJ25Y
VH1JZJtARYGJ6FPkRAIBiMEW0I8t3NDat7b2DmgzPR40x/K1rzS+m8/OpqafZImL
8tBOEvKcx/brRl3QA9ZPDTOtdnab+JV1ni4BMPMwv/Q3ZBfd26UGqlcYo6hlvpaH
hHamh4Iy6s21YjSws8Z2suCDLwJzRGL7OmkdFn7Mte1kGdKqfrJzYGpTFOnlWQLp
QQfVvTl/HjvWimgtQuAUDSog9fp/XQ3ReufJw6IyIzrsEMcFrUK+KQonVwMS1I0k
eoWbttk141RSr95BtSm8sQjcK9o2PEcc9mUzAgMBAAGjWDBWMB0GA1UdDgQWBBSZ
5ddde7n8OeFxMFdqDE2UmHYF0DAfBgNVHSMEGDAWgBRB2cs88xddN9xiHaa37MGe
MUxX0TAUBggrBgEFBQcNAwQIBAZDbGllbnQwDQYJKoZIhvcNAQELBQADggEBAF4D
hIUNQiyVlI9Z0Ateo+SS0gtf8ZJV4P3ueqcpjy2z6mk57hMQWq5cAf9b4E9pc6+a
ksFk9k8R/BM6zI6+AKATc2fciAErPIZeccvt8+iOAfNcHL64aeb1on76HyFGeuAq
NUePouRj8yh0OWd7MXR8gj9ZxcVqxRzO35IvMGZMlfCzZxdljozyd+twEdgFinFS
d/DN1/miJ4BMcur2QhqoIlyv3SDqLg4OfmGSo804kemGrO4RCQOGaaEltJ7RApYb
JD8gAU2uxO/z9+e8pAX43KcsoNCMlA8e7pw9u3h9PvoeoJwTBbn3eHdnGm47PRMi
ycbV7sqh/ypN6vxZSHc=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAj7tCVxxkdrjxUEsZQFtRYdC9UDpmVWHshtHCOlf9qsVlJidu
WFR9SWSbQEWBiehT5EQCAYjBFtCPLdzQ2re29g5oMz0eNMfyta80vpvPzqamn2SJ
i/LQThLynMf260Zd0APWTw0zrXZ2m/iVdZ4uATDzML/0N2QX3dulBqpXGKOoZb6W
h4R2poeCMurNtWI0sLPGdrLggy8Cc0Ri+zppHRZ+zLXtZBnSqn6yc2BqUxTp5VkC
6UEH1b05fx471opoLULgFA0qIPX6f10N0XrnycOiMiM67BDHBa1CvikKJ1cDEtSN
JHqFm7bZNeNUUq/eQbUpvLEI3CvaNjxHHPZlMwIDAQABAoIBAD21TvkpZnSWWHx5
kaDQ0/Lj9LOCLzdPMIZ9fh8gcfckgpXL7hMcSyH8gK8qaEA2L/ZbwGS6OvQ5nI87
M6wDnhir/M6q2dIdWjXowANpz+FQKU9bkbY1DHvIpMLtEzTV5CcPzq3n5B0ANFIo
erqhq+y1AGQYtZgmcBy/VW20KmqYB3YiupHfB72SasMWl1G9BJ98dW7oQwIq4PZx
hAY3oWyC/KJRdOzIpJyTBWgCxYRWc43LU1sV/cqA+jlqGgBYfHRzJ8qjFOAk63XA
99Xh0ClmtSFztcLJZrV2xzIoVxKRyxExyGuSiJs4KnMlZT8FGhT1+RINZiLkOt1s
4Va3WdECgYEA9JcM4g4JguemJQ7MBklkW532B1hg5cr7X7aGMZi/ob5iuOSOm7dc
oRoGBXsOVFh5Cotowu3OQfwm2uQczhnbVjKTeMbJ93Y0s4PjToPAFX8gEdLzykEz
MI/3f9Gf1DvALwCYmeY7aHr+hk8LoCoQy4bGpDiwRlZT3XmArLC7k0kCgYEAlm+7
qUcyiGqHNuVrnFs9DQLT1DbTKItBxfjjQVrNwkhcsQhQvde94akmQQSVZlD4efK1
tbhYTDyt9HXvnD5ip7O9Z1cQA9zz0CSM+c6staOROdhbw+mpLUHFshoKfvZq3AOh
+S5ez46/kbIVLXs0L1gKlvKkw8tAaT9HM4GKeJsCgYBQU2ccukVvY0pSM0jX67R0
ziylfuXbsczaQyRRF3wfz1m2pQEcrJxUICrIFADBvIiL6PrPwa+SRhAwpOe83AsH
hPafnJFpnr1yEydMesJTjPtoPyJnUwBPu4gpxxs5ZSIZjZWQPWdXScVbMIx93jLD
1JBaEG/7uZAzVRroG+aOWQKBgA1o9F+ImzaR2G/KT6dmcrDAOcXHBVet4jUVlJx0
zbat4KVfSmNB4glFnMVa9T5jpWKpgg0q26QgHJmYEb3pyb2NRir6FdFiVtGNEIwM
IlUmuYFgif2SzKPeIxNXQuxCZxApuryNp6H05ZrFNyIQw3wc6wS9qHZTnfBD1cL/
nypVAoGAOOCpu/AY0vKE3NSu4Mm7YzW1T2NQWKmWTw0gEQ4eXhzOkqb/ZrYoIRvH
JzuMaFfbyhChC4MASn9I3DQy+HPDHGLHhxc35xGTgRsdUfzs/31xSQ4kExZiUE8/
moPe+sVCeRX8DwLqh6BgSDaa/9pz7SfvrEZUpMcflIvAM9g2dIQ=
-----END RSA PRIVATE KEY-----

59
azure-qseow/jwt.js Normal file
View File

@@ -0,0 +1,59 @@
const fs = require('fs');
const jwt = require('jsonwebtoken');
const { http, https } = require('follow-redirects');
// Your Sense Enterprise installation hostname:
const senseHost = 'qseow.jprdonnelly.com';
// Your configured virtual proxy prefix for JWT authentication:
const proxyPrefix = 'jwt';
// The Sense Enterprise-configured user directory for the user you want to identify
// as:
const userDirectory = 'INTERNAL';
// The user to use when creating the session:
const userId = 'sa_api';
// The Sense Enterprise-configured JWT structure. Change the attributes to match
// your configuration:
const token = {
directory: userDirectory,
user: userId,
};
// Path to the private key used for JWT signing:
const privateKeyPath = './fort_private.key';
const key = fs.readFileSync(path.resolve(__dirname, privateKeyPath));
// Sign the token using the RS256 algorithm:
const signedToken = jwt.sign(token, key, { algorithm: 'RS256' });
const options = {
hostname: 'central.browntown.local',
port: 4243,
path: '/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`,
'Authorization' : 'Bearer ${signedToken}'}
},
// key: fs.readFileSync("client_key.pem"),
// cert: fs.readFileSync("client.pem"),
// ca: fs.readFileSync("root.pem"),
// rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
con
sole.log("Got error: " + e.message);
});

19
azure-qseow/root.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDFzCCAf+gAwIBAgIQAMcHUrjO7gPVIDsf+EbVWzANBgkqhkiG9w0BAQsFADAT
MREwDwYDVQQDDAhxc2Vvdy1DQTAeFw0yMTAyMDcxNzA1MDRaFw0zMTAyMTQxNzA1
MDRaMBMxETAPBgNVBAMMCHFzZW93LUNBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAh7BhqD9YSOgPHUb6JyZ8z2yTbIZX+i1//uOxwid9FquirByWf90V
o2TcbfOh1JNaM+TzvhByLJSowTrRQyPHKr/GnMfOb2PpVPY19/yFDdVjEVTorx8O
ipI7eAMgJGdgzMtjW+npCNigqDDKpzxdorc4n8wPkK7Auum5CjEyiRkuOrwRs09i
3GXzrFvFn3MPx1XEbf80ShJbR2nv8V0gQ4lB7ngJRFOROdi3RwTHiqoXyhkVYwpX
N/7QMCRJWEiR/GmvizzRzzeEo59RnQ96PNqU2n0ppqThSujNjBB9ow7xV/vYrrIZ
R3jpoysuazs+nxK180IFEaiK/JERm4bhWwIDAQABo2cwZTAPBgNVHRMBAf8EBTAD
AQH/MB0GA1UdDgQWBBRB2cs88xddN9xiHaa37MGeMUxX0TAfBgNVHSMEGDAWgBRB
2cs88xddN9xiHaa37MGeMUxX0TASBggrBgEFBQcNAwQGBARSb290MA0GCSqGSIb3
DQEBCwUAA4IBAQByS7f9Iuw3oxchtxoMN7nk4e0gR8tFx97J88GPx5xT8+Q2KfEr
y0zUiXaVh3rShR7boe+JHoatqQqbPDNtqaVNeKKT/rE7GKR3IKbfSDVCuDbsKoU4
hUmhTibmNjPIuRrzY6MmKitjEXdo/MLXOVCnG83LqHkgOs40gTyDtf436A0r/9ep
bJ7+M0ZrR4jhUPtCea74MgnE5tZKdZcIrHf2GLKKeccZLm+xcyH+cu/VWNxzYjxo
Jkosd/YLUArTXkEalnBsNyNK48YCaWid6UPTRvK41GNC7DFDpaP2Gft4hOU2DMzF
3UraQ096bQQbgoGHs7Z+qrb+y6MRahxwucX5
-----END CERTIFICATE-----

31
azure-qseow/server.pem Normal file
View File

@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFaDCCBFCgAwIBAgIQAMp2GECVXzu751Deuh2+BTANBgkqhkiG9w0BAQsFADAT
MREwDwYDVQQDDAhxc2Vvdy1DQTAeFw0yMTAyMDcyMDI3MzFaFw0zMTAyMTQyMDI3
MzFaMCAxHjAcBgNVBAMMFXFzZW93LmpwcmRvbm5lbGx5LmNvbTCCASIwDQYJKoZI
hvcNAQEBBQADggEPADCCAQoCggEBAKCBD6F7bPKAb+Jt254Ro/SiKLfhdFqlHpCH
UZUlALPAKqd+EIdVSp/ECR4XP+i12gXUmn1qEy4qo8+uhZak2Z3DiSBQ9+HZMbz9
wb2/z8rGYSrpdf0hioXbkTM0gyFYNb3HidMM8vj5U9Z0a1H50B3cC59lSqD/aClo
jsDUiEDpoTY/ArAhiZi29qYTIMA4GkMFXtcVfrdRKTbwZGi/ms3xnJF4tONZJtho
mLdjRSSYRGAW/DoXPGLTxgA+kklcR9bxn/MDDkZQ6U2mRCNJTYCM0LJusTKh8otN
jMrd9JMcxBgmMCalu7hrimMWg653Zm2c5B9Krz0+NlCflaJsRR0CAwEAAaOCAqkw
ggKlMCAGA1UdEQQZMBeCFXFzZW93LmpwcmRvbm5lbGx5LmNvbTAdBgNVHQ4EFgQU
Jjail6yUnZ1wBHz1QvrUba9ma4swHwYDVR0jBBgwFoAUQdnLPPMXXTfcYh2mt+zB
njFMV9EwFQYIKwYBBQUHDQMECQQHU2VydmljZTCCARIGCCsGAQUFBw0BBIIBBASC
AQBPxAZewfSS4ufGUZT1WCdJl3jNSGFjStPH+zvdqTyujAD/ikKPmEjcRcJ4BX9l
5lynQ1s0MYVmhKMQjC9Tdjpw8bS4vJffgZ3RVsD/1dsXY9LEL7f8wFip5TlEvxub
pcSvRwoXBf6lWwQWAu2c6hpSqDF+pAPGXtE/J9MftF0M/4AaEWAAEWZWKe1Vobnq
VLwGsKN7zFv5tYBEaYXl2aDGDDlaGgzbK6zZxs8Cn0eEIXaHGdl60b45aSrUVJKH
7LnDL6r9vjZ4EefqNPdIEVrvrvopUSpnxmqe6dvBJ0iQtxXPl2kJTN+j9wJbiZyc
WVmw3AUFpCml6KaDIB9wQIENMIIBEgYIKwYBBQUHDQIEggEEBIIBAANu8nkFzqsy
/Q87UNUmnuB3nqoRI6xCrn3j8soMVyurDexVi9Uu2gIlc94JD2YY6+uyy15wnftC
UzRlMz0c1xKePuIMXuSQcSwVPSYF5bDziMMIdTyCSotBuzeDisjHBerHbNd1qmQH
Xdp51/lCQq0sGpLlOyMphF5V3z0Z8hdTsKAMmZwQ3ACbRT1oWWrfojUlndkwueXZ
BkpvosHS8xLRzaIztwGgA1vPi1Y9kSZWcj9UeyJ5xsYiyE3rC7DHvAr9k5y1vVCR
1vyJXpmzz+OerIZZhI+cEXVgRC32/1j94GEtC8VrYYeNwpP+6RxnVm+CoTFf5e4O
kjWNL/9/l0UwDQYJKoZIhvcNAQELBQADggEBABUidvs/LvYX8oBK0aWHuy5UsVo8
L0oMNKA7RLlBC5Yu2vjKFXOLYMKpN00YqQD9npC2hbhH2BVXmxWeIfxTNpG88gTR
g/9ddM+xi7UElnld4MRLiO4DGQ3Zf9OGwXJyJC2xyAd4bXgL+Z/hu0ObyBi3nzDi
U1RNSRpxhG6LwesvcmdRJxXnol6QpZwIW51IaW1uCfL9Q+1b6I0PweQ+KamjGQUF
SSo89wySi6H1Ggsz0dMbppqGFLg6Neveh5idFdko+f1Qh+gL8iFXzak37DeO6Joi
8CUJaSLwPFod2S7ikHqGk/RWoiU1yrkD3B01xd66YOtrf11/seaHfYOoKy0=
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAoIEPoXts8oBv4m3bnhGj9KIot+F0WqUekIdRlSUAs8Aqp34Q
h1VKn8QJHhc/6LXaBdSafWoTLiqjz66FlqTZncOJIFD34dkxvP3Bvb/PysZhKul1
/SGKhduRMzSDIVg1vceJ0wzy+PlT1nRrUfnQHdwLn2VKoP9oKWiOwNSIQOmhNj8C
sCGJmLb2phMgwDgaQwVe1xV+t1EpNvBkaL+azfGckXi041km2GiYt2NFJJhEYBb8
Ohc8YtPGAD6SSVxH1vGf8wMORlDpTaZEI0lNgIzQsm6xMqHyi02Myt30kxzEGCYw
JqW7uGuKYxaDrndmbZzkH0qvPT42UJ+VomxFHQIDAQABAoIBAQCWQTwIyCrtuh8D
siRujcUXNtc3jPAIC5vZYVSWctV9cOB9fB6tEsORXUvLx6gkillYK/eUgMED7xb7
TT3yENFIR80PW70yyMkvS78bi31TLvO34GZ8WfH77di4PuijRpjI2QvFb9HmEkLR
+JqfW2XhDiYzSffbUD6KxT8eddg4KwMhprUDOUzmYHaYoBhUqry89a/eyUjH9iLF
2/nfHj2lZli8MIUU84waZSJrEevhZkllseMwd9SpWamniUypT67ro9pWxHnOvVXk
7ibEpzRYJSRvifrBOvhkPwqlgbVReyAbsb8vDU6vj8Iv+NlsS4WqW8s2yenBF+hc
kbpZzWphAoGBAMriQt9W+AvsJ1/EIuW0ljkfgY5MSxFYnHS3svSCD+1wPqOybcak
2HRfyZ6ocKLgWsx0g0kUl3zrjWJNXfavNtfXDWudHjeRadIsuvqaUs2yFZFUwjpn
StjUbox6OXMtzi6QaYQI0xiPtt6iwpVF+vyQ9VNxpXhIK+8gPwclNPJ3AoGBAMqG
aoj8XpmMdZCRqYaAFhtSxcFvadLxjdaHdPwFsmUDjajpr6C+Yh2ZkCKusRxtfXtX
hJMOr+U/mingqfqPg03nT7M9XRvKzebRDfRvTR6A0KgQIspmknICv7HADPoFmfO8
muDsEO+daaf690JoMsQ7yOPA0XFC+d7SIiv3dXYLAoGAPcjFwKoFg+v42asrTXS/
QsobdDA7tB6eFtVShC+PlilWihduYs4UtOvuxIhbNN7KB/V7faftsjcxqTwSX2tg
cj6lcZ45c4avCThiAKs6iDWxZ76+H3cRThLzT4hxMmhCn9+OoozlbFdnw0khpL/Y
/U1PyIeVcpnX90yEpTJpe2UCgYAtRNhhYE/g8JWCyBxllRHb76eGclnsLdQvhL2w
a7GRhLbQb9OzEXsq9J1UM0oheZPX0xsuJ9VHX+0cuTwlZpjJ/A9DmE7MnItjsYz1
+z74t4BsYJb2OPE5DMY+fBgqdsAPzDOuXPX4KW5pft5v+IyIcniX+AyYzYi+tqeu
vjSCOwKBgBaJi8tpP3Xm0uPOdsiWY5uEDHg0xGDGzILhzCsrfZbaVfWEEaW8IbU2
BQN4BpwmgVbNxKb4E1bIjFQT4K99TaM2NDzjW5azdf48kJjrwiAZSUaP0EXZuwd0
6EG+eZM0sV1S4D2C48Q/DZxu+PukOKZk4bSHWDPfKdbPkqni+KEQ
-----END RSA PRIVATE KEY-----

32
azure-qseow/win-4242.js Normal file
View File

@@ -0,0 +1,32 @@
// const https = require('https');
const { http, https } = require('follow-redirects');
const fs = require('fs');
const options = {
hostname: 'central.browntown.local',
port: 4242,
path: '/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`
},
key: fs.readFileSync("client_key.pem"),
cert: fs.readFileSync("client.pem"),
ca: fs.readFileSync("root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});

28
azure-qseow/win-443.js Normal file
View File

@@ -0,0 +1,28 @@
// var https = require('https');
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
hostname: '20.36.130.9',
port: 4243,
path: '/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : 'UserDirectory=Internal; UserId=sa_repository'
},
key: fs.readFileSync("./client_key.pem"),
cert: fs.readFileSync("./client.pem"),
ca: fs.readFileSync("./root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});

33
azure-qseow/win-main.js Normal file
View File

@@ -0,0 +1,33 @@
// const https = require('https');
const { http, https } = require('follow-redirects');
const fs = require('fs');
const options = {
hostname: 'qseow.jprdonnelly.com',
port: 443,
path: '/main/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
// password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : 'UserDirectory=INTERNAL; UserId=sa_api'
// 'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`
},
key: fs.readFileSync("client_key.pem"),
cert: fs.readFileSync("client.pem"),
ca: fs.readFileSync("root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});

11
qseow-dev.code-workspace Normal file
View File

@@ -0,0 +1,11 @@
{
"folders": [
{
"path": "."
},
{
"path": "../sense-conductor"
}
],
"settings": {}
}

19
vault-testing/client.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDDDCCAfSgAwIBAgIQAIB5hhFvreUNHfHljwkEwTANBgkqhkiG9w0BAQsFADAV
MRMwEQYDVQQDDApjZW50cmFsLUNBMB4XDTIxMDIwNzE3MDUxNloXDTMxMDIxNDE3
MDUxNlowFTETMBEGA1UEAwwKUWxpa0NsaWVudDCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAMC5D8WvsgNFnB3NUCKxqX+3xn8X971y4pX600HampPDq+bJ
5yJQsDo0LcfGDl4XZvvDNFB2GFxrYef3S5xHp9QSWhj3dll0k0rAl0ITbKkQNHhF
L3meDd0d0DCshcCmEia0vRryYLVtUCBm00tyiWPLIC925XqYBp85B38quD0gLaaM
c79R/LUoqjf4589pIowFfYjzB/NK1qbERNhtu0W+FH/5+eh8WNlsJ/dfs0h0dC5/
n0/qPBl15qh40AWb9zUiQd1BUBdrhVm6bSD0zOjEDbuCAjr7Dk9QnsUl3wVpjIEK
aP6JVln0En4fzEfPgfiJjeO69xfXe1gG8HVtXJ0CAwEAAaNYMFYwHQYDVR0OBBYE
FHPiw6xQnTxXBQJKw4ovSrLIZ55XMB8GA1UdIwQYMBaAFLXVWapk7qSadaPJG+SA
mgbDwwqsMBQGCCsGAQUFBw0DBAgEBkNsaWVudDANBgkqhkiG9w0BAQsFAAOCAQEA
L1ndp+V+MBb8oMpmDEen5fzwO0U9t7kLe6tShFGvpYvVV6W4BnsaEHi9ebD5SbBK
MLmN63B8mACDxJp4esXiZcSj2phTLOdOEm3/TWtLB0YBiKhDQRIrSyI/9Uxfk3NW
YY/htDe0Xe1CRBUJvFD03a15+BkXAoALuYBBku0gveeJUXkDuVe/UNzVdLd3Z/1B
cdieROmUWK/I1JJyjDPEvGbPJ9EBI37Iop6tPDBasHSEmGHmFVZj5+rSiGFJOGJn
whiMV3mOdHyL+peqyj7Q8Uv72RgW0QLRBdssYcQWuQcEcuozCz0ARYTQk7CNHwsF
iXP+k9NziyFT8sdE8ccd7w==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAwLkPxa+yA0WcHc1QIrGpf7fGfxf3vXLilfrTQdqak8Or5snn
IlCwOjQtx8YOXhdm+8M0UHYYXGth5/dLnEen1BJaGPd2WXSTSsCXQhNsqRA0eEUv
eZ4N3R3QMKyFwKYSJrS9GvJgtW1QIGbTS3KJY8sgL3blepgGnzkHfyq4PSAtpoxz
v1H8tSiqN/jnz2kijAV9iPMH80rWpsRE2G27Rb4Uf/n56HxY2Wwn91+zSHR0Ln+f
T+o8GXXmqHjQBZv3NSJB3UFQF2uFWbptIPTM6MQNu4ICOvsOT1CexSXfBWmMgQpo
/olWWfQSfh/MR8+B+ImN47r3F9d7WAbwdW1cnQIDAQABAoIBAQCGhWZl9XJK6F7F
Spdh8CLA3FU4R1GMslFIoNCvCdiVxaIKsOmdwTaRGfTOmgdTVAB1QVcVxqjQcb/g
O3RSfI2/8KNlA+5fGIjrR60M2SQiigYl4Rz3RgSlT/cO0o114DWRQN0ynvY0DT49
r6hS5HrT5mfr2ZDqVo1gvFzoPbhmKQVrQv9l1Owb+ZI1zzzvOE5pBkWv+vU3mLJ5
XzsDGC87MQj9l6iSh/HU1zQQ0VgTJ8hB3NL7vRZMYn6zyzpaDdRyerysGfJZtWfd
Q4Z/ANIv67LHch5FWJBA5iOPiZZFqPdPaptfbaGO+CFk8M55YAS0QY4zBD8YxBxt
qo379k79AoGBAPOhh5dR1Ox6MEiInATDnrqLCuamJWwiAU+KMDqrKnIi9FNSfQd5
F16PGI5/kmbnc6jLftDdLBgeWU+BoAqRtXoOUt7NXp62jkjy0c9lmo1wAEhvS3Fj
+csp2VCgadmx+0QXN5b0gMbznHRx7pXptASslVw1VlTQ6XWEfIyFoKIDAoGBAMqB
4UVXYx6bkClppeFNlZRvpXMnDSFm+0UCKmoHAu1WsoSbJ2nErxB1T6NLe6fI/NXr
vFINRXUZ8rgInFTCeeQamRuxsRXVM0CmwQS7uFj/ZOTK4+TkjeoydsKE5NGGla45
P6Voswy39xSH4/FZIStPbA6wuWe07aWPoVv7SBTfAoGBAKE47oqTi4zmGxeU13JL
pbmak58oqbESG73wG5RnetJHEVomRzjvyCg6F60M/Ov+FErKR2SeSDS5uK5lgGwe
GnLoEa0BSLFM64GYtoFBonIggP9uLwWdfEsWqYmybfmyzy0zFAVgTevagFmKn7Ez
E37YWorHfRbpnOS4xNcVAsTTAoGALaw/X4FHFLcnO3/dbsQt0U2g9ii/mGH+l+DW
KhWsvlTIbIoFyKAYj9C1hnHW0M/O3nyNe8AMg0235XPjtmYqUZ0CHTHla7QrHBDA
Bc5E1KW9XrC3138I1uJM0LBiXzNIfQPia+8COwMe0d2YNm3QwlDmYSXQmyg+VRHg
5br11ecCgYAm2CL6kXV9YF2WPxtqgXexkM/DtechRZTEMNKilUtylIF3+MzsWp4C
zvRBE2vwLZOHd9E7r7WYHnTA9MWEvy1d6pVvlain4oNSnmii5kTs75XM0aSzkduC
QwBy2+ufKAZ3+DxrVFWRHt4vNgXjdrQadDTuHOItAvsFXTwM8X4yIw==
-----END RSA PRIVATE KEY-----

338
vault-testing/default.aspx Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,30 @@
-----BEGIN CERTIFICATE-----
MIIFOjCCAyKgAwIBAgIBATANBgkqhkiG9w0BAQsFADBFMQswCQYDVQQGEwJDQTEL
MAkGA1UECBMCT04xDzANBgNVBAcTBk90dGF3YTEYMBYGA1UEChMPUWxpayBQcml2
YXRlIENBMB4XDTIxMDExMDAyMzIzN1oXDTI2MDEwOTAyMzIzN1owRTELMAkGA1UE
BhMCQ0ExCzAJBgNVBAgTAk9OMQ8wDQYDVQQHEwZPdHRhd2ExGDAWBgNVBAoTD1Fs
aWsgUHJpdmF0ZSBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQt
eC1n06S6YhT51OEpJlsGrBzehPgZYaq3y0N6K0yQNPYJlyyyyTBzZtROWpWornha
H2ImTSRlSO4pPgxhLO3g5AwzFK0dAhL1GHN33RoX+V4cHJC21uiRmG+hiuKHKOTK
6PgPAR77zxPPx6Cp974i9Xuu93XowBkCb3OzlAAEPnP3B5SzUasSIUwVfWJ4fYFK
zBgbc21xR0+x4avdV79XIU7/wVAXkjnkZXQ2fxrJY3yfiskAdniDqOXUs+rFE725
IdmeWkH//ktCQ2RoGJ5cuc6Uh3msUugpxYSPxm8+KKrwmpwajp7kcMzZW63r/qGT
g6wh/gLbEOBRHgeKtHjcUdKDB0xn77xxYLtdOCQlqLnuukgM+aHMPQiSWKfB8xrE
GuJwMYNrRgbMTX9ZEIcK+A+OADyHxmUV3abVPO04UkjGCnE4TQssLnzg6bIKp0GX
g1SUlIfQswotXjR/Fpi5sFM0DWAegTZw9Mvyv1GbP8h6L6PNlN+jLj7cmm4kYEKL
NniW/tgihh8oPAHV/8MdMly5FtACPtu2WeNLvPT+7857ACaM+bwvrJSABahe+FQ6
ngyHLYGDHVa+J48SbEVBo13QtHEO/ZMMGP4TFtTJp4uo7lLTP6U6j/lllTlVLuNY
rMZ7TltAx1Gj3gki71ftHuxEdUw3Y14EO1UqlPqJAgMBAAGjNTAzMA4GA1UdDwEB
/wQEAwIFoDATBgNVHSUEDDAKBggrBgEFBQcDATAMBgNVHRMBAf8EAjAAMA0GCSqG
SIb3DQEBCwUAA4ICAQCm5AhVoTShucCCXg2cbqEzd+dFkEki50HWDES25Xlx1iN3
akUGiaat93NsGcrG8/M8eel2fBEz7jPJDb3l62b4GuM62fzkqxc0p6UgnOa8JaOL
gX2RZhZb/ik1u1gnUvvzuDsESx0elRHE13xPk9MtnJo3yMsMcTeDLpa+N0PKIwGz
Ei3CQFCIdr3qZOlsr2RsjSXZ6d3FR9hLDBiLNI+bqaiJEMyszupPdXPPMV2dyWX1
XCR8vwKRbDHLlE3X03qRXp+xhbENAmfDfJa96yHBl8zpNYBkYNh9YAV2Tg24cnF4
WbMAeChbl8m31F5UafbfmITMpO28V+jjbScwM/tHGhiwnbvyOlfjH31YEfYJKyPF
IJYFhV+W6nxlRxIz8QPENRo3euTG6T4iCb9NSlIb35yLMkwmBncodPpdys2J8oaw
g0B44ZgOLhUqOMA+YTR04GuuN6jBRoezwITupMtiSz0Mn7PwIu4OfVY8vB8D4fTd
R38tJ5fbFcLrEk6bQk+Jnh5CY6xwkMcYWi5avTH6VnHq5zQDnMJrLt+RiG+H17vp
ncT2Q2/IS75gx6cTlR0Dg2DjwsHM3YZYYQId3lbVfmH6yxBw3RnCKFIRjaCretmk
U6ztAQ/jMYjZ9DJIDc/whrInADeLCw5DWs6K4QXjSMnYd9PAlpf+lu8Tw98y1A==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,51 @@
-----BEGIN PRIVATE KEY-----
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
-----END PRIVATE KEY-----

72
vault-testing/fs1.js Normal file
View File

@@ -0,0 +1,72 @@
/***** index.js *****/
const express = require('express');
const ticket = require('./ticket');
var app = express();
app.get('/index.html', function(req,res) {
console.log("accessed the index.html node page");
console.log("proxyRestUri: " + req.query.proxyRestUri);
console.log("targetId: " + req.query.targetId);
ticket.get_ticket_redirect(req.query.proxyRestUri, req.query.targetId, function(redirectUrl){
console.log("Redirecting to "+redirectUrl);
res.redirect(redirectUrl);
});
});
app.use('/', express.static('public'));
app.listen(3000, function() {
console.log("Listening on port 3000");
});
/***** ticket.js *****/
var fs = require('fs');
var request = require('request');
//define certificate folder
var directory = "./";
var get_ticket_redirect = function(proxyRestUri, targetId, callback){
//set up request options
var options = {
uri: proxyRestUri + 'ticket?xrfkey=somerandomstring',
headers: {'content-type': 'application/json',
'X-Qlik-xrfkey': 'somerandomstring',
'X-Qlik-user': 'UserDirectory=INTERNAL;UserId=sa_api'
},
method: 'POST',
body: {
"UserDirectory": "QAD",
"UserId": "djx",
"Attributes": [],
"TargetId": targetId
},
json: true,
ca: fs.readFileSync(directory+ "root.pem"),
key: fs.readFileSync(directory+"client_key.pem"),
cert: fs.readFileSync(directory+"client.pem"),
rejectUnauthorized: false
};
//send request
request(options, function (error, response, body) {
if(error)
{
console.log('Error: '+error);
console.log(response);
}
else
{
console.log("== Got a ticket ==");
console.log("Ticket: " + response.body.Ticket);
console.log("TargetUri: " + response.body.TargetUri);
callback(response.body.TargetUri + "?QlikTicket=" + response.body.Ticket); // This is the redirect URL!
}
});
}
module.exports = {
get_ticket_redirect: get_ticket_redirect
}

10
vault-testing/index.html Normal file
View File

@@ -0,0 +1,10 @@
<!doctype html>
<html lang="en">
<meta charset="utf-8" />
<title>Simple web app</title>
<div id="intro">Loading...</div>
<div id="title">Loading...</div>
<script src="https://unpkg.com/enigma.js@2.7.0/enigma.min.js"></script>
<script src="app.js"></script>
</html>

20
vault-testing/index.js Normal file
View File

@@ -0,0 +1,20 @@
/***** index.js *****/
const express = require('express');
const ticket = require('./ticket');
var app = express();
app.get('/index.html', function(req,res) {
console.log("accessed the index.html node page");
console.log("proxyRestUri: " + req.query.proxyRestUri);
console.log("targetId: " + req.query.targetId);
ticket.get_ticket_redirect(req.query.proxyRestUri, req.query.targetId, function(redirectUrl){
console.log("Redirecting to "+redirectUrl);
res.redirect(redirectUrl);
});
});
app.use('/', express.static('public'));
app.listen(3000, function() {
console.log("Listening on port 3000");
});

59
vault-testing/jwt.js Normal file
View File

@@ -0,0 +1,59 @@
const fs = require('fs');
const jwt = require('jsonwebtoken');
const { http, https } = require('follow-redirects');
// Your Sense Enterprise installation hostname:
const senseHost = 'qseow.jprdonnelly.com';
// Your configured virtual proxy prefix for JWT authentication:
const proxyPrefix = 'jwt';
// The Sense Enterprise-configured user directory for the user you want to identify
// as:
const userDirectory = 'INTERNAL';
// The user to use when creating the session:
const userId = 'sa_api';
// The Sense Enterprise-configured JWT structure. Change the attributes to match
// your configuration:
const token = {
directory: userDirectory,
user: userId,
};
// Path to the private key used for JWT signing:
const privateKeyPath = './fort_private.key';
const key = fs.readFileSync(path.resolve(__dirname, privateKeyPath));
// Sign the token using the RS256 algorithm:
const signedToken = jwt.sign(token, key, { algorithm: 'RS256' });
const options = {
hostname: 'central.browntown.local',
port: 4243,
path: '/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`,
'Authorization' : 'Bearer ${signedToken}'}
},
// key: fs.readFileSync("client_key.pem"),
// cert: fs.readFileSync("client.pem"),
// ca: fs.readFileSync("root.pem"),
// rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
con
sole.log("Got error: " + e.message);
});

BIN
vault-testing/root.cer Normal file

Binary file not shown.

19
vault-testing/root.pem Normal file
View File

@@ -0,0 +1,19 @@
-----BEGIN CERTIFICATE-----
MIIDGzCCAgOgAwIBAgIQAKqc00Zx4AfvKdtqjSsWbTANBgkqhkiG9w0BAQsFADAV
MRMwEQYDVQQDDApjZW50cmFsLUNBMB4XDTIwMTIzMDE1NDIwNFoXDTMxMDEwNjE1
NDIwNFowFTETMBEGA1UEAwwKY2VudHJhbC1DQTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAJ/6pWC/0N1fOMc/4/AWYEAuV+mokmlstBBjsczscoGGV/dl
F0am/M7QzFKYJE7ypzIIGob/i96m9+oc1bG5i5l9UFMknSonVag6sBjmKd+B5aG9
VuZ3JNCu1dVaXQ5pHf7kmXGfOAhWMhjf6BxLjRDh6T6ZvyEx4ZL+ofarggtllpAI
O91vpNWixN7qgcYT0ahs8d8QwMkDrZRMcOPWSlp6XpLE+reM1MI1GAFctRBeGW7K
SefasF/OMw3i4NGhGy0vju78In23AZTtu69j2xhZM98fWXoPV5tdC8kFMjm+INxn
ZNCXWjjsIB5+etGKTiMtDTEs6C/zn/CVpTMnO00CAwEAAaNnMGUwDwYDVR0TAQH/
BAUwAwEB/zAdBgNVHQ4EFgQUtdVZqmTupJp1o8kb5ICaBsPDCqwwHwYDVR0jBBgw
FoAUtdVZqmTupJp1o8kb5ICaBsPDCqwwEgYIKwYBBQUHDQMEBgQEUm9vdDANBgkq
hkiG9w0BAQsFAAOCAQEAJSFhaGQW2UoICwjmIDW63UqVXrLOH9VoeBHko4SAuCv5
9ambUZ+ccdFqkVfUnRdudFYq4fwBkJp2O9fDNnmVjMleSTGUJt09arAs69Hlze9y
LsOmWTqWkuxMwXfzMl2CP2LNVjxFIiNDOvGFtUEMIQriCIf0ESNmdqQlBSd8Ebcd
8NTQb8yc1h6f5vw9dmo18myFQio9nKbMJP7ADumbmCSOVPAcQZItcscMY05IkeYs
B3EfA/hb9y1lqBj3BLVQ8upZQQWxCuzFFJukpmNKJ28Xb6Bxvdzzkfce9Y3dFrtZ
qwYhIxzkb1A1sqjP32VecqA7HsxLfv6nt3GBEAZoXQ==
-----END CERTIFICATE-----

31
vault-testing/server.pem Normal file
View File

@@ -0,0 +1,31 @@
-----BEGIN CERTIFICATE-----
MIIFajCCBFKgAwIBAgIQAL2xxPBwLS0l55gsSyxQXzANBgkqhkiG9w0BAQsFADAV
MRMwEQYDVQQDDApjZW50cmFsLUNBMB4XDTIxMDIwNzE3MDUxNloXDTMxMDIxNDE3
MDUxNlowIDEeMBwGA1UEAwwVcXNlb3cuanByZG9ubmVsbHkuY29tMIIBIjANBgkq
hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAksBbEhm9tpnBR1laE234ZN9KKjDtUgZb
h58UJ2v4b0tsvI58ctSRs7wzrKhkNoDu22vh1IyiC5mowbF9jPnTg9aOOhbXN9vQ
/Cj/IpIfeTk9dJwNV9ALxKmyq5ENSPeePk82pPSvm9nfz4/2p46rL98LKruQCA2G
cRpuk+8I5SETA8yxsKa0vwmXHTCw/Lft4vOdq50GOUxTVkPfyzfZKV7iMAkOGnOw
p/eWPRKG+CGITDup8Bbv7GRvUQkTD/4rcSytk7kpoqNIAbYyTDX+rTidBIZNZ8bj
lfxY3CqXPO0vNREMMh/8m3EsOzjSZbgDAqWgjBW5fed3MY6mcJO75wIDAQABo4IC
qTCCAqUwIAYDVR0RBBkwF4IVcXNlb3cuanByZG9ubmVsbHkuY29tMB0GA1UdDgQW
BBQI/P4vL6JlRJvtu1U5E1p5N2+PDTAfBgNVHSMEGDAWgBS11VmqZO6kmnWjyRvk
gJoGw8MKrDAVBggrBgEFBQcNAwQJBAdTZXJ2aWNlMIIBEgYIKwYBBQUHDQEEggEE
BIIBAIXwDWHHErd/uPNqw/TSLyRX/AMEngic34OqFjx6VNx9rwDatR55XEh4n7gy
wVB4bU9BoI3AChX3nMNMio5YXPiY13PLWt+mhOzvGTROUQUfyIp/+kD/Aa0ICFK8
WJe564sJGOHUP3dasbNUOA1na/eHV4VWCyz5V7gJ7V1bRXjtiJckyh9Z4vM2elTM
2QeBVR+nb+sDwL3noz0lp9OuE95nMH/vs3Dk9SCVT8V/5bXsHRyg3UmBtY+bjlnz
0Y8C90+1BRk8+rnsW8sPQU+Xs+uYXTrw3AnNbuaesVGS7hwtvZparkpIZ4zJG5sW
hbt73Q9x8mY02+/3IhN3T1jiduQwggESBggrBgEFBQcNAgSCAQQEggEAVJQMpCDf
cefsm11ufw3GRv2DmeSLnWT3eJ3UV5tRAsJ9U8S8mf7FlqeVmiXL2YX9hPQf/+RP
GEk+6Sx+vfmnjsSEhOEBDwnsePMM9ZnvA/H2xufsio9m7uTapsFWPFUNt3JbKror
R0OdQzsgE0aTpkDP02ojpS5LmCuD/jMEkcrbbSkksRDYjohuIKZRERDijpw9WDhM
1CyW6MJmaxwdOqLqeakt1FLqHbBEYEy9JowTzaNLbOt14ohJ3XsVn8Kf2Yxc69yQ
28BBEKH2p34G82op/mP37kuGjdh5oMEnWbHdRNSGxzRJkjn+7N08tfneiTxzszd7
0ZoHI++3bgTopTANBgkqhkiG9w0BAQsFAAOCAQEAb83XLFmREAfCWfH+w23peo7s
lsUkayVRsBWC6KnvxqtEWdqKNR6PbvwZQp6ue0ENUt6Of14Qlfumm74CnS9oxusT
q2S1a31GnPfYq3ItMKDvETjibe0DT14JkmkqtJQe4FgdvdOoXZEKvLtZqlv1Xf0l
dDu2EAtTSnae6mSqvulaWo23qH7iyj15dp2SdWKjfLlv86iLdHUmXV/NkiZ/HTRZ
4R2IowAd9oUrqGdbunVBy6teyEmvIQiiJHK126Daijih88/TIKK79MK2Tl2UYP+S
dPZKrhEwlGpmY29rfGt6uAXb0WChkfkghc9NlpCQUk4PY6KAzkcxCqUUiLWOgA==
-----END CERTIFICATE-----

View File

@@ -0,0 +1,27 @@
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAksBbEhm9tpnBR1laE234ZN9KKjDtUgZbh58UJ2v4b0tsvI58
ctSRs7wzrKhkNoDu22vh1IyiC5mowbF9jPnTg9aOOhbXN9vQ/Cj/IpIfeTk9dJwN
V9ALxKmyq5ENSPeePk82pPSvm9nfz4/2p46rL98LKruQCA2GcRpuk+8I5SETA8yx
sKa0vwmXHTCw/Lft4vOdq50GOUxTVkPfyzfZKV7iMAkOGnOwp/eWPRKG+CGITDup
8Bbv7GRvUQkTD/4rcSytk7kpoqNIAbYyTDX+rTidBIZNZ8bjlfxY3CqXPO0vNREM
Mh/8m3EsOzjSZbgDAqWgjBW5fed3MY6mcJO75wIDAQABAoIBAQCJp9wFj5XQikuu
BNeksBw3auijyP9kWMhU4FjEXdhNdZ/LA5EjGdiOk3SZed9+7NShiIHuofiDDyEo
h7hwnAvXeFQzkydQo2ZWkpI4uH7DdHj8QEGX5HSVhmUt4ENo9bU/V4i3lTqA5A+4
IJ/LLt3PataLwCLsGtvIjnW5WJisbDitqLD09SfEoHzCpN7cCDjYJrXDykP64MQK
ERCrMz1yoMThbv1Q7J8gPEm4AsN5NLKdky1zd+xbjy7WljMWTTNHLAoUWhkc9D+1
7WtcTZYQnE+9lo8gb1MVxwlglyruW0Ch+SZhXhQQGuy5OYWd6fRhq+B8aybovWCg
7GlJo85JAoGBAONFtIIEiFoKbEZtwCJ0FkLbwVvsWMB/dMHdy/45Cwb8/0xC9WHi
sPfM9LKNe4Q6E/mlVSotdsOHQocvVVgiGoBrVBWOn6olK+oF155VXyWwaFFE4KTR
zHiDGioodeFFgZ1x9kM9q9U9TwZr/Knt0lI1JzQTKFp82NEYgkjInt7DAoGBAKVN
FAHCH0rcfaCgcQEhn4lWYMjrBVNq5Gtq/xFWqMwzyPCvn/kXTvzhPlbMWcTByrIx
bS9KeMNk/zdu6pAUq5KV0A9laBBWJ2F5Cg1RK91DcmTNKtV3+Pq6n/2F8TQOEryY
Wcj9fyVOPQMkIaYacaSceH9NVS5y65rQxcv9JSQNAoGBAIIrSletgOsRTTKJaaJS
Gu3wL68Wjz6xwY3IGy5gPZCjFxX2w9Rsoi9LlFsv7a6uFQLHTx/5KiyTK+eBlMAF
yGgFEQPHzGsHHz/KWNS20OglQZpKeN/tyc68SCAdTGbaCILE4udgSyq3Eqv67Zvm
OrAbAXkx/8rT9trLztMhFN1BAoGAMwXQqB5IVG4spNkBKI09VkIAS+QnV7FF4lY7
dxmdrrJJUumS4mssaWgJOveGufHrZAdXoWJGVmGlWXH2GxUWRH/Tofz2GxzMuQyI
asXkWT7JX43oq82FX7cdTT77zcqORAJurFh614QH1yFe9YtyCpJ1qy2unlDAop/Q
ff+caD0CgYBRbFBtGZLc3DhufolHswF9zAlbg+Ro+m2YA0FaK5tnxqOC60NlRRgG
QyJtmBL2Lo3gOp1/icHAgMI1aVqho6+7r2bAWS2EFCbxfzWMoYdwoi3d7KuNFOYd
/sskoTGj0iQAR7VCzjJyakKvhuTJhiP1YnMEoxjwSyGhBT85RC6Tbw==
-----END RSA PRIVATE KEY-----

72
vault-testing/ticket.js Normal file
View File

@@ -0,0 +1,72 @@
/***** index.js *****/
const express = require('express');
const ticket = require('./ticket');
var app = express();
app.get('/index.html', function(req,res) {
console.log("accessed the index.html node page");
console.log("proxyRestUri: " + req.query.proxyRestUri);
console.log("targetId: " + req.query.targetId);
ticket.get_ticket_redirect(req.query.proxyRestUri, req.query.targetId, function(redirectUrl){
console.log("Redirecting to "+redirectUrl);
res.redirect(redirectUrl);
});
});
app.use('/', express.static('public'));
app.listen(3000, function() {
console.log("Listening on port 3000");
});
/***** ticket.js *****/
var fs = require('fs');
var request = require('request');
//define certificate folder
var directory = "./";
var get_ticket_redirect = function(proxyRestUri, targetId, callback){
//set up request options
var options = {
uri: proxyRestUri + 'ticket?xrfkey=somerandomstring',
headers: {'content-type': 'application/json',
'X-Qlik-xrfkey': 'somerandomstring',
'X-Qlik-user': 'UserDirectory=INTERNAL;UserId=sa_api'
},
method: 'POST',
body: {
"UserDirectory": "QAD",
"UserId": "djx",
"Attributes": [],
"TargetId": targetId
},
json: true,
ca: fs.readFileSync(directory+ "root.pem"),
key: fs.readFileSync(directory+"client_key.pem"),
cert: fs.readFileSync(directory+"client.pem"),
rejectUnauthorized: false
};
//send request
request(options, function (error, response, body) {
if(error)
{
console.log('Error: '+error);
console.log(response);
}
else
{
console.log("== Got a ticket ==");
console.log("Ticket: " + response.body.Ticket);
console.log("TargetUri: " + response.body.TargetUri);
callback(response.body.TargetUri + "?QlikTicket=" + response.body.Ticket); // This is the redirect URL!
}
});
}
module.exports = {
get_ticket_redirect: get_ticket_redirect
}

32
vault-testing/win-4242.js Normal file
View File

@@ -0,0 +1,32 @@
// const https = require('https');
const { http, https } = require('follow-redirects');
const fs = require('fs');
const options = {
hostname: 'central.browntown.local',
port: 4242,
path: '/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`
},
key: fs.readFileSync("client_key.pem"),
cert: fs.readFileSync("client.pem"),
ca: fs.readFileSync("root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});

28
vault-testing/win-443.js Normal file
View File

@@ -0,0 +1,28 @@
// var https = require('https');
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
hostname: 'qseow.jprdonnelly.com',
port: 443,
path: 'main/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : 'UserDirectory=Internal; UserId=sa_repository'
},
key: fs.readFileSync("./client_key.pem"),
cert: fs.readFileSync("./client.pem"),
ca: fs.readFileSync("./root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});

33
vault-testing/win-main.js Normal file
View File

@@ -0,0 +1,33 @@
// const https = require('https');
const { http, https } = require('follow-redirects');
const fs = require('fs');
const options = {
hostname: 'qseow.jprdonnelly.com',
port: 443,
path: '/main/qrs/about?xrfkey=abcdefghijklmnop',
method: 'GET',
// agent: 'Windows',
// login: 'INTERNAL\SA_API',
// password: '',
headers: {
'X-Qlik-Xrfkey' : 'abcdefghijklmnop',
'X-Qlik-User' : 'UserDirectory=INTERNAL; UserId=sa_api'
// 'X-Qlik-User' : `UserDirectory=${encodeURIComponent('INTERNAL')}; UserId=${encodeURIComponent('sa_api')}`
},
key: fs.readFileSync("client_key.pem"),
cert: fs.readFileSync("client.pem"),
ca: fs.readFileSync("root.pem"),
rejectUnauthorized: false
};
https.get(options, function(res) {
console.log("Got response: " + res.statusCode);
res.on("data", function(chunk) {
console.log("BODY: " + chunk);
});
}).on('error', function(e) {
console.log("Got error: " + e.message);
});