|
@@ -1,4 +1,15 @@
|
|
|
Oidc = {};
|
|
|
+httpCa = false;
|
|
|
+
|
|
|
+if (process.env.OAUTH2_CA_CERT !== undefined) {
|
|
|
+ try {
|
|
|
+ const fs = Npm.require('fs');
|
|
|
+ httpCa = fs.readFileSync(process.env.OAUTH2_CA_CERT);
|
|
|
+ } catch(e) {
|
|
|
+ console.log('WARNING: failed loading: ' + process.env.OAUTH2_CA_CERT);
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
OAuth.registerService('oidc', 2, null, function (query) {
|
|
|
|
|
@@ -86,9 +97,7 @@ if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED
|
|
|
var response;
|
|
|
|
|
|
try {
|
|
|
- response = HTTP.post(
|
|
|
- serverTokenEndpoint,
|
|
|
- {
|
|
|
+ var postOptions = {
|
|
|
headers: {
|
|
|
Accept: 'application/json',
|
|
|
"User-Agent": userAgent
|
|
@@ -101,8 +110,11 @@ if (process.env.ORACLE_OIM_ENABLED !== 'true' && process.env.ORACLE_OIM_ENABLED
|
|
|
grant_type: 'authorization_code',
|
|
|
state: query.state
|
|
|
}
|
|
|
- }
|
|
|
- );
|
|
|
+ };
|
|
|
+ if (httpCa) {
|
|
|
+ postOptions['npmRequestOptions'] = { ca: httpCa };
|
|
|
+ }
|
|
|
+ response = HTTP.post(serverTokenEndpoint, postOptions);
|
|
|
} catch (err) {
|
|
|
throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message),
|
|
|
{ response: err.response });
|
|
@@ -143,9 +155,7 @@ if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED
|
|
|
if (debug) console.log('Basic Token: ', strBasicToken64);
|
|
|
|
|
|
try {
|
|
|
- response = HTTP.post(
|
|
|
- serverTokenEndpoint,
|
|
|
- {
|
|
|
+ var postOptions = {
|
|
|
headers: {
|
|
|
Accept: 'application/json',
|
|
|
"User-Agent": userAgent,
|
|
@@ -159,8 +169,11 @@ if (process.env.ORACLE_OIM_ENABLED === 'true' || process.env.ORACLE_OIM_ENABLED
|
|
|
grant_type: 'authorization_code',
|
|
|
state: query.state
|
|
|
}
|
|
|
- }
|
|
|
- );
|
|
|
+ };
|
|
|
+ if (httpCa) {
|
|
|
+ postOptions['npmRequestOptions'] = { ca: httpCa };
|
|
|
+ }
|
|
|
+ response = HTTP.post(serverTokenEndpoint, postOptions);
|
|
|
} catch (err) {
|
|
|
throw _.extend(new Error("Failed to get token from OIDC " + serverTokenEndpoint + ": " + err.message),
|
|
|
{ response: err.response });
|
|
@@ -188,15 +201,16 @@ var getUserInfo = function (accessToken) {
|
|
|
}
|
|
|
var response;
|
|
|
try {
|
|
|
- response = HTTP.get(
|
|
|
- serverUserinfoEndpoint,
|
|
|
- {
|
|
|
+ var getOptions = {
|
|
|
headers: {
|
|
|
"User-Agent": userAgent,
|
|
|
"Authorization": "Bearer " + accessToken
|
|
|
}
|
|
|
- }
|
|
|
- );
|
|
|
+ };
|
|
|
+ if (httpCa) {
|
|
|
+ getOptions['npmRequestOptions'] = { ca: httpCa };
|
|
|
+ }
|
|
|
+ response = HTTP.get(serverUserinfoEndpoint, getOptions);
|
|
|
} catch (err) {
|
|
|
throw _.extend(new Error("Failed to fetch userinfo from OIDC " + serverUserinfoEndpoint + ": " + err.message),
|
|
|
{response: err.response});
|