Skip to content

Commit

Permalink
feat(iprod-93): added OUT_USE_CERT_FILES_FOR_AUTH env var for OIDC en…
Browse files Browse the repository at this point in the history
…dpoint
  • Loading branch information
geka-evk committed Oct 23, 2023
1 parent 5a523e4 commit 8a019a1
Show file tree
Hide file tree
Showing 5 changed files with 133 additions and 63 deletions.
2 changes: 1 addition & 1 deletion modules/api-svc/package.json
Expand Up @@ -102,7 +102,7 @@
"babel-jest": "^29.7.0",
"eslint": "^8.52.0",
"eslint-config-airbnb-base": "^15.0.0",
"eslint-plugin-import": "^2.28.1",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-jest": "^27.4.3",
"jest": "^29.7.0",
"jest-junit": "^16.0.0",
Expand Down
7 changes: 3 additions & 4 deletions modules/api-svc/src/config.js
Expand Up @@ -56,8 +56,6 @@ const env = from(process.env, {
asResourceVersions: (resourceString) => parseResourceVersions(resourceString),
});

const OUTBOUND_MUTUAL_TLS_USE_FILES = env.get('OUTBOUND_MUTUAL_TLS_USE_FILES').default('false').asBool();

module.exports = {
__parseResourceVersion: parseResourceVersions,
control: {
Expand All @@ -84,11 +82,12 @@ module.exports = {
mutualTLS: {
enabled: env.get('OUTBOUND_MUTUAL_TLS_ENABLED').default('false').asBool(),
},
creds: OUTBOUND_MUTUAL_TLS_USE_FILES ? {
creds: {
ca: env.get('OUT_CA_CERT_PATH').asFileListContent(),
cert: env.get('OUT_CLIENT_CERT_PATH').asFileContent(),
key: env.get('OUT_CLIENT_KEY_PATH').asFileContent(),
} : {}, // will be populated from CONFIGURATION ws-message from pm-management-api
},
useCertFilesForAuth: env.get('OUT_USE_CERT_FILES_FOR_AUTH').default('false').asBool()
},
},
backendEventHandler: {
Expand Down
2 changes: 1 addition & 1 deletion modules/api-svc/src/lib/utils.js
Expand Up @@ -6,7 +6,7 @@ const createAuthClient = (conf, logger) => {
const auth = new WSO2Auth({
...wso2.auth,
logger,
tlsCreds: outbound.tls.mutualTLS.enabled && outbound.tls.creds,
tlsCreds: outbound.tls.useCertFilesForAuth && outbound.tls.creds,
});

return Object.freeze({
Expand Down
14 changes: 11 additions & 3 deletions modules/api-svc/test/unit/config.test.js
Expand Up @@ -11,13 +11,19 @@
const fs = require('fs');
const path = require('path');
const os = require('os');
const sdkSC = require('@mojaloop/sdk-standard-components');
const { createAuthClient } = require('../../src/lib/utils');

const outErrorStatusKey = 'outErrorStatusKey';

jest.mock('dotenv', () => ({
config: jest.fn(),
}));

jest.mock('@mojaloop/sdk-standard-components', () => ({
WSO2Auth: jest.fn(),
}));

describe('config', () => {
let certDir;
let env;
Expand Down Expand Up @@ -125,9 +131,11 @@ describe('config', () => {
});
});

it('should return outbound.tls.creds as empty object if OUTBOUND_MUTUAL_TLS_USE_FILES is false', () => {
process.env.OUTBOUND_MUTUAL_TLS_USE_FILES = 'false';
it('should pass outbound tlsCreds as false to WSO2Auth ctor, if OUT_USE_CERT_FILES_FOR_AUTH is false', () => {
process.env.OUT_USE_CERT_FILES_FOR_AUTH = 'false';
const config = require('~/config');
expect(config.outbound.tls.creds).toStrictEqual({});
createAuthClient(config, {});
const { tlsCreds } = sdkSC.WSO2Auth.mock.calls[0][0];
expect(tlsCreds).toBe(false);
});
});
171 changes: 117 additions & 54 deletions yarn.lock
Expand Up @@ -2835,7 +2835,7 @@ __metadata:
env-var: ^7.4.1
eslint: ^8.52.0
eslint-config-airbnb-base: ^15.0.0
eslint-plugin-import: ^2.28.1
eslint-plugin-import: ^2.29.0
eslint-plugin-jest: ^27.4.3
express: ^4.18.2
fast-json-patch: ^3.1.1
Expand Down Expand Up @@ -4622,16 +4622,16 @@ __metadata:
languageName: node
linkType: hard

"array-includes@npm:^3.1.6":
version: 3.1.6
resolution: "array-includes@npm:3.1.6"
"array-includes@npm:^3.1.7":
version: 3.1.7
resolution: "array-includes@npm:3.1.7"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.4
es-abstract: ^1.20.4
get-intrinsic: ^1.1.3
define-properties: ^1.2.0
es-abstract: ^1.22.1
get-intrinsic: ^1.2.1
is-string: ^1.0.7
checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5
checksum: 06f9e4598fac12a919f7c59a3f04f010ea07f0b7f0585465ed12ef528a60e45f374e79d1bddbb34cdd4338357d00023ddbd0ac18b0be36964f5e726e8965d7fc
languageName: node
linkType: hard

Expand All @@ -4642,7 +4642,7 @@ __metadata:
languageName: node
linkType: hard

"array.prototype.findlastindex@npm:^1.2.2":
"array.prototype.findlastindex@npm:^1.2.3":
version: 1.2.3
resolution: "array.prototype.findlastindex@npm:1.2.3"
dependencies:
Expand All @@ -4655,7 +4655,7 @@ __metadata:
languageName: node
linkType: hard

"array.prototype.flat@npm:^1.2.5, array.prototype.flat@npm:^1.3.1":
"array.prototype.flat@npm:^1.2.5":
version: 1.3.1
resolution: "array.prototype.flat@npm:1.3.1"
dependencies:
Expand All @@ -4667,15 +4667,27 @@ __metadata:
languageName: node
linkType: hard

"array.prototype.flatmap@npm:^1.3.1":
version: 1.3.1
resolution: "array.prototype.flatmap@npm:1.3.1"
"array.prototype.flat@npm:^1.3.2":
version: 1.3.2
resolution: "array.prototype.flat@npm:1.3.2"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.4
es-abstract: ^1.20.4
define-properties: ^1.2.0
es-abstract: ^1.22.1
es-shim-unscopables: ^1.0.0
checksum: 5d6b4bf102065fb3f43764bfff6feb3295d372ce89591e6005df3d0ce388527a9f03c909af6f2a973969a4d178ab232ffc9236654149173e0e187ec3a1a6b87b
languageName: node
linkType: hard

"array.prototype.flatmap@npm:^1.3.2":
version: 1.3.2
resolution: "array.prototype.flatmap@npm:1.3.2"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.2.0
es-abstract: ^1.22.1
es-shim-unscopables: ^1.0.0
checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987
checksum: ce09fe21dc0bcd4f30271f8144083aa8c13d4639074d6c8dc82054b847c7fc9a0c97f857491f4da19d4003e507172a78f4bcd12903098adac8b9cd374f734be3
languageName: node
linkType: hard

Expand Down Expand Up @@ -7146,14 +7158,14 @@ __metadata:
languageName: node
linkType: hard

"eslint-import-resolver-node@npm:^0.3.7":
version: 0.3.7
resolution: "eslint-import-resolver-node@npm:0.3.7"
"eslint-import-resolver-node@npm:^0.3.9":
version: 0.3.9
resolution: "eslint-import-resolver-node@npm:0.3.9"
dependencies:
debug: ^3.2.7
is-core-module: ^2.11.0
resolve: ^1.22.1
checksum: 3379aacf1d2c6952c1b9666c6fa5982c3023df695430b0d391c0029f6403a7775414873d90f397e98ba6245372b6c8960e16e74d9e4a3b0c0a4582f3bdbe3d6e
is-core-module: ^2.13.0
resolve: ^1.22.4
checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22
languageName: node
linkType: hard

Expand Down Expand Up @@ -7181,30 +7193,30 @@ __metadata:
languageName: node
linkType: hard

"eslint-plugin-import@npm:^2.28.1":
version: 2.28.1
resolution: "eslint-plugin-import@npm:2.28.1"
"eslint-plugin-import@npm:^2.29.0":
version: 2.29.0
resolution: "eslint-plugin-import@npm:2.29.0"
dependencies:
array-includes: ^3.1.6
array.prototype.findlastindex: ^1.2.2
array.prototype.flat: ^1.3.1
array.prototype.flatmap: ^1.3.1
array-includes: ^3.1.7
array.prototype.findlastindex: ^1.2.3
array.prototype.flat: ^1.3.2
array.prototype.flatmap: ^1.3.2
debug: ^3.2.7
doctrine: ^2.1.0
eslint-import-resolver-node: ^0.3.7
eslint-import-resolver-node: ^0.3.9
eslint-module-utils: ^2.8.0
has: ^1.0.3
is-core-module: ^2.13.0
hasown: ^2.0.0
is-core-module: ^2.13.1
is-glob: ^4.0.3
minimatch: ^3.1.2
object.fromentries: ^2.0.6
object.groupby: ^1.0.0
object.values: ^1.1.6
object.fromentries: ^2.0.7
object.groupby: ^1.0.1
object.values: ^1.1.7
semver: ^6.3.1
tsconfig-paths: ^3.14.2
peerDependencies:
eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8
checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf
checksum: 19ee541fb95eb7a796f3daebe42387b8d8262bbbcc4fd8a6e92f63a12035f3d2c6cb8bc0b6a70864fa14b1b50ed6b8e6eed5833e625e16cb6bb98b665beff269
languageName: node
linkType: hard

Expand Down Expand Up @@ -8039,6 +8051,13 @@ __metadata:
languageName: node
linkType: hard

"function-bind@npm:^1.1.2":
version: 1.1.2
resolution: "function-bind@npm:1.1.2"
checksum: 2b0ff4ce708d99715ad14a6d1f894e2a83242e4a52ccfcefaee5e40050562e5f6dafc1adbb4ce2d4ab47279a45dc736ab91ea5042d843c3c092820dfe032efb1
languageName: node
linkType: hard

"function.prototype.name@npm:^1.1.5":
version: 1.1.5
resolution: "function.prototype.name@npm:1.1.5"
Expand Down Expand Up @@ -8547,6 +8566,15 @@ __metadata:
languageName: node
linkType: hard

"hasown@npm:^2.0.0":
version: 2.0.0
resolution: "hasown@npm:2.0.0"
dependencies:
function-bind: ^1.1.2
checksum: 6151c75ca12554565098641c98a40f4cc86b85b0fd5b6fe92360967e4605a4f9610f7757260b4e8098dd1c2ce7f4b095f2006fe72a570e3b6d2d28de0298c176
languageName: node
linkType: hard

"hexoid@npm:1.0.0, hexoid@npm:^1.0.0":
version: 1.0.0
resolution: "hexoid@npm:1.0.0"
Expand Down Expand Up @@ -9056,21 +9084,30 @@ __metadata:
languageName: node
linkType: hard

"is-core-module@npm:^2.11.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0":
version: 2.11.0
resolution: "is-core-module@npm:2.11.0"
"is-core-module@npm:^2.13.0":
version: 2.13.0
resolution: "is-core-module@npm:2.13.0"
dependencies:
has: ^1.0.3
checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab
checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355
languageName: node
linkType: hard

"is-core-module@npm:^2.13.0":
version: 2.13.0
resolution: "is-core-module@npm:2.13.0"
"is-core-module@npm:^2.13.1":
version: 2.13.1
resolution: "is-core-module@npm:2.13.1"
dependencies:
hasown: ^2.0.0
checksum: 256559ee8a9488af90e4bad16f5583c6d59e92f0742e9e8bb4331e758521ee86b810b93bae44f390766ffbc518a0488b18d9dab7da9a5ff997d499efc9403f7c
languageName: node
linkType: hard

"is-core-module@npm:^2.5.0, is-core-module@npm:^2.8.1, is-core-module@npm:^2.9.0":
version: 2.11.0
resolution: "is-core-module@npm:2.11.0"
dependencies:
has: ^1.0.3
checksum: 053ab101fb390bfeb2333360fd131387bed54e476b26860dc7f5a700bbf34a0ec4454f7c8c4d43e8a0030957e4b3db6e16d35e1890ea6fb654c833095e040355
checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab
languageName: node
linkType: hard

Expand Down Expand Up @@ -11961,7 +11998,7 @@ __metadata:
languageName: node
linkType: hard

"object.fromentries@npm:^2.0.6":
"object.fromentries@npm:^2.0.7":
version: 2.0.7
resolution: "object.fromentries@npm:2.0.7"
dependencies:
Expand All @@ -11972,7 +12009,7 @@ __metadata:
languageName: node
linkType: hard

"object.groupby@npm:^1.0.0":
"object.groupby@npm:^1.0.1":
version: 1.0.1
resolution: "object.groupby@npm:1.0.1"
dependencies:
Expand All @@ -11995,14 +12032,14 @@ __metadata:
languageName: node
linkType: hard

"object.values@npm:^1.1.6":
version: 1.1.6
resolution: "object.values@npm:1.1.6"
"object.values@npm:^1.1.7":
version: 1.1.7
resolution: "object.values@npm:1.1.7"
dependencies:
call-bind: ^1.0.2
define-properties: ^1.1.4
es-abstract: ^1.20.4
checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e
define-properties: ^1.2.0
es-abstract: ^1.22.1
checksum: f3e4ae4f21eb1cc7cebb6ce036d4c67b36e1c750428d7b7623c56a0db90edced63d08af8a316d81dfb7c41a3a5fa81b05b7cc9426e98d7da986b1682460f0777
languageName: node
linkType: hard

Expand Down Expand Up @@ -13411,7 +13448,7 @@ __metadata:
languageName: node
linkType: hard

"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1":
"resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.20.0, resolve@npm:^1.22.0":
version: 1.22.1
resolution: "resolve@npm:1.22.1"
dependencies:
Expand All @@ -13424,7 +13461,20 @@ __metadata:
languageName: node
linkType: hard

"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.1#~builtin<compat/resolve>":
"resolve@npm:^1.22.4":
version: 1.22.8
resolution: "resolve@npm:1.22.8"
dependencies:
is-core-module: ^2.13.0
path-parse: ^1.0.7
supports-preserve-symlinks-flag: ^1.0.0
bin:
resolve: bin/resolve
checksum: f8a26958aa572c9b064562750b52131a37c29d072478ea32e129063e2da7f83e31f7f11e7087a18225a8561cfe8d2f0df9dbea7c9d331a897571c0a2527dbb4c
languageName: node
linkType: hard

"resolve@patch:resolve@^1.10.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.22.0#~builtin<compat/resolve>":
version: 1.22.1
resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"
dependencies:
Expand All @@ -13437,6 +13487,19 @@ __metadata:
languageName: node
linkType: hard

"resolve@patch:resolve@^1.22.4#~builtin<compat/resolve>":
version: 1.22.8
resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin<compat/resolve>::version=1.22.8&hash=c3c19d"
dependencies:
is-core-module: ^2.13.0
path-parse: ^1.0.7
supports-preserve-symlinks-flag: ^1.0.0
bin:
resolve: bin/resolve
checksum: 5479b7d431cacd5185f8db64bfcb7286ae5e31eb299f4c4f404ad8aa6098b77599563ac4257cb2c37a42f59dfc06a1bec2bcf283bb448f319e37f0feb9a09847
languageName: node
linkType: hard

"responselike@npm:^3.0.0":
version: 3.0.0
resolution: "responselike@npm:3.0.0"
Expand Down

0 comments on commit 8a019a1

Please sign in to comment.