k2hr3-api 1.0.38 → 1.0.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/ChangeLog +6 -0
- package/README.md +31 -31
- package/app.js +6 -10
- package/bin/run.sh +21 -21
- package/bin/www +1 -1
- package/config/k2hr3-init.sh.templ +5 -5
- package/eslint.config.mjs +68 -0
- package/lib/cacerts.js +8 -7
- package/lib/dummyuserapi.js +1 -1
- package/lib/ipwatch.js +1 -1
- package/lib/k2hr3acrutil.js +12 -14
- package/lib/k2hr3apiutil.js +5 -5
- package/lib/k2hr3cryptutil.js +2 -0
- package/lib/k2hr3dkc.js +25 -28
- package/lib/k2hr3template.js +54 -52
- package/lib/k2hr3tokens.js +4 -4
- package/lib/k8soidc.js +3 -3
- package/lib/openstackapiv2.js +51 -52
- package/lib/openstackapiv3.js +86 -87
- package/lib/openstackep.js +46 -46
- package/package.json +8 -8
- package/routes/acr.js +66 -110
- package/routes/debugVerify.js +12 -14
- package/routes/extdata.js +24 -40
- package/routes/list.js +24 -36
- package/routes/policy.js +72 -120
- package/routes/resource.js +110 -165
- package/routes/role.js +177 -295
- package/routes/service.js +54 -90
- package/routes/userTokens.js +1 -1
- package/routes/userdata.js +12 -20
- package/routes/version.js +39 -23
- package/tests/auto_control_subprocess.sh +9 -9
- package/tests/auto_init_config_json.sh +3 -3
- package/tests/auto_resource.js +417 -478
- package/tests/auto_role.js +55 -71
- package/tests/auto_template.sh +4 -4
- package/tests/auto_version.js +39 -23
- package/tests/k2hdkc_test_load.sh +9 -9
- package/tests/k2hr3template_test.sh +12 -12
- package/tests/k2hr3template_test_vars.js +60 -62
- package/tests/manual_acr_delete.js +11 -12
- package/tests/manual_acr_get.js +9 -10
- package/tests/manual_acr_postput.js +12 -13
- package/tests/manual_extdata_get.js +5 -6
- package/tests/manual_list_gethead.js +12 -13
- package/tests/manual_policy_delete.js +12 -13
- package/tests/manual_policy_gethead.js +27 -27
- package/tests/manual_policy_postput.js +21 -23
- package/tests/manual_resource_delete.js +11 -15
- package/tests/manual_resource_gethead.js +11 -14
- package/tests/manual_resource_postput.js +18 -21
- package/tests/manual_role_delete.js +22 -28
- package/tests/manual_role_gethead.js +53 -53
- package/tests/manual_role_postput.js +28 -31
- package/tests/manual_service_delete.js +11 -13
- package/tests/manual_service_gethead.js +13 -15
- package/tests/manual_service_postput.js +10 -11
- package/tests/manual_test.sh +10 -10
- package/tests/manual_userdata_get.js +14 -15
- package/tests/manual_usertoken_gethead.js +12 -14
- package/tests/manual_usertoken_postput.js +23 -26
- package/tests/manual_version_get.js +12 -13
- package/tests/run_local_test_k2hdkc.sh +4 -4
- package/tests/test.sh +12 -12
package/lib/k2hr3template.js
CHANGED
|
@@ -2921,24 +2921,22 @@ VariableFormulaObject.prototype.testAssemble = function(statementsArray)
|
|
|
2921
2921
|
}
|
|
2922
2922
|
var unitsArray = statementsArray[0].formUnits[0];
|
|
2923
2923
|
|
|
2924
|
-
|
|
2925
|
-
|
|
2926
|
-
0
|
|
2927
|
-
0
|
|
2928
|
-
0
|
|
2929
|
-
|
|
2930
|
-
null !== unitsArray[0].match(/[^0-9]+/) &&
|
|
2924
|
+
if( 0 !== unitsArray[0].indexOf(TEMPL_VALUESEP_KW) &&
|
|
2925
|
+
0 !== unitsArray[0].indexOf(TEMPL_HEX_PREFIX_KW) &&
|
|
2926
|
+
0 !== unitsArray[0].indexOf(TEMPL_HEX2_PREFIX_KW) &&
|
|
2927
|
+
0 !== unitsArray[0].indexOf(TEMPL_OCT_PREFIX_KW) &&
|
|
2928
|
+
0 !== unitsArray[0].indexOf(TEMPL_BIN_PREFIX_KW) &&
|
|
2929
|
+
null !== unitsArray[0].match(/[^0-9]+/) &&
|
|
2931
2930
|
!apiutil.compareCaseString(unitsArray[0], TEMPL_NULL_KW) &&
|
|
2932
2931
|
!apiutil.compareCaseString(unitsArray[0], TEMPL_TRUE_KW) &&
|
|
2933
2932
|
!apiutil.compareCaseString(unitsArray[0], TEMPL_FALSE_KW) &&
|
|
2934
|
-
!(2 < unitsArray[0].length &&
|
|
2935
|
-
|
|
2936
|
-
|
|
2937
|
-
)
|
|
2933
|
+
!(2 < unitsArray[0].length && (
|
|
2934
|
+
(0 === unitsArray[0].indexOf(TEMPL_SINGLE_QUOTE_KW) && TEMPL_SINGLE_QUOTE_KW === unitsArray[0].slice(-1)) ||
|
|
2935
|
+
(0 === unitsArray[0].indexOf(TEMPL_DOUBLE_QUOTE_KW) && TEMPL_DOUBLE_QUOTE_KW === unitsArray[0].slice(-1))
|
|
2936
|
+
))
|
|
2938
2937
|
){
|
|
2939
2938
|
return false;
|
|
2940
2939
|
}
|
|
2941
|
-
/* eslint-enable no-mixed-spaces-and-tabs */
|
|
2942
2940
|
|
|
2943
2941
|
return true;
|
|
2944
2942
|
};
|
|
@@ -3169,10 +3167,10 @@ VariableFormulaObject.prototype.assemble = function(statementsArray, parentObjec
|
|
|
3169
3167
|
selfFormUnits.push([unitsArray[0]]);
|
|
3170
3168
|
unitsArray.shift();
|
|
3171
3169
|
|
|
3172
|
-
}else if(2 < unitsArray[0].length &&
|
|
3173
|
-
|
|
3174
|
-
|
|
3175
|
-
{
|
|
3170
|
+
}else if(2 < unitsArray[0].length && (
|
|
3171
|
+
(0 === unitsArray[0].indexOf(TEMPL_SINGLE_QUOTE_KW) && TEMPL_SINGLE_QUOTE_KW === unitsArray[0].slice(-1)) ||
|
|
3172
|
+
(0 === unitsArray[0].indexOf(TEMPL_DOUBLE_QUOTE_KW) && TEMPL_DOUBLE_QUOTE_KW === unitsArray[0].slice(-1))
|
|
3173
|
+
)){
|
|
3176
3174
|
//------------------
|
|
3177
3175
|
// static string('...' or "...")
|
|
3178
3176
|
//------------------
|
|
@@ -3785,18 +3783,20 @@ CalculateFormulaObject.prototype.assemble = function(statementsArray, parentObje
|
|
|
3785
3783
|
//--------------------------
|
|
3786
3784
|
// '-', '/', '*', '%', '<<', '>>' calculation
|
|
3787
3785
|
//--------------------------
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
TEMPL_LSHIFT_KW
|
|
3794
|
-
|
|
3795
|
-
|
|
3796
|
-
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3786
|
+
this._calctype = (
|
|
3787
|
+
TEMPL_SUB_KW === unitsArray[0] ? FORMULA_CALC_TYPE_SUB :
|
|
3788
|
+
TEMPL_DIV_KW === unitsArray[0] ? FORMULA_CALC_TYPE_DIV :
|
|
3789
|
+
TEMPL_MUL_KW === unitsArray[0] ? FORMULA_CALC_TYPE_MUL :
|
|
3790
|
+
TEMPL_REM_KW === unitsArray[0] ? FORMULA_CALC_TYPE_REM :
|
|
3791
|
+
TEMPL_LSHIFT_KW === unitsArray[0] ? FORMULA_CALC_TYPE_LSHIFT: FORMULA_CALC_TYPE_RSHIFT
|
|
3792
|
+
);
|
|
3793
|
+
errstrkw = (
|
|
3794
|
+
FORMULA_CALC_TYPE_SUB === this.getCalculateType() ? 'SUB(-)' :
|
|
3795
|
+
FORMULA_CALC_TYPE_DIV === this.getCalculateType() ? 'DIV(/)' :
|
|
3796
|
+
FORMULA_CALC_TYPE_MUL === this.getCalculateType() ? 'MUL(*)' :
|
|
3797
|
+
FORMULA_CALC_TYPE_REM === this.getCalculateType() ? 'REM(%)' :
|
|
3798
|
+
FORMULA_CALC_TYPE_LSHIFT=== this.getCalculateType() ? 'LSHIFT(<<)' : 'RSHIFT(>>)'
|
|
3799
|
+
);
|
|
3800
3800
|
selfFormUnits.push([unitsArray[0]]);
|
|
3801
3801
|
unitsArray.shift();
|
|
3802
3802
|
|
|
@@ -4204,13 +4204,13 @@ CalculateFormulaObject.prototype.execute = function(varmap)
|
|
|
4204
4204
|
//--------------------------
|
|
4205
4205
|
// '-', '/', '*', '%', '<<', '>>' calculation
|
|
4206
4206
|
//--------------------------
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4207
|
+
errstrkw = (
|
|
4208
|
+
FORMULA_CALC_TYPE_SUB === this.getCalculateType() ? 'SUB(-)' :
|
|
4209
|
+
FORMULA_CALC_TYPE_DIV === this.getCalculateType() ? 'DIV(/)' :
|
|
4210
|
+
FORMULA_CALC_TYPE_MUL === this.getCalculateType() ? 'MUL(*)' :
|
|
4211
4211
|
FORMULA_CALC_TYPE_REM === this.getCalculateType() ? 'REM(%)' :
|
|
4212
|
-
|
|
4213
|
-
|
|
4212
|
+
FORMULA_CALC_TYPE_LSHIFT=== this.getCalculateType() ? 'LSHIFT(<<)' : 'RSHIFT(>>)'
|
|
4213
|
+
);
|
|
4214
4214
|
|
|
4215
4215
|
// left template object
|
|
4216
4216
|
if(this.hasLeftTemplObject()){
|
|
@@ -4549,14 +4549,16 @@ ConditionFormulaObject.prototype.assemble = function(statementsArray, parentObje
|
|
|
4549
4549
|
//--------------------------
|
|
4550
4550
|
// '<', '>', '<=', '>=' condition
|
|
4551
4551
|
//--------------------------
|
|
4552
|
-
|
|
4553
|
-
|
|
4554
|
-
|
|
4555
|
-
|
|
4556
|
-
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4552
|
+
this._condtype = (
|
|
4553
|
+
TEMPL_LESS_KW === unitsArray[0] ? FORMULA_COND_TYPE_LESS :
|
|
4554
|
+
TEMPL_GREAT_KW === unitsArray[0] ? FORMULA_COND_TYPE_GREAT :
|
|
4555
|
+
TEMPL_LESSEQ_KW === unitsArray[0] ? FORMULA_COND_TYPE_LESSEQ: FORMULA_COND_TYPE_GREATEQ
|
|
4556
|
+
);
|
|
4557
|
+
errstrkw = (
|
|
4558
|
+
FORMULA_COND_TYPE_LESS === this.getConditionType() ? 'LESS(<)' :
|
|
4559
|
+
FORMULA_COND_TYPE_GREAT === this.getConditionType() ? 'GREAT(>)' :
|
|
4560
|
+
FORMULA_COND_TYPE_LESSEQ=== this.getConditionType() ? 'LESSEQ(<=)' : 'GREATEQ(<=)'
|
|
4561
|
+
);
|
|
4560
4562
|
selfFormUnits.push([unitsArray[0]]);
|
|
4561
4563
|
unitsArray.shift();
|
|
4562
4564
|
|
|
@@ -4725,16 +4727,16 @@ ConditionFormulaObject.prototype.execute = function(varmap)
|
|
|
4725
4727
|
var right_resobj= null;
|
|
4726
4728
|
var tmpval;
|
|
4727
4729
|
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
FORMULA_COND_TYPE_LESSEQ
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4730
|
+
var errstrkw = (
|
|
4731
|
+
FORMULA_COND_TYPE_AND === this.getConditionType() ? 'AND(&&)' :
|
|
4732
|
+
FORMULA_COND_TYPE_OR === this.getConditionType() ? 'OR(||)' :
|
|
4733
|
+
FORMULA_COND_TYPE_LESS === this.getConditionType() ? 'LESS(<)' :
|
|
4734
|
+
FORMULA_COND_TYPE_GREAT === this.getConditionType() ? 'GREAT(>)' :
|
|
4735
|
+
FORMULA_COND_TYPE_LESSEQ === this.getConditionType() ? 'LESSEQ(<=)' :
|
|
4736
|
+
FORMULA_COND_TYPE_GREATEQ === this.getConditionType() ? 'GREATEQ(<=)' :
|
|
4737
|
+
FORMULA_COND_TYPE_EQUAL === this.getConditionType() ? 'EQUAL(==)' :
|
|
4738
|
+
FORMULA_COND_TYPE_NOTEQ === this.getConditionType() ? 'NOTEQ(!=)' : 'UNKNOWN'
|
|
4739
|
+
);
|
|
4738
4740
|
|
|
4739
4741
|
// left template object
|
|
4740
4742
|
if(this.hasLeftTemplObject()){
|
package/lib/k2hr3tokens.js
CHANGED
|
@@ -213,8 +213,8 @@ function rawGetScopedUserToken(unscopedtoken, username, userid, tenant, callback
|
|
|
213
213
|
// check tenants(and initialize tenants)
|
|
214
214
|
var _tenant_id = null;
|
|
215
215
|
var _tenant_name = null;
|
|
216
|
-
var _tenant_desc = null;
|
|
217
|
-
var _tenant_display = null;
|
|
216
|
+
var _tenant_desc = null;
|
|
217
|
+
var _tenant_display = null;
|
|
218
218
|
var _tenant_list = new Array(0);
|
|
219
219
|
for(var cnt = 0; cnt < jsonres.length; ++cnt){
|
|
220
220
|
if(!apiutil.isSafeEntity(jsonres[cnt])){
|
|
@@ -232,8 +232,8 @@ function rawGetScopedUserToken(unscopedtoken, username, userid, tenant, callback
|
|
|
232
232
|
// find target tenant
|
|
233
233
|
_tenant_id = jsonres[cnt].id;
|
|
234
234
|
_tenant_name = jsonres[cnt].name;
|
|
235
|
-
_tenant_desc = jsonres[cnt].description;
|
|
236
|
-
_tenant_display = jsonres[cnt].display;
|
|
235
|
+
_tenant_desc = jsonres[cnt].description;
|
|
236
|
+
_tenant_display = jsonres[cnt].display;
|
|
237
237
|
}
|
|
238
238
|
_tenant_list.push(jsonres[cnt].name);
|
|
239
239
|
}
|
package/lib/k8soidc.js
CHANGED
|
@@ -951,7 +951,7 @@ function rawGetUserTenantListK8s(unscopedtoken, callback)
|
|
|
951
951
|
// uname: username
|
|
952
952
|
// passwd: passwd
|
|
953
953
|
//
|
|
954
|
-
exports.getUserUnscopedToken = function(uname, passwd, callback)
|
|
954
|
+
exports.getUserUnscopedToken = function(uname, passwd, callback)
|
|
955
955
|
{
|
|
956
956
|
var error = new Error('getUserUnscopedToken is not implemented');
|
|
957
957
|
r3logger.elog(error.message);
|
|
@@ -973,7 +973,7 @@ exports.getUserUnscopedTokenByToken = function(token, callback)
|
|
|
973
973
|
//
|
|
974
974
|
// tenantid: not used
|
|
975
975
|
//
|
|
976
|
-
exports.getUserScopedToken = function(unscopedtoken, tenantname, tenantid, callback)
|
|
976
|
+
exports.getUserScopedToken = function(unscopedtoken, tenantname, tenantid, callback)
|
|
977
977
|
{
|
|
978
978
|
return rawGetUserScopedTokenK8s(unscopedtoken, tenantname, callback);
|
|
979
979
|
};
|
|
@@ -997,7 +997,7 @@ exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
|
997
997
|
//
|
|
998
998
|
// Get tenant list
|
|
999
999
|
//
|
|
1000
|
-
exports.getUserTenantList = function(unscopedtoken, userid, callback)
|
|
1000
|
+
exports.getUserTenantList = function(unscopedtoken, userid, callback)
|
|
1001
1001
|
{
|
|
1002
1002
|
return rawGetUserTenantListK8s(unscopedtoken, callback);
|
|
1003
1003
|
};
|
package/lib/openstackapiv2.js
CHANGED
|
@@ -109,27 +109,27 @@ function rawGetUserUnscopedTokenV2(uname, passwd, callback)
|
|
|
109
109
|
//r3logger.dlog(keystone_ep);
|
|
110
110
|
|
|
111
111
|
// build parameters for request
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
112
|
+
var body = {
|
|
113
|
+
'auth': {
|
|
114
|
+
'tenantName': '', // unscoped token by no tenant name
|
|
115
|
+
'passwordCredentials': {
|
|
116
|
+
'username': _uname,
|
|
117
|
+
'password': _passwd
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
121
|
var strbody = JSON.stringify(body);
|
|
122
122
|
var headers = {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var options = {
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
123
|
+
'Content-Type': 'application/json',
|
|
124
|
+
'Content-Length': strbody.length
|
|
125
|
+
};
|
|
126
|
+
var options = {
|
|
127
|
+
'host': keystone_ep.hostname,
|
|
128
|
+
'port': keystone_ep.port,
|
|
129
|
+
'path': keystone_ep.pathname + '/v2.0/tokens',
|
|
130
|
+
'method': 'POST',
|
|
131
|
+
'headers': headers
|
|
132
|
+
};
|
|
133
133
|
|
|
134
134
|
var httpobj;
|
|
135
135
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -322,26 +322,26 @@ function rawGetUserScopedTokenV2(unscopedtoken, tenant, callback)
|
|
|
322
322
|
//r3logger.dlog(keystone_ep);
|
|
323
323
|
|
|
324
324
|
// build parameters for request
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
325
|
+
var body = {
|
|
326
|
+
'auth': {
|
|
327
|
+
'tenantName': _tenant,
|
|
328
|
+
'token': {
|
|
329
|
+
'id': _unscopedtoken
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
};
|
|
333
333
|
var strbody = JSON.stringify(body);
|
|
334
334
|
var headers = {
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
var options = {
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
335
|
+
'Content-Type': 'application/json',
|
|
336
|
+
'Content-Length': strbody.length
|
|
337
|
+
};
|
|
338
|
+
var options = {
|
|
339
|
+
'host': keystone_ep.hostname,
|
|
340
|
+
'port': keystone_ep.port,
|
|
341
|
+
'path': keystone_ep.pathname + '/v2.0/tokens',
|
|
342
|
+
'method': 'POST',
|
|
343
|
+
'headers': headers
|
|
344
|
+
};
|
|
345
345
|
|
|
346
346
|
var httpobj;
|
|
347
347
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -601,19 +601,18 @@ function rawGetUserTenantListV2(unscopedtoken, callback)
|
|
|
601
601
|
//r3logger.dlog(keystone_ep);
|
|
602
602
|
|
|
603
603
|
// build parameters for request
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
/* eslint-enable indent, no-mixed-spaces-and-tabs */
|
|
604
|
+
var headers = {
|
|
605
|
+
'Content-Type': 'application/json',
|
|
606
|
+
'X-Auth-Token': _unscopedtoken,
|
|
607
|
+
'Content-Length': 0
|
|
608
|
+
};
|
|
609
|
+
var options = {
|
|
610
|
+
'host': keystone_ep.hostname,
|
|
611
|
+
'port': keystone_ep.port,
|
|
612
|
+
'path': keystone_ep.pathname + '/v2.0/tenants',
|
|
613
|
+
'method': 'GET',
|
|
614
|
+
'headers': headers
|
|
615
|
+
};
|
|
617
616
|
|
|
618
617
|
var httpobj;
|
|
619
618
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -713,7 +712,7 @@ exports.getUserUnscopedToken = function(uname, passwd, callback)
|
|
|
713
712
|
//
|
|
714
713
|
// update token : not implemented
|
|
715
714
|
//
|
|
716
|
-
exports.getUserUnscopedTokenByToken = function(token, callback)
|
|
715
|
+
exports.getUserUnscopedTokenByToken = function(token, callback)
|
|
717
716
|
{
|
|
718
717
|
var error = new Error('getUserUnscopedTokenByToken is not implemented');
|
|
719
718
|
r3logger.elog(error.message);
|
|
@@ -742,7 +741,7 @@ exports.verifyUserTokenPublisher = function(token_seed)
|
|
|
742
741
|
//
|
|
743
742
|
// tenant is not used.
|
|
744
743
|
//
|
|
745
|
-
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
744
|
+
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
746
745
|
{
|
|
747
746
|
return rawVerifyUserTokenV2(user, token, token_seed);
|
|
748
747
|
};
|
package/lib/openstackapiv3.js
CHANGED
|
@@ -115,34 +115,34 @@ function rawGetUserUnscopedTokenV3(uname, passwd, callback)
|
|
|
115
115
|
//r3logger.dlog(keystone_ep);
|
|
116
116
|
|
|
117
117
|
// build parameters for request
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
118
|
+
var body = {
|
|
119
|
+
'auth': {
|
|
120
|
+
'identity': {
|
|
121
|
+
'password': {
|
|
122
|
+
'user': {
|
|
123
|
+
'domain': {
|
|
124
|
+
'id': 'default'
|
|
125
|
+
},
|
|
126
|
+
'password': _passwd,
|
|
127
|
+
'name': _uname
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
'methods': ['password']
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
134
|
var strbody = JSON.stringify(body);
|
|
135
135
|
var headers = {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
var options = {
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
136
|
+
'Content-Type': 'application/json',
|
|
137
|
+
'Content-Length': strbody.length
|
|
138
|
+
};
|
|
139
|
+
var options = {
|
|
140
|
+
'host': keystone_ep.hostname,
|
|
141
|
+
'port': keystone_ep.port,
|
|
142
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
143
|
+
'method': 'POST',
|
|
144
|
+
'headers': headers
|
|
145
|
+
};
|
|
146
146
|
|
|
147
147
|
var httpobj;
|
|
148
148
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -314,28 +314,28 @@ function rawGetUserUnscopedTokenByOstokenV3(ostoken, callback)
|
|
|
314
314
|
//r3logger.dlog(keystone_ep);
|
|
315
315
|
|
|
316
316
|
// build parameters for request
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
317
|
+
var body = {
|
|
318
|
+
'auth': {
|
|
319
|
+
'identity': {
|
|
320
|
+
'token': {
|
|
321
|
+
'id': _ostoken,
|
|
322
|
+
},
|
|
323
|
+
'methods': ['token']
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
};
|
|
327
327
|
var strbody = JSON.stringify(body);
|
|
328
328
|
var headers = {
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
var options = {
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
329
|
+
'Content-Type': 'application/json',
|
|
330
|
+
'Content-Length': strbody.length
|
|
331
|
+
};
|
|
332
|
+
var options = {
|
|
333
|
+
'host': keystone_ep.hostname,
|
|
334
|
+
'port': keystone_ep.port,
|
|
335
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
336
|
+
'method': 'POST',
|
|
337
|
+
'headers': headers
|
|
338
|
+
};
|
|
339
339
|
|
|
340
340
|
var httpobj;
|
|
341
341
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -558,35 +558,35 @@ function rawGetUserScopedTokenV3(unscopedtoken, tenantid, callback)
|
|
|
558
558
|
//r3logger.dlog(keystone_ep);
|
|
559
559
|
|
|
560
560
|
// build parameters for request
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
561
|
+
var body = {
|
|
562
|
+
'auth': {
|
|
563
|
+
'identity': {
|
|
564
|
+
'methods': [
|
|
565
|
+
'token'
|
|
566
|
+
],
|
|
567
|
+
'token': {
|
|
568
|
+
'id': _unscopedtoken
|
|
569
|
+
}
|
|
570
|
+
},
|
|
571
|
+
'scope': {
|
|
572
|
+
'project': {
|
|
573
|
+
'id': _tenantid
|
|
574
|
+
}
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
};
|
|
578
578
|
var strbody = JSON.stringify(body);
|
|
579
579
|
var headers = {
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
var options = {
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
580
|
+
'Content-Type': 'application/json',
|
|
581
|
+
'Content-Length': strbody.length
|
|
582
|
+
};
|
|
583
|
+
var options = {
|
|
584
|
+
'host': keystone_ep.hostname,
|
|
585
|
+
'port': keystone_ep.port,
|
|
586
|
+
'path': keystone_ep.pathname + '/v3/auth/tokens',
|
|
587
|
+
'method': 'POST',
|
|
588
|
+
'headers': headers
|
|
589
|
+
};
|
|
590
590
|
|
|
591
591
|
var httpobj;
|
|
592
592
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -871,19 +871,18 @@ function rawGetUserTenantListV3(unscopedtoken, userid, callback)
|
|
|
871
871
|
//r3logger.dlog(keystone_ep);
|
|
872
872
|
|
|
873
873
|
// build parameters for request
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
/* eslint-enable indent, no-mixed-spaces-and-tabs */
|
|
874
|
+
var headers = {
|
|
875
|
+
'Content-Type': 'application/json',
|
|
876
|
+
'X-Auth-Token': _unscopedtoken,
|
|
877
|
+
'Content-Length': 0
|
|
878
|
+
};
|
|
879
|
+
var options = {
|
|
880
|
+
'host': keystone_ep.hostname,
|
|
881
|
+
'port': keystone_ep.port,
|
|
882
|
+
'path': keystone_ep.pathname + '/v3/users/' + _userid + '/projects',
|
|
883
|
+
'method': 'GET',
|
|
884
|
+
'headers': headers
|
|
885
|
+
};
|
|
887
886
|
|
|
888
887
|
var httpobj;
|
|
889
888
|
if(apiutil.compareCaseString('https:', keystone_ep.protocol)){
|
|
@@ -1010,7 +1009,7 @@ exports.verifyUserTokenPublisher = function(token_seed)
|
|
|
1010
1009
|
//
|
|
1011
1010
|
// tenant is not used.
|
|
1012
1011
|
//
|
|
1013
|
-
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
1012
|
+
exports.verifyUserToken = function(user, tenant, token, token_seed)
|
|
1014
1013
|
{
|
|
1015
1014
|
return rawVerifyUserTokenV3(user, token, token_seed);
|
|
1016
1015
|
};
|