@hitchy/plugin-auth 0.3.0 → 0.3.3
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/api/policy/authentication.js +81 -27
- package/api/service/auth/manager.js +36 -4
- package/api/service/authentication/passport.js +6 -5
- package/api/service/authentication/strategies.js +57 -34
- package/api/service/authorization/tree.js +8 -8
- package/coverage/index.html +45 -45
- package/coverage/plugin-auth/api/controller/index.html +1 -1
- package/coverage/plugin-auth/api/controller/user.js.html +53 -53
- package/coverage/plugin-auth/api/model/authorization/index.html +1 -1
- package/coverage/plugin-auth/api/model/authorization/rule.js.html +31 -31
- package/coverage/plugin-auth/api/model/index.html +1 -1
- package/coverage/plugin-auth/api/model/role.js.html +29 -29
- package/coverage/plugin-auth/api/model/user-to-role.js.html +21 -21
- package/coverage/plugin-auth/api/model/user.js.html +192 -192
- package/coverage/plugin-auth/api/policy/authentication.js.html +281 -119
- package/coverage/plugin-auth/api/policy/authorization.js.html +25 -25
- package/coverage/plugin-auth/api/policy/index.html +18 -18
- package/coverage/plugin-auth/api/policy/user.js.html +37 -37
- package/coverage/plugin-auth/api/service/auth/index.html +16 -16
- package/coverage/plugin-auth/api/service/auth/manager.js.html +293 -197
- package/coverage/plugin-auth/api/service/authentication/index.html +25 -25
- package/coverage/plugin-auth/api/service/authentication/passport.js.html +55 -52
- package/coverage/plugin-auth/api/service/authentication/strategies.js.html +204 -135
- package/coverage/plugin-auth/api/service/authorization/index.html +1 -1
- package/coverage/plugin-auth/api/service/authorization/node.js.html +136 -136
- package/coverage/plugin-auth/api/service/authorization/policy-generator.js.html +29 -29
- package/coverage/plugin-auth/api/service/authorization/tree.js.html +140 -140
- package/coverage/plugin-auth/config/auth.js.html +17 -17
- package/coverage/plugin-auth/config/index.html +1 -1
- package/coverage/plugin-auth/index.html +15 -15
- package/coverage/plugin-auth/index.js.html +94 -55
- package/coverage/tmp/coverage-16252-1648499208727-0.json +1 -0
- package/index.js +17 -4
- package/package.json +2 -2
- package/coverage/tmp/coverage-6744-1648396809135-0.json +0 -1
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">91.37% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>212/232</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">83.33% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>30/36</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
40
|
<span class="strong">100% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>7/7</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">91.37% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>212/232</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -236,66 +236,109 @@
|
|
|
236
236
|
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
237
|
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
238
|
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
-
<a name='L180'></a><a href='#L180'>180</a
|
|
239
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
244
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
245
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
246
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
247
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
248
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
249
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
250
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
251
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
252
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
253
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
254
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
255
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
256
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
257
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
258
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
259
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
260
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
261
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
262
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
263
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
264
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
265
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
266
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
267
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
268
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
269
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
270
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
271
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
272
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
273
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
274
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
275
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
276
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
277
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
278
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
279
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
280
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
281
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
282
|
+
<a name='L223'></a><a href='#L223'>223</a>
|
|
283
|
+
<a name='L224'></a><a href='#L224'>224</a>
|
|
284
|
+
<a name='L225'></a><a href='#L225'>225</a>
|
|
285
|
+
<a name='L226'></a><a href='#L226'>226</a>
|
|
286
|
+
<a name='L227'></a><a href='#L227'>227</a>
|
|
287
|
+
<a name='L228'></a><a href='#L228'>228</a>
|
|
288
|
+
<a name='L229'></a><a href='#L229'>229</a>
|
|
289
|
+
<a name='L230'></a><a href='#L230'>230</a>
|
|
290
|
+
<a name='L231'></a><a href='#L231'>231</a>
|
|
291
|
+
<a name='L232'></a><a href='#L232'>232</a>
|
|
292
|
+
<a name='L233'></a><a href='#L233'>233</a>
|
|
293
|
+
<a name='L234'></a><a href='#L234'>234</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
240
294
|
<span class="cline-any cline-yes">1x</span>
|
|
241
295
|
<span class="cline-any cline-yes">1x</span>
|
|
242
|
-
<span class="cline-any cline-yes">
|
|
243
|
-
<span class="cline-any cline-yes">
|
|
244
|
-
<span class="cline-any cline-yes">
|
|
245
|
-
<span class="cline-any cline-yes">
|
|
246
|
-
<span class="cline-any cline-yes">
|
|
247
|
-
<span class="cline-any cline-yes">
|
|
248
|
-
<span class="cline-any cline-yes">
|
|
249
|
-
<span class="cline-any cline-yes">
|
|
250
|
-
<span class="cline-any cline-yes">
|
|
251
|
-
<span class="cline-any cline-yes">
|
|
252
|
-
<span class="cline-any cline-yes">
|
|
253
|
-
<span class="cline-any cline-yes">
|
|
254
|
-
<span class="cline-any cline-yes">
|
|
255
|
-
<span class="cline-any cline-yes">
|
|
256
|
-
<span class="cline-any cline-yes">
|
|
257
|
-
<span class="cline-any cline-yes">
|
|
258
|
-
<span class="cline-any cline-yes">
|
|
259
|
-
<span class="cline-any cline-yes">
|
|
260
|
-
<span class="cline-any cline-yes">
|
|
261
|
-
<span class="cline-any cline-yes">
|
|
262
|
-
<span class="cline-any cline-yes">
|
|
296
|
+
<span class="cline-any cline-yes">19x</span>
|
|
297
|
+
<span class="cline-any cline-yes">19x</span>
|
|
298
|
+
<span class="cline-any cline-yes">19x</span>
|
|
299
|
+
<span class="cline-any cline-yes">19x</span>
|
|
300
|
+
<span class="cline-any cline-yes">19x</span>
|
|
301
|
+
<span class="cline-any cline-yes">19x</span>
|
|
302
|
+
<span class="cline-any cline-yes">19x</span>
|
|
303
|
+
<span class="cline-any cline-yes">19x</span>
|
|
304
|
+
<span class="cline-any cline-yes">19x</span>
|
|
305
|
+
<span class="cline-any cline-yes">19x</span>
|
|
306
|
+
<span class="cline-any cline-yes">19x</span>
|
|
307
|
+
<span class="cline-any cline-yes">19x</span>
|
|
308
|
+
<span class="cline-any cline-yes">19x</span>
|
|
309
|
+
<span class="cline-any cline-yes">19x</span>
|
|
310
|
+
<span class="cline-any cline-yes">19x</span>
|
|
311
|
+
<span class="cline-any cline-yes">19x</span>
|
|
312
|
+
<span class="cline-any cline-yes">19x</span>
|
|
313
|
+
<span class="cline-any cline-yes">19x</span>
|
|
314
|
+
<span class="cline-any cline-yes">19x</span>
|
|
315
|
+
<span class="cline-any cline-yes">19x</span>
|
|
316
|
+
<span class="cline-any cline-yes">96x</span>
|
|
263
317
|
<span class="cline-any cline-no"> </span>
|
|
264
318
|
<span class="cline-any cline-no"> </span>
|
|
265
319
|
<span class="cline-any cline-no"> </span>
|
|
266
|
-
<span class="cline-any cline-yes">
|
|
267
|
-
<span class="cline-any cline-yes">
|
|
268
|
-
<span class="cline-any cline-yes">
|
|
269
|
-
<span class="cline-any cline-yes">
|
|
270
|
-
<span class="cline-any cline-yes">
|
|
271
|
-
<span class="cline-any cline-yes">
|
|
272
|
-
<span class="cline-any cline-yes">
|
|
320
|
+
<span class="cline-any cline-yes">96x</span>
|
|
321
|
+
<span class="cline-any cline-yes">96x</span>
|
|
322
|
+
<span class="cline-any cline-yes">96x</span>
|
|
323
|
+
<span class="cline-any cline-yes">96x</span>
|
|
324
|
+
<span class="cline-any cline-yes">96x</span>
|
|
325
|
+
<span class="cline-any cline-yes">96x</span>
|
|
326
|
+
<span class="cline-any cline-yes">96x</span>
|
|
273
327
|
<span class="cline-any cline-no"> </span>
|
|
274
|
-
<span class="cline-any cline-yes">
|
|
275
|
-
<span class="cline-any cline-yes">
|
|
276
|
-
<span class="cline-any cline-yes">
|
|
328
|
+
<span class="cline-any cline-yes">96x</span>
|
|
329
|
+
<span class="cline-any cline-yes">96x</span>
|
|
330
|
+
<span class="cline-any cline-yes">96x</span>
|
|
277
331
|
<span class="cline-any cline-yes">35x</span>
|
|
278
332
|
<span class="cline-any cline-yes">35x</span>
|
|
279
333
|
<span class="cline-any cline-yes">35x</span>
|
|
280
334
|
<span class="cline-any cline-yes">35x</span>
|
|
281
335
|
<span class="cline-any cline-yes">35x</span>
|
|
282
|
-
<span class="cline-any cline-yes">
|
|
283
|
-
<span class="cline-any cline-yes">
|
|
284
|
-
<span class="cline-any cline-yes">
|
|
285
|
-
<span class="cline-any cline-yes">
|
|
286
|
-
<span class="cline-any cline-yes">
|
|
287
|
-
<span class="cline-any cline-yes">
|
|
288
|
-
<span class="cline-any cline-yes">18x</span>
|
|
289
|
-
<span class="cline-any cline-yes">18x</span>
|
|
290
|
-
<span class="cline-any cline-yes">18x</span>
|
|
291
|
-
<span class="cline-any cline-yes">18x</span>
|
|
292
|
-
<span class="cline-any cline-yes">18x</span>
|
|
293
|
-
<span class="cline-any cline-yes">18x</span>
|
|
294
|
-
<span class="cline-any cline-yes">18x</span>
|
|
295
|
-
<span class="cline-any cline-yes">18x</span>
|
|
296
|
-
<span class="cline-any cline-yes">18x</span>
|
|
297
|
-
<span class="cline-any cline-yes">18x</span>
|
|
298
|
-
<span class="cline-any cline-yes">18x</span>
|
|
336
|
+
<span class="cline-any cline-yes">96x</span>
|
|
337
|
+
<span class="cline-any cline-yes">96x</span>
|
|
338
|
+
<span class="cline-any cline-yes">96x</span>
|
|
339
|
+
<span class="cline-any cline-yes">96x</span>
|
|
340
|
+
<span class="cline-any cline-yes">96x</span>
|
|
341
|
+
<span class="cline-any cline-yes">96x</span>
|
|
299
342
|
<span class="cline-any cline-yes">19x</span>
|
|
300
343
|
<span class="cline-any cline-yes">19x</span>
|
|
301
344
|
<span class="cline-any cline-yes">19x</span>
|
|
@@ -307,29 +350,64 @@
|
|
|
307
350
|
<span class="cline-any cline-yes">19x</span>
|
|
308
351
|
<span class="cline-any cline-yes">19x</span>
|
|
309
352
|
<span class="cline-any cline-yes">19x</span>
|
|
310
|
-
<span class="cline-any cline-yes">
|
|
353
|
+
<span class="cline-any cline-yes">96x</span>
|
|
354
|
+
<span class="cline-any cline-yes">35x</span>
|
|
355
|
+
<span class="cline-any cline-yes">35x</span>
|
|
356
|
+
<span class="cline-any cline-yes">35x</span>
|
|
357
|
+
<span class="cline-any cline-yes">61x</span>
|
|
358
|
+
<span class="cline-any cline-yes">61x</span>
|
|
359
|
+
<span class="cline-any cline-yes">96x</span>
|
|
360
|
+
<span class="cline-any cline-yes">59x</span>
|
|
361
|
+
<span class="cline-any cline-yes">59x</span>
|
|
362
|
+
<span class="cline-any cline-yes">59x</span>
|
|
363
|
+
<span class="cline-any cline-yes">2x</span>
|
|
364
|
+
<span class="cline-any cline-yes">2x</span>
|
|
365
|
+
<span class="cline-any cline-yes">2x</span>
|
|
366
|
+
<span class="cline-any cline-yes">96x</span>
|
|
311
367
|
<span class="cline-any cline-no"> </span>
|
|
312
368
|
<span class="cline-any cline-no"> </span>
|
|
313
369
|
<span class="cline-any cline-no"> </span>
|
|
370
|
+
<span class="cline-any cline-yes">2x</span>
|
|
371
|
+
<span class="cline-any cline-yes">2x</span>
|
|
372
|
+
<span class="cline-any cline-yes">2x</span>
|
|
373
|
+
<span class="cline-any cline-yes">1x</span>
|
|
374
|
+
<span class="cline-any cline-yes">1x</span>
|
|
375
|
+
<span class="cline-any cline-yes">1x</span>
|
|
376
|
+
<span class="cline-any cline-yes">2x</span>
|
|
377
|
+
<span class="cline-any cline-yes">2x</span>
|
|
378
|
+
<span class="cline-any cline-yes">96x</span>
|
|
379
|
+
<span class="cline-any cline-yes">19x</span>
|
|
380
|
+
<span class="cline-any cline-yes">19x</span>
|
|
381
|
+
<span class="cline-any cline-yes">19x</span>
|
|
382
|
+
<span class="cline-any cline-yes">19x</span>
|
|
383
|
+
<span class="cline-any cline-yes">19x</span>
|
|
384
|
+
<span class="cline-any cline-yes">19x</span>
|
|
385
|
+
<span class="cline-any cline-yes">19x</span>
|
|
386
|
+
<span class="cline-any cline-yes">19x</span>
|
|
387
|
+
<span class="cline-any cline-yes">19x</span>
|
|
388
|
+
<span class="cline-any cline-yes">19x</span>
|
|
389
|
+
<span class="cline-any cline-yes">19x</span>
|
|
390
|
+
<span class="cline-any cline-yes">19x</span>
|
|
391
|
+
<span class="cline-any cline-yes">19x</span>
|
|
392
|
+
<span class="cline-any cline-yes">19x</span>
|
|
393
|
+
<span class="cline-any cline-yes">19x</span>
|
|
394
|
+
<span class="cline-any cline-yes">19x</span>
|
|
395
|
+
<span class="cline-any cline-yes">19x</span>
|
|
396
|
+
<span class="cline-any cline-yes">19x</span>
|
|
397
|
+
<span class="cline-any cline-yes">19x</span>
|
|
398
|
+
<span class="cline-any cline-yes">19x</span>
|
|
399
|
+
<span class="cline-any cline-yes">19x</span>
|
|
314
400
|
<span class="cline-any cline-yes">11x</span>
|
|
401
|
+
<span class="cline-any cline-no"> </span>
|
|
315
402
|
<span class="cline-any cline-yes">11x</span>
|
|
316
403
|
<span class="cline-any cline-yes">11x</span>
|
|
317
404
|
<span class="cline-any cline-yes">11x</span>
|
|
405
|
+
<span class="cline-any cline-no"> </span>
|
|
318
406
|
<span class="cline-any cline-yes">11x</span>
|
|
319
407
|
<span class="cline-any cline-yes">11x</span>
|
|
320
408
|
<span class="cline-any cline-yes">11x</span>
|
|
321
409
|
<span class="cline-any cline-yes">11x</span>
|
|
322
410
|
<span class="cline-any cline-yes">11x</span>
|
|
323
|
-
<span class="cline-any cline-yes">11x</span>
|
|
324
|
-
<span class="cline-any cline-yes">11x</span>
|
|
325
|
-
<span class="cline-any cline-yes">11x</span>
|
|
326
|
-
<span class="cline-any cline-yes">11x</span>
|
|
327
|
-
<span class="cline-any cline-yes">11x</span>
|
|
328
|
-
<span class="cline-any cline-yes">11x</span>
|
|
329
|
-
<span class="cline-any cline-yes">11x</span>
|
|
330
|
-
<span class="cline-any cline-yes">11x</span>
|
|
331
|
-
<span class="cline-any cline-no"> </span>
|
|
332
|
-
<span class="cline-any cline-no"> </span>
|
|
333
411
|
<span class="cline-any cline-yes">19x</span>
|
|
334
412
|
<span class="cline-any cline-yes">19x</span>
|
|
335
413
|
<span class="cline-any cline-yes">19x</span>
|
|
@@ -346,16 +424,46 @@
|
|
|
346
424
|
<span class="cline-any cline-no"> </span>
|
|
347
425
|
<span class="cline-any cline-yes">19x</span>
|
|
348
426
|
<span class="cline-any cline-yes">19x</span>
|
|
349
|
-
<span class="cline-any cline-yes">
|
|
350
|
-
<span class="cline-any cline-yes">
|
|
351
|
-
<span class="cline-any cline-yes">
|
|
352
|
-
<span class="cline-any cline-yes">
|
|
353
|
-
<span class="cline-any cline-yes">
|
|
354
|
-
<span class="cline-any cline-yes">
|
|
355
|
-
<span class="cline-any cline-yes">
|
|
356
|
-
<span class="cline-any cline-yes">
|
|
357
|
-
<span class="cline-any cline-yes">
|
|
358
|
-
<span class="cline-any cline-yes">
|
|
427
|
+
<span class="cline-any cline-yes">19x</span>
|
|
428
|
+
<span class="cline-any cline-yes">19x</span>
|
|
429
|
+
<span class="cline-any cline-yes">19x</span>
|
|
430
|
+
<span class="cline-any cline-yes">19x</span>
|
|
431
|
+
<span class="cline-any cline-yes">19x</span>
|
|
432
|
+
<span class="cline-any cline-yes">19x</span>
|
|
433
|
+
<span class="cline-any cline-yes">19x</span>
|
|
434
|
+
<span class="cline-any cline-yes">19x</span>
|
|
435
|
+
<span class="cline-any cline-yes">19x</span>
|
|
436
|
+
<span class="cline-any cline-yes">19x</span>
|
|
437
|
+
<span class="cline-any cline-yes">19x</span>
|
|
438
|
+
<span class="cline-any cline-yes">12x</span>
|
|
439
|
+
<span class="cline-any cline-yes">12x</span>
|
|
440
|
+
<span class="cline-any cline-yes">12x</span>
|
|
441
|
+
<span class="cline-any cline-yes">12x</span>
|
|
442
|
+
<span class="cline-any cline-yes">12x</span>
|
|
443
|
+
<span class="cline-any cline-yes">12x</span>
|
|
444
|
+
<span class="cline-any cline-yes">12x</span>
|
|
445
|
+
<span class="cline-any cline-yes">12x</span>
|
|
446
|
+
<span class="cline-any cline-yes">12x</span>
|
|
447
|
+
<span class="cline-any cline-yes">12x</span>
|
|
448
|
+
<span class="cline-any cline-yes">12x</span>
|
|
449
|
+
<span class="cline-any cline-yes">12x</span>
|
|
450
|
+
<span class="cline-any cline-yes">12x</span>
|
|
451
|
+
<span class="cline-any cline-yes">12x</span>
|
|
452
|
+
<span class="cline-any cline-yes">12x</span>
|
|
453
|
+
<span class="cline-any cline-yes">12x</span>
|
|
454
|
+
<span class="cline-any cline-no"> </span>
|
|
455
|
+
<span class="cline-any cline-no"> </span>
|
|
456
|
+
<span class="cline-any cline-yes">12x</span>
|
|
457
|
+
<span class="cline-any cline-yes">19x</span>
|
|
458
|
+
<span class="cline-any cline-yes">19x</span>
|
|
459
|
+
<span class="cline-any cline-yes">19x</span>
|
|
460
|
+
<span class="cline-any cline-yes">19x</span>
|
|
461
|
+
<span class="cline-any cline-yes">19x</span>
|
|
462
|
+
<span class="cline-any cline-yes">19x</span>
|
|
463
|
+
<span class="cline-any cline-yes">19x</span>
|
|
464
|
+
<span class="cline-any cline-yes">19x</span>
|
|
465
|
+
<span class="cline-any cline-yes">19x</span>
|
|
466
|
+
<span class="cline-any cline-yes">19x</span>
|
|
359
467
|
<span class="cline-any cline-yes">12x</span>
|
|
360
468
|
<span class="cline-any cline-yes">12x</span>
|
|
361
469
|
<span class="cline-any cline-yes">12x</span>
|
|
@@ -390,16 +498,16 @@
|
|
|
390
498
|
<span class="cline-any cline-yes">12x</span>
|
|
391
499
|
<span class="cline-any cline-yes">12x</span>
|
|
392
500
|
<span class="cline-any cline-yes">12x</span>
|
|
393
|
-
<span class="cline-any cline-yes">
|
|
394
|
-
<span class="cline-any cline-yes">
|
|
395
|
-
<span class="cline-any cline-yes">
|
|
396
|
-
<span class="cline-any cline-yes">
|
|
397
|
-
<span class="cline-any cline-yes">
|
|
398
|
-
<span class="cline-any cline-yes">
|
|
399
|
-
<span class="cline-any cline-yes">
|
|
400
|
-
<span class="cline-any cline-yes">
|
|
401
|
-
<span class="cline-any cline-yes">
|
|
402
|
-
<span class="cline-any cline-yes">
|
|
501
|
+
<span class="cline-any cline-yes">19x</span>
|
|
502
|
+
<span class="cline-any cline-yes">19x</span>
|
|
503
|
+
<span class="cline-any cline-yes">19x</span>
|
|
504
|
+
<span class="cline-any cline-yes">19x</span>
|
|
505
|
+
<span class="cline-any cline-yes">19x</span>
|
|
506
|
+
<span class="cline-any cline-yes">19x</span>
|
|
507
|
+
<span class="cline-any cline-yes">19x</span>
|
|
508
|
+
<span class="cline-any cline-yes">19x</span>
|
|
509
|
+
<span class="cline-any cline-yes">19x</span>
|
|
510
|
+
<span class="cline-any cline-yes">19x</span>
|
|
403
511
|
<span class="cline-any cline-yes">8x</span>
|
|
404
512
|
<span class="cline-any cline-yes">3x</span>
|
|
405
513
|
<span class="cline-any cline-yes">8x</span>
|
|
@@ -410,19 +518,19 @@
|
|
|
410
518
|
<span class="cline-any cline-yes">5x</span>
|
|
411
519
|
<span class="cline-any cline-yes">5x</span>
|
|
412
520
|
<span class="cline-any cline-yes">8x</span>
|
|
413
|
-
<span class="cline-any cline-yes">
|
|
414
|
-
<span class="cline-any cline-yes">
|
|
415
|
-
<span class="cline-any cline-yes">
|
|
521
|
+
<span class="cline-any cline-yes">19x</span>
|
|
522
|
+
<span class="cline-any cline-yes">19x</span>
|
|
523
|
+
<span class="cline-any cline-yes">19x</span>
|
|
416
524
|
<span class="cline-any cline-yes">1x</span>
|
|
417
525
|
<span class="cline-any cline-neutral"> </span>
|
|
418
526
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">"use strict";
|
|
419
527
|
|
|
420
528
|
module.exports = function() {
|
|
421
529
|
const api = this;
|
|
422
|
-
const { services } = api.runtime;
|
|
530
|
+
const { models, services } = api.runtime;
|
|
423
531
|
|
|
424
|
-
const
|
|
425
|
-
const
|
|
532
|
+
const logAlert = api.log( "hitchy:plugin:auth:alert" );
|
|
533
|
+
const logDebug = api.log( "hitchy:plugin:auth:debug" );
|
|
426
534
|
|
|
427
535
|
/**
|
|
428
536
|
* Implements policy handlers transparently managing authentication process
|
|
@@ -437,7 +545,7 @@ module.exports = function() {
|
|
|
437
545
|
* @param {Hitchy.Core.ContinuationHandler} next invoke to continue request handling
|
|
438
546
|
* @returns {void}
|
|
439
547
|
*/
|
|
440
|
-
static
|
|
548
|
+
static injectPassport( req, res, next ) {
|
|
441
549
|
if ( this.local.passportInjected ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
442
550
|
<span class="cstat-no" title="statement not covered" > next();</span>
|
|
443
551
|
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
@@ -464,6 +572,43 @@ module.exports = function() {
|
|
|
464
572
|
}
|
|
465
573
|
} );
|
|
466
574
|
}
|
|
575
|
+
|
|
576
|
+
/**
|
|
577
|
+
* Discovers HTTP basic authentication header and processes it
|
|
578
|
+
* accordingly based local user database.
|
|
579
|
+
*
|
|
580
|
+
* @param {Hitchy.Core.IncomingMessage} req request descriptor
|
|
581
|
+
* @param {Hitchy.Core.ServerResponse} res response manager
|
|
582
|
+
* @param {Hitchy.Core.ContinuationHandler} next invoke to continue request handling
|
|
583
|
+
* @returns {void}
|
|
584
|
+
*/
|
|
585
|
+
static handleBasicAuth( req, res, next ) {
|
|
586
|
+
if ( req.user ) {
|
|
587
|
+
next();
|
|
588
|
+
return;
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
const match = /^basic\s+([a-z0-9+/]+={1,2})$/i.exec( req.headers.authorization );
|
|
592
|
+
if ( !match ) {
|
|
593
|
+
next();
|
|
594
|
+
return;
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
const decoded = Buffer.from( match[1], "base64" ).toString( "utf8" );
|
|
598
|
+
const parts = /^([^:]+):(.+)$/.exec( decoded );
|
|
599
|
+
if ( !parts ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
600
|
+
<span class="cstat-no" title="statement not covered" > next();</span>
|
|
601
|
+
<span class="cstat-no" title="statement not covered" > return;</span>
|
|
602
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
603
|
+
|
|
604
|
+
services.AuthManager.checkAuthentication( parts[1], parts[2] )
|
|
605
|
+
.then( user => {
|
|
606
|
+
req.user = user; // eslint-disable-line no-param-reassign
|
|
607
|
+
|
|
608
|
+
this.qualifyAuthenticated( req, res, next );
|
|
609
|
+
} )
|
|
610
|
+
.catch( next );
|
|
611
|
+
}
|
|
467
612
|
|
|
468
613
|
/**
|
|
469
614
|
* Authenticates a request, updates server-side session accordingly and
|
|
@@ -476,8 +621,7 @@ module.exports = function() {
|
|
|
476
621
|
*/
|
|
477
622
|
static login( req, res, next ) {
|
|
478
623
|
const { strategy } = req.params;
|
|
479
|
-
const {
|
|
480
|
-
const { AuthenticationStrategies, AuthenticationPassport, AuthManager } = service;
|
|
624
|
+
const { AuthenticationStrategies, AuthenticationPassport } = services;
|
|
481
625
|
const defaultStrategy = AuthenticationStrategies.defaultStrategy();
|
|
482
626
|
|
|
483
627
|
req.fetchBody()
|
|
@@ -488,43 +632,61 @@ module.exports = function() {
|
|
|
488
632
|
AuthenticationPassport.authenticate( strategy || defaultStrategy )( req, res, err => {
|
|
489
633
|
if ( err ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
490
634
|
<span class="cstat-no" title="statement not covered" > reject( err );</span>
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
AuthManager.listRolesOfUser( new model.User( uuid ) )
|
|
498
|
-
.then( roles => {
|
|
499
|
-
req.user.roles = roles; // eslint-disable-line no-param-reassign
|
|
500
|
-
|
|
501
|
-
DebugLog( "authenticated as", req.user.name );
|
|
502
|
-
|
|
503
|
-
res.set( "X-Authenticated-As", name );
|
|
504
|
-
res.set( "X-Authorized-As", roles.join( "," ) );
|
|
505
|
-
|
|
635
|
+
} else {
|
|
636
|
+
this.qualifyAuthenticated( req, res, error => {
|
|
637
|
+
if ( error ) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
638
|
+
<span class="cstat-no" title="statement not covered" > reject( error );</span>
|
|
639
|
+
} else {
|
|
506
640
|
resolve();
|
|
507
|
-
}
|
|
508
|
-
|
|
509
|
-
}
|
|
510
|
-
<span class="cstat-no" title="statement not covered" > AuthenticationPolicy.logout( req, res, cause => ( cause ? reject( cause ) : resolve() ) );</span>
|
|
511
|
-
<span class="cstat-no" title="statement not covered" > }</span>
|
|
641
|
+
}
|
|
642
|
+
} );
|
|
643
|
+
}
|
|
512
644
|
} );
|
|
513
645
|
} );
|
|
514
646
|
} )
|
|
515
647
|
.then( next )
|
|
516
648
|
.catch( err => {
|
|
517
|
-
<span class="cstat-no" title="statement not covered" >
|
|
649
|
+
<span class="cstat-no" title="statement not covered" > logAlert( err );</span>
|
|
518
650
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
519
651
|
<span class="cstat-no" title="statement not covered" > AuthenticationPolicy.logout( req, res, cause => {</span>
|
|
520
652
|
<span class="cstat-no" title="statement not covered" > if ( cause ) {</span>
|
|
521
|
-
<span class="cstat-no" title="statement not covered" >
|
|
653
|
+
<span class="cstat-no" title="statement not covered" > logAlert( `applying logout policy after failed login has caused another issue: ${cause.stack}` );</span>
|
|
522
654
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
523
655
|
<span class="cstat-no" title="statement not covered" ></span>
|
|
524
656
|
<span class="cstat-no" title="statement not covered" > next( err );</span>
|
|
525
657
|
<span class="cstat-no" title="statement not covered" > } );</span>
|
|
526
658
|
} );
|
|
527
659
|
}
|
|
660
|
+
|
|
661
|
+
/**
|
|
662
|
+
* Extends request descriptor in case some authenticated user has been
|
|
663
|
+
* found recently.
|
|
664
|
+
*
|
|
665
|
+
* @param {Hitchy.Core.IncomingMessage} req request descriptor
|
|
666
|
+
* @param {Hitchy.Core.ServerResponse} res response manager
|
|
667
|
+
* @param {Hitchy.Core.ContinuationHandler} next invoke to continue request handling
|
|
668
|
+
* @returns {void}
|
|
669
|
+
*/
|
|
670
|
+
static qualifyAuthenticated( req, res, next ) {
|
|
671
|
+
if ( req.user ) {
|
|
672
|
+
const { uuid, name } = req.user;
|
|
673
|
+
|
|
674
|
+
services.AuthManager.listRolesOfUser( new models.User( uuid ) )
|
|
675
|
+
.then( roles => {
|
|
676
|
+
req.user.roles = roles; // eslint-disable-line no-param-reassign
|
|
677
|
+
|
|
678
|
+
logDebug( "authenticated as", req.user.name );
|
|
679
|
+
|
|
680
|
+
res.set( "X-Authenticated-As", name );
|
|
681
|
+
res.set( "X-Authorized-As", roles.join( "," ) );
|
|
682
|
+
|
|
683
|
+
next();
|
|
684
|
+
} )
|
|
685
|
+
.catch( next );
|
|
686
|
+
}<span class="branch-0 cbranch-no" title="branch not covered" > else {</span>
|
|
687
|
+
<span class="cstat-no" title="statement not covered" > AuthenticationPolicy.logout( req, res, next );</span>
|
|
688
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
689
|
+
}
|
|
528
690
|
|
|
529
691
|
/**
|
|
530
692
|
* Drops any existing authentication on current request's user.
|
|
@@ -601,7 +763,7 @@ module.exports = function() {
|
|
|
601
763
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
602
764
|
Code coverage generated by
|
|
603
765
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
604
|
-
at
|
|
766
|
+
at Mon Mar 28 2022 22:26:49 GMT+0200 (Mitteleuropäische Sommerzeit)
|
|
605
767
|
</div>
|
|
606
768
|
</div>
|
|
607
769
|
<script src="../../../prettify.js"></script>
|
|
@@ -94,36 +94,36 @@
|
|
|
94
94
|
<a name='L35'></a><a href='#L35'>35</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
95
95
|
<span class="cline-any cline-yes">1x</span>
|
|
96
96
|
<span class="cline-any cline-yes">1x</span>
|
|
97
|
+
<span class="cline-any cline-yes">19x</span>
|
|
98
|
+
<span class="cline-any cline-yes">19x</span>
|
|
99
|
+
<span class="cline-any cline-yes">19x</span>
|
|
100
|
+
<span class="cline-any cline-yes">19x</span>
|
|
101
|
+
<span class="cline-any cline-yes">19x</span>
|
|
102
|
+
<span class="cline-any cline-yes">19x</span>
|
|
103
|
+
<span class="cline-any cline-yes">19x</span>
|
|
104
|
+
<span class="cline-any cline-yes">19x</span>
|
|
105
|
+
<span class="cline-any cline-yes">19x</span>
|
|
106
|
+
<span class="cline-any cline-yes">19x</span>
|
|
107
|
+
<span class="cline-any cline-yes">19x</span>
|
|
108
|
+
<span class="cline-any cline-yes">19x</span>
|
|
109
|
+
<span class="cline-any cline-yes">19x</span>
|
|
110
|
+
<span class="cline-any cline-yes">19x</span>
|
|
97
111
|
<span class="cline-any cline-yes">18x</span>
|
|
98
112
|
<span class="cline-any cline-yes">18x</span>
|
|
99
113
|
<span class="cline-any cline-yes">18x</span>
|
|
100
|
-
<span class="cline-any cline-yes">18x</span>
|
|
101
|
-
<span class="cline-any cline-yes">18x</span>
|
|
102
|
-
<span class="cline-any cline-yes">18x</span>
|
|
103
|
-
<span class="cline-any cline-yes">18x</span>
|
|
104
|
-
<span class="cline-any cline-yes">18x</span>
|
|
105
|
-
<span class="cline-any cline-yes">18x</span>
|
|
106
|
-
<span class="cline-any cline-yes">18x</span>
|
|
107
|
-
<span class="cline-any cline-yes">18x</span>
|
|
108
|
-
<span class="cline-any cline-yes">18x</span>
|
|
109
|
-
<span class="cline-any cline-yes">18x</span>
|
|
110
|
-
<span class="cline-any cline-yes">18x</span>
|
|
111
|
-
<span class="cline-any cline-yes">13x</span>
|
|
112
|
-
<span class="cline-any cline-yes">13x</span>
|
|
113
|
-
<span class="cline-any cline-yes">13x</span>
|
|
114
|
-
<span class="cline-any cline-yes">6x</span>
|
|
115
|
-
<span class="cline-any cline-yes">6x</span>
|
|
116
|
-
<span class="cline-any cline-yes">6x</span>
|
|
117
|
-
<span class="cline-any cline-yes">7x</span>
|
|
118
|
-
<span class="cline-any cline-yes">7x</span>
|
|
119
114
|
<span class="cline-any cline-yes">7x</span>
|
|
120
115
|
<span class="cline-any cline-yes">7x</span>
|
|
121
116
|
<span class="cline-any cline-yes">7x</span>
|
|
122
|
-
<span class="cline-any cline-yes">
|
|
123
|
-
<span class="cline-any cline-yes">
|
|
124
|
-
<span class="cline-any cline-yes">
|
|
125
|
-
<span class="cline-any cline-yes">
|
|
126
|
-
<span class="cline-any cline-yes">
|
|
117
|
+
<span class="cline-any cline-yes">11x</span>
|
|
118
|
+
<span class="cline-any cline-yes">11x</span>
|
|
119
|
+
<span class="cline-any cline-yes">11x</span>
|
|
120
|
+
<span class="cline-any cline-yes">11x</span>
|
|
121
|
+
<span class="cline-any cline-yes">11x</span>
|
|
122
|
+
<span class="cline-any cline-yes">11x</span>
|
|
123
|
+
<span class="cline-any cline-yes">18x</span>
|
|
124
|
+
<span class="cline-any cline-yes">19x</span>
|
|
125
|
+
<span class="cline-any cline-yes">19x</span>
|
|
126
|
+
<span class="cline-any cline-yes">19x</span>
|
|
127
127
|
<span class="cline-any cline-yes">1x</span>
|
|
128
128
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">"use strict";
|
|
129
129
|
|
|
@@ -166,7 +166,7 @@ module.exports = function() {
|
|
|
166
166
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
167
167
|
Code coverage generated by
|
|
168
168
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
169
|
-
at
|
|
169
|
+
at Mon Mar 28 2022 22:26:49 GMT+0200 (Mitteleuropäische Sommerzeit)
|
|
170
170
|
</div>
|
|
171
171
|
</div>
|
|
172
172
|
<script src="../../../prettify.js"></script>
|