· 5 years ago · Mar 16, 2020, 07:18 PM
1db = db.getSiblingDB('kyru_manager');
2
3db.workflows.insert(
4 {
5 "_id": "5e2764e650997133912c8064",
6 "nodes": {
7 "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd": {
8 "name": "switchPlayFromRedis",
9 "propsValidity": {
10 "propsValidity": true,
11 "code": true
12 },
13 "isNodeValid": true,
14 "links": {
15 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff517a6",
16 "next2": "0e123a72-08e5-4f0a-97f2-081403548864",
17 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0",
18 "next4": "19afdfab-f52e-41be-a18b-ee8d78a482d3"
19 },
20 "position": {
21 "x": 1226,
22 "y": 519
23 },
24 "type": "ottojs",
25 "code": "switchPlayFromRedis"
26 },
27 "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0": {
28 "code": "storeDeviceAndRequestTitan",
29 "name": "storeDeviceAndRequestTitan",
30 "propsValidity": {
31 "code": true,
32 "propsValidity": true
33 },
34 "isNodeValid": true,
35 "links": {
36 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
37 },
38 "position": {
39 "y": 447,
40 "x": 1536
41 },
42 "type": "ottojs"
43 },
44 "3d79e5af-cd21-4a02-be9b-9c845ff517a6": {
45 "name": "storeUsername",
46 "propsValidity": {
47 "code": true,
48 "propsValidity": true
49 },
50 "isNodeValid": true,
51 "links": {
52 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
53 },
54 "position": {
55 "x": 1535,
56 "y": 688
57 },
58 "type": "ottojs",
59 "code": "storeUsername"
60 },
61 "29950973-881d-4f9f-b16e-91046e2e8a38": {
62 "links": {
63 "next1": "35fea4ed-6299-470b-bed5-54fbcce5fb2c"
64 },
65 "position": {
66 "x": 708,
67 "y": 519
68 },
69 "type": "redis",
70 "redisHost": "redis:6379",
71 "name": "redis",
72 "propsValidity": {
73 "redisHost": true,
74 "propsValidity": true
75 },
76 "isNodeValid": true
77 },
78 "0e123a72-08e5-4f0a-97f2-081403548864": {
79 "isNodeValid": true,
80 "links": {
81 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
82 },
83 "position": {
84 "x": 1533,
85 "y": 563
86 },
87 "type": "ottojs",
88 "code": "storePassword",
89 "name": "storePasswordAndSetDevicesOrNot",
90 "propsValidity": {
91 "code": true,
92 "propsValidity": true
93 }
94 },
95 "5ad88fda-e225-4805-9c3e-dfcee43b15e2": {
96 "name": "formatter",
97 "format": "html",
98 "propsValidity": {
99 "format": true,
100 "propsValidity": true
101 },
102 "isNodeValid": true,
103 "position": {
104 "x": 1897,
105 "y": 502
106 },
107 "type": "formatter"
108 },
109 "19afdfab-f52e-41be-a18b-ee8d78a482d3": {
110 "links": {
111 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
112 },
113 "position": {
114 "y": 310,
115 "x": 1530
116 },
117 "type": "ottojs",
118 "code": "validateFromEmail",
119 "name": "validateFromEmail",
120 "propsValidity": {
121 "code": true,
122 "propsValidity": true
123 },
124 "isNodeValid": true
125 },
126 "35fea4ed-6299-470b-bed5-54fbcce5fb2c": {
127 "type": "ottojs",
128 "code": "beginPlay",
129 "name": "beginPlay",
130 "propsValidity": {
131 "code": true,
132 "propsValidity": true
133 },
134 "isNodeValid": true,
135 "links": {
136 "next1": "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd"
137 },
138 "position": {
139 "x": 961,
140 "y": 518
141 }
142 }
143 },
144 "name": "",
145 "root": "29950973-881d-4f9f-b16e-91046e2e8a38",
146 "debug": "",
147 "fileName": "SSO.impl.wf"
148 });
149db.workflows.insert(
150 {
151 "_id": "5e2764e650997133912c8063",
152 "nodes": {
153 "ddd04364-b802-4227-973b-e42efb51b43a": {
154 "redisHost": "redis:6379",
155 "name": "redis",
156 "propsValidity": {
157 "propsValidity": true,
158 "redisHost": true
159 },
160 "isNodeValid": true,
161 "links": {
162 "next1": "4cbff2a4-0577-465e-a8fd-7612767f8001"
163 },
164 "position": {
165 "x": 1073,
166 "y": 497
167 },
168 "type": "redis"
169 },
170 "bcbea7e1-61c7-4c7c-a035-6c6518145891": {
171 "position": {
172 "x": 1080,
173 "y": 856
174 },
175 "type": "formatter",
176 "name": "formatter",
177 "format": "html",
178 "propsValidity": {
179 "format": true,
180 "propsValidity": true
181 },
182 "isNodeValid": true
183 },
184 "7aa65e61-1ea3-4487-8e82-771081e64100": {
185 "links": {
186 "next1": "ddd04364-b802-4227-973b-e42efb51b43a",
187 "next2": "bcbea7e1-61c7-4c7c-a035-6c6518145891"
188 },
189 "position": {
190 "x": 1073,
191 "y": 380
192 },
193 "type": "ottojs",
194 "code": "sso.test.createWorkflow",
195 "name": "ottojs",
196 "propsValidity": {
197 "propsValidity": true,
198 "code": true
199 },
200 "isNodeValid": true
201 },
202 "4cbff2a4-0577-465e-a8fd-7612767f8001": {
203 "position": {
204 "x": 1086,
205 "y": 659
206 },
207 "type": "ottojs",
208 "code": "sso.test.createWorkflow.prepareToTemplate",
209 "name": "ottojs",
210 "propsValidity": {
211 "code": true,
212 "propsValidity": true
213 },
214 "isNodeValid": true,
215 "links": {
216 "next1": "bcbea7e1-61c7-4c7c-a035-6c6518145891"
217 }
218 }
219 },
220 "name": "",
221 "root": "7aa65e61-1ea3-4487-8e82-771081e64100",
222 "debug": "",
223 "fileName": "createWorkflow.wf"
224 });
225db.endpoints.insert(
226 {
227 "_id": "5e332337528770d0253eb69d",
228 "version": 2,
229 "tls": {
230 "public_key": "tls/example.crt",
231 "private_key": "tls/example.key",
232 "disabled": true
233 },
234 "name": "Kyru",
235 "port": 7171,
236 "host": [
237 "http://127.0.0.1:8080",
238 "http://127.0.0.2:8000",
239 "http://127.0.0.3:9000",
240 "http://127.0.0.4"
241 ],
242 "endpoints": [
243 {
244 "endpoint": "/updateConf",
245 "extra_config": {
246 "type": "internal"
247 },
248 "method": "GET",
249 "backend": [
250 {}
251 ],
252 "_id": "5e171c0c1590ec19b72e7598"
253 },
254 {
255 "backend": [
256 {}
257 ],
258 "endpoint": "/fromProtocolToSaml",
259 "method": "POST",
260 "extra_config": {
261 "type": "internal"
262 }
263 },
264 {
265 "backend": [
266 {}
267 ],
268 "endpoint": "/fromProtocolToOpenId",
269 "method": "POST",
270 "extra_config": {
271 "type": "internal"
272 }
273 },
274 {
275 "backend": [
276 {}
277 ],
278 "endpoint": "/checkPortalSession",
279 "method": "POST",
280 "extra_config": {
281 "type": "internal"
282 }
283 },
284 {
285 "backend": [
286 {}
287 ],
288 "endpoint": "/api/scripts",
289 "method": "POST",
290 "extra_config": {
291 "type": "internal"
292 }
293 },
294 {
295 "backend": [
296 {}
297 ],
298 "endpoint": "/api/scripts/:name",
299 "method": "GET",
300 "extra_config": {
301 "type": "internal"
302 }
303 },
304 {
305 "backend": [
306 {}
307 ],
308 "endpoint": "/api/scripts",
309 "method": "PUT",
310 "extra_config": {
311 "type": "internal"
312 }
313 },
314 {
315 "backend": [
316 {}
317 ],
318 "endpoint": "/api/scripts",
319 "method": "GET",
320 "extra_config": {
321 "type": "internal"
322 }
323 },
324 {
325 "backend": [
326 {}
327 ],
328 "endpoint": "/api/scripts/:name",
329 "method": "DELETE",
330 "extra_config": {
331 "type": "internal"
332 }
333 },
334 {
335 "backend": [
336 {}
337 ],
338 "endpoint": "/userinfo",
339 "method": "GET",
340 "extra_config": {
341 "type": "internal"
342 }
343 },
344 {
345 "backend": [
346 {}
347 ],
348 "endpoint": "/validateToken",
349 "method": "GET",
350 "extra_config": {
351 "type": "internal"
352 }
353 },
354 {
355 "backend": [
356 {}
357 ],
358 "endpoint": "/api/admin/workflow",
359 "method": "GET",
360 "extra_config": {
361 "type": "internal"
362 }
363 },
364 {
365 "backend": [
366 {}
367 ],
368 "endpoint": "/logout",
369 "method": "GET",
370 "extra_config": {
371 "type": "internal"
372 }
373 },
374 {
375 "backend": [
376 {}
377 ],
378 "endpoint": "/logoutFromSaml",
379 "method": "POST",
380 "extra_config": {
381 "type": "internal"
382 }
383 },
384 {
385 "backend": [
386 {}
387 ],
388 "endpoint": "/logoutFromOpenId",
389 "method": "POST",
390 "extra_config": {
391 "type": "internal"
392 }
393 },
394 {
395 "backend": [
396 {}
397 ],
398 "endpoint": "/checksession",
399 "method": "POST",
400 "extra_config": {
401 "type": "internal"
402 }
403 },
404 {
405 "method": "GET",
406 "backend": [
407 {}
408 ],
409 "_id": "5e171c0c1590ec19b82e7598",
410 "endpoint": "/conf",
411 "extra_config": {
412 "type": "internal"
413 }
414 },
415 {
416 "endpoint": "/healthCheck",
417 "extra_config": {
418 "type": "internal"
419 },
420 "method": "GET",
421 "backend": [
422 {}
423 ],
424 "_id": "5e171c0c1590ec19b92e7598"
425 },
426 {
427 "method": "GET",
428 "backend": [
429 {}
430 ],
431 "_id": "5e171c0c1590ec19ba2e7598",
432 "endpoint": "/metrics",
433 "extra_config": {
434 "type": "internal"
435 }
436 },
437 {
438 "method": "GET",
439 "backend": [
440 {}
441 ],
442 "_id": "5e171c0c1590ec19bb2e7598",
443 "endpoint": "/scripts",
444 "extra_config": {
445 "type": "internal"
446 }
447 },
448 {
449 "extra_config": {
450 "type": "internal"
451 },
452 "method": "GET",
453 "backend": [
454 {}
455 ],
456 "_id": "5e171c0c1590ec19bc2e7598",
457 "endpoint": "/workflows"
458 },
459 {
460 "method": "POST",
461 "backend": [
462 {}
463 ],
464 "_id": "5e171c0c1590ec19bd2e7598",
465 "endpoint": "/workflows",
466 "extra_config": {
467 "type": "internal"
468 }
469 },
470 {
471 "_id": "5e171c0c1590ec19be2e7598",
472 "endpoint": "/workflows",
473 "extra_config": {
474 "type": "internal"
475 },
476 "method": "DELETE",
477 "backend": [
478 {}
479 ]
480 },
481 {
482 "backend": [
483 {}
484 ],
485 "_id": "5e171c0c1590ec19bf2e7598",
486 "endpoint": "/apps/Kyru",
487 "extra_config": {
488 "type": "internal"
489 },
490 "method": "GET"
491 },
492 {
493 "endpoint": "/apps/Kyru",
494 "extra_config": {
495 "type": "internal"
496 },
497 "method": "POST",
498 "backend": [
499 {}
500 ],
501 "_id": "5e171c0c1590ec19c02e7598"
502 },
503 {
504 "method": "GET",
505 "backend": [
506 {}
507 ],
508 "_id": "5e171c0c1590ec19c12e7598",
509 "endpoint": "/policies",
510 "extra_config": {
511 "type": "internal"
512 }
513 },
514 {
515 "method": "POST",
516 "backend": [
517 {}
518 ],
519 "_id": "5e171c0c1590ec19c22e7598",
520 "endpoint": "/policies",
521 "extra_config": {
522 "type": "internal"
523 }
524 },
525 {
526 "backend": [
527 {}
528 ],
529 "_id": "5e171c0c1590ec19c32e7598",
530 "endpoint": "/policies",
531 "extra_config": {
532 "type": "internal"
533 },
534 "method": "DELETE"
535 },
536 {
537 "backend": [
538 {}
539 ],
540 "workflowFilename": "wf.test.redis",
541 "_id": "5e1723121590ec19c42e7598",
542 "endpoint": "/sso/fs/",
543 "extra_config": {
544 "filename": "wf.test.redis",
545 "type": "kyru"
546 },
547 "method": "GET"
548 },
549 {
550 "extra_config": {
551 "type": "kyru",
552 "filename": "l4e.healthCheck.wf"
553 },
554 "method": "HEAD",
555 "backend": [
556 {}
557 ],
558 "workflowFilename": "l4e.healthCheck.wf",
559 "_id": "5e1dbeca7fd7ae2d0b23e64e",
560 "endpoint": "/L4E"
561 },
562 {
563 "endpoint": "/L4E/api/v2/adaptauth",
564 "extra_config": {
565 "filename": "l4e.startadapthAuth.wf",
566 "type": "kyru"
567 },
568 "method": "POST",
569 "backend": [
570 {}
571 ],
572 "workflowFilename": "l4e.startadapthAuth.wf",
573 "_id": "5e1dbfd77fd7ae2d0c23e64e"
574 },
575 {
576 "endpoint": "/L4E/api/v2/otp/validate",
577 "extra_config": {
578 "filename": "otp.validate.wf",
579 "type": "kyru"
580 },
581 "method": "POST",
582 "backend": [
583 {}
584 ],
585 "workflowFilename": "otp.validate.wf",
586 "_id": "5e1f29b47fd7ae2d0e23e64e"
587 },
588 {
589 "method": "POST",
590 "backend": [
591 {}
592 ],
593 "workflowFilename": "auth.wf",
594 "_id": "5e1f2adb7fd7ae2d0f23e64e",
595 "endpoint": "/L4E/api/v2/auth",
596 "extra_config": {
597 "filename": "auth.wf",
598 "type": "kyru"
599 }
600 },
601 {
602 "method": "HEAD",
603 "backend": [
604 {}
605 ],
606 "workflowFilename": "head.l4e2.wf",
607 "_id": "5e288fa59262d682a3b5005f",
608 "endpoint": "/L4E2",
609 "extra_config": {
610 "in_kyru_config": "true",
611 "type": "kyru",
612 "filename": "head.l4e2.wf"
613 }
614 },
615 {
616 "method": "POST",
617 "backend": [
618 {}
619 ],
620 "workflowFilename": "l4e2.adapauth.wf",
621 "_id": "5e2890219262d682a4b5005f",
622 "endpoint": "/L4E2/api/v2/adaptauth",
623 "extra_config": {
624 "type": "kyru",
625 "filename": "l4e2.adapauth.wf",
626 "in_kyru_config": "true"
627 }
628 },
629 {
630 "extra_config": {
631 "in_kyru_config": "true",
632 "type": "kyru",
633 "filename": "l4e2.auth.wf"
634 },
635 "method": "GET",
636 "backend": [
637 {}
638 ],
639 "workflowFilename": "l4e2.auth.wf",
640 "_id": "5e2890859262d682a5b5005f",
641 "endpoint": "/L4E2/api/v2/auth"
642 },
643 {
644 "extra_config": {
645 "filename": "worflow.test",
646 "in_kyru_config": "true",
647 "type": "kyru"
648 },
649 "method": "GET",
650 "backend": [
651 {}
652 ],
653 "workflowFilename": "worflow.test",
654 "_id": "5e2892a29262d682a6b5005f",
655 "endpoint": "/valueDemo90"
656 },
657 {
658 "_id": "5e1e03e77fd7ae2d0d23e64e",
659 "endpoint": "/L4E/api/v2/users/{userId}/factors",
660 "extra_config": {
661 "filename": "l4e.getFactors.wf",
662 "in_kyru_config": "true",
663 "type": "kyru"
664 },
665 "method": "GET",
666 "backend": [
667 {}
668 ],
669 "workflowFilename": "l4e.getFactors.wf"
670 },
671 {
672 "extra_config": {
673 "filename": "getPageFromStatus.wf",
674 "in_kyru_config": "true",
675 "type": "kyru"
676 },
677 "method": "GET",
678 "backend": [
679 {}
680 ],
681 "querystring_params": [
682 "_"
683 ],
684 "workflowFilename": "getPageFromStatus.wf",
685 "_id": "5e18dd8ad82fec1909cbe124",
686 "endpoint": "/api/workflow.play/sso_openID/{id}"
687 },
688 {
689 "method": "GET",
690 "backend": [
691 {}
692 ],
693 "querystring_params": [
694 "code",
695 "scopes",
696 "prompt"
697 ],
698 "workflowFilename": "sso.openID.wf",
699 "_id": "5e1731831590ec19c52e7598",
700 "endpoint": "/api/workflow.create/sso_openID",
701 "extra_config": {
702 "filename": "sso.openID.wf",
703 "in_kyru_config": "true",
704 "type": "kyru"
705 }
706 },
707 {
708 "method": "GET",
709 "backend": [
710 {}
711 ],
712 "querystring_params": [
713 "code",
714 "scopes",
715 "prompt",
716 "ip"
717 ],
718 "workflowFilename": "sso.openID.IPThreat.wf",
719 "_id": "5e1731831590ec19c52e7699",
720 "endpoint": "/api/workflow.create/ip_threat/sso_openID",
721 "extra_config": {
722 "filename": "sso.openID.IPThreat.wf",
723 "in_kyru_config": "true",
724 "type": "kyru"
725 }
726 },
727 {
728 "workflowFilename": "sso.openID.param.wf",
729 "_id": "5e1748711590ec19c62e7598",
730 "endpoint": "/api/workflow.play/sso_openID/{id}",
731 "extra_config": {
732 "filename": "sso.openID.param.wf",
733 "in_kyru_config": "true",
734 "type": "kyru"
735 },
736 "method": "POST",
737 "backend": [
738 {}
739 ],
740 "querystring_params": [
741 "_"
742 ]
743 },
744 {
745 "workflowFilename": "sso.openID.IPThreat.param.wf",
746 "_id": "5e1748711590ec19c62e6677",
747 "endpoint": "/api/workflow.play/ip_threat/sso_openID/{id}",
748 "extra_config": {
749 "filename": "sso.openID.IPThreat.param.wf",
750 "in_kyru_config": "true",
751 "type": "kyru"
752 },
753 "method": "POST",
754 "backend": [
755 {}
756 ],
757 "querystring_params": [
758 "_",
759 "ip"
760 ]
761 },
762 {
763 "method": "GET",
764 "backend": [
765 {}
766 ],
767 "workflowFilename": "sso.saml.wf",
768 "_id": "5e32e7685ccbec190cdb94ae",
769 "endpoint": "/api/workflow.create/sso_saml",
770 "extra_config": {
771 "filename": "sso.saml.wf",
772 "in_kyru_config": "true",
773 "type": "kyru"
774 }
775 },
776 {
777 "_id": "5e32e7c55ccbec190ddb94ae",
778 "endpoint": "/api/workflow.play/sso_saml/{id}",
779 "extra_config": {
780 "filename": "sso.saml.get.wf",
781 "in_kyru_config": "true",
782 "type": "kyru"
783 },
784 "method": "GET",
785 "backend": [
786 {}
787 ],
788 "workflowFilename": "sso.saml.get.wf"
789 },
790 {
791 "method": "POST",
792 "backend": [
793 {}
794 ],
795 "workflowFilename": "sso.saml.param.wf",
796 "_id": "5e32e7f35ccbec190edb94ae",
797 "endpoint": "/api/workflow.play/sso_saml/{id}",
798 "extra_config": {
799 "in_kyru_config": "true",
800 "type": "kyru",
801 "filename": "sso.saml.param.wf"
802 }
803 },
804 {
805 "_id": "5e5803628cf8ec196d95375e",
806 "backend": [
807 {
808 "mapping": {}
809 }
810 ],
811 "endpoint": "/api/workflow.create/default",
812 "extra_config": {
813 "filename": "default.create.wf",
814 "in_kyru_config": "false",
815 "pyke_feature": "",
816 "type": "kyru"
817 },
818 "method": "GET",
819 "workflowFilename": "default.create.wf"
820 },
821 {
822 "_id": "5e5804a78cf8ec196e95375e",
823 "backend": [
824 {
825 "mapping": {}
826 }
827 ],
828 "endpoint": "/api/workflow.play/default/{id}",
829 "extra_config": {
830 "filename": "default.play.wf",
831 "in_kyru_config": "false",
832 "pyke_feature": "",
833 "type": "kyru"
834 },
835 "method": "POST",
836 "workflowFilename": "default.play.wf"
837 }
838 ]
839 }
840);
841db.workflows.insert(
842 {
843 "_id": "5e32e62ec1a0e95b5749e9f3",
844 "nodes": {
845 "35fea4ed-6299-470b-bed5-54fbcce5fb2c": {
846 "type": "ottojs",
847 "code": "beginPlay",
848 "name": "beginPlay",
849 "propsValidity": {
850 "code": true,
851 "propsValidity": true
852 },
853 "isNodeValid": true,
854 "links": {
855 "next1": "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd"
856 },
857 "position": {
858 "x": 961,
859 "y": 518
860 }
861 },
862 "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd": {
863 "name": "switchPlayFromRedis",
864 "propsValidity": {
865 "propsValidity": true,
866 "code": true
867 },
868 "isNodeValid": true,
869 "links": {
870 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff517a6",
871 "next2": "0e123a72-08e5-4f0a-97f2-081403548864",
872 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0",
873 "next4": "19afdfab-f52e-41be-a18b-ee8d78a482d3"
874 },
875 "position": {
876 "x": 1226,
877 "y": 519
878 },
879 "type": "ottojs",
880 "code": "switchPlayFromRedis"
881 },
882 "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0": {
883 "code": "SAMLstoreDeviceAndRequestTitan",
884 "name": "storeDeviceAndRequestTitan",
885 "propsValidity": {
886 "propsValidity": true,
887 "code": true
888 },
889 "isNodeValid": true,
890 "links": {
891 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
892 },
893 "position": {
894 "x": 1536,
895 "y": 447
896 },
897 "type": "ottojs"
898 },
899 "3d79e5af-cd21-4a02-be9b-9c845ff517a6": {
900 "name": "storeUsername",
901 "propsValidity": {
902 "code": true,
903 "propsValidity": true
904 },
905 "isNodeValid": true,
906 "links": {
907 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
908 },
909 "position": {
910 "x": 1536,
911 "y": 688
912 },
913 "type": "ottojs",
914 "code": "SAMLstoreUsername"
915 },
916 "29950973-881d-4f9f-b16e-91046e2e8a38": {
917 "redisHost": "redis:6379",
918 "name": "redis",
919 "propsValidity": {
920 "propsValidity": true,
921 "redisHost": true
922 },
923 "isNodeValid": true,
924 "links": {
925 "next1": "35fea4ed-6299-470b-bed5-54fbcce5fb2c"
926 },
927 "position": {
928 "x": 708,
929 "y": 519
930 },
931 "type": "redis"
932 },
933 "0e123a72-08e5-4f0a-97f2-081403548864": {
934 "type": "ottojs",
935 "code": "SAMLstorePassword",
936 "name": "storePasswordAndSetDevicesOrNot",
937 "propsValidity": {
938 "code": true,
939 "propsValidity": true
940 },
941 "isNodeValid": true,
942 "links": {
943 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
944 },
945 "position": {
946 "x": 1533,
947 "y": 563
948 }
949 },
950 "5ad88fda-e225-4805-9c3e-dfcee43b15e2": {
951 "format": "html",
952 "propsValidity": {
953 "format": true,
954 "propsValidity": true
955 },
956 "isNodeValid": true,
957 "position": {
958 "x": 1897,
959 "y": 502
960 },
961 "type": "formatter",
962 "name": "formatter"
963 },
964 "19afdfab-f52e-41be-a18b-ee8d78a482d3": {
965 "type": "ottojs",
966 "code": "SAMLvalidateFromEmail",
967 "name": "validateFromEmail",
968 "propsValidity": {
969 "code": true,
970 "propsValidity": true
971 },
972 "isNodeValid": true,
973 "links": {
974 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"
975 },
976 "position": {
977 "x": 1530,
978 "y": 310
979 }
980 }
981 },
982 "name": "",
983 "root": "29950973-881d-4f9f-b16e-91046e2e8a38",
984 "debug": "",
985 "fileName": "SAML.impl.wf"
986 });
987db.workflows.insert({
988 "nodes": {
989 "ddd04364-b802-4227-973b-e42efb51b43a": {
990 "redisHost": "redis:6379",
991 "name": "redis",
992 "propsValidity": {"propsValidity": true, "redisHost": true},
993 "isNodeValid": true,
994 "links": {"next1": "4cbff2a4-0577-465e-a8fd-7612767f8001"},
995 "position": {"x": 1690, "y": 352},
996 "type": "redis"
997 },
998 "bcbea7e1-61c7-4c7c-a035-6c6518145891": {
999 "name": "formatter",
1000 "format": "html",
1001 "propsValidity": {"format": true, "propsValidity": true},
1002 "isNodeValid": true,
1003 "links": {},
1004 "position": {"x": 1080, "y": 856},
1005 "type": "formatter"
1006 },
1007 "7aa65e61-1ea3-4487-8e82-771081e64100": {
1008 "position": {"x": 1073, "y": 380},
1009 "type": "ottojs",
1010 "code": "sso.saml.wf",
1011 "meta": {"wf": "sso_saml", "urlToRedirect": "https://3.91.71.10:8888"},
1012 "name": "ottojs",
1013 "propsValidity": {"code": true, "propsValidity": true},
1014 "isNodeValid": true,
1015 "links": {"next1": "ddd04364-b802-4227-973b-e42efb51b43a", "next2": "bcbea7e1-61c7-4c7c-a035-6c6518145891"}
1016 },
1017 "4cbff2a4-0577-465e-a8fd-7612767f8001": {
1018 "name": "ottojs",
1019 "propsValidity": {"code": true, "propsValidity": true},
1020 "isNodeValid": true,
1021 "links": {"next1": "bcbea7e1-61c7-4c7c-a035-6c6518145891"},
1022 "position": {"x": 1086, "y": 659},
1023 "type": "ottojs",
1024 "code": "sso.saml.mapToUsernameTemplate"
1025 }
1026 }, "name": "", "root": "7aa65e61-1ea3-4487-8e82-771081e64100", "debug": "", "fileName": "sso.saml.wf"
1027});
1028
1029db.workflows.insert(
1030 {
1031 "_id": "5e38613d3357a237f657c226",
1032 "nodes": {
1033 "ddd04364-b802-4227-973b-e42efb51b43a": {
1034 "links": {"next1": "4cbff2a4-0577-465e-a8fd-7612767f8001"},
1035 "position": {"x": 1073, "y": 497},
1036 "type": "redis",
1037 "redisHost": "redis:6379",
1038 "name": "redis",
1039 "propsValidity": {"propsValidity": true, "redisHost": true},
1040 "isNodeValid": true
1041 },
1042 "bcbea7e1-61c7-4c7c-a035-6c6518145891": {
1043 "propsValidity": {"format": true, "propsValidity": true},
1044 "isNodeValid": true,
1045 "position": {"x": 1080, "y": 856},
1046 "type": "formatter",
1047 "name": "formatter",
1048 "format": "html"
1049 },
1050 "7aa65e61-1ea3-4487-8e82-771081e64100": {
1051 "code": "default-wf.default.createWorkflow",
1052 "name": "ottojs",
1053 "propsValidity": {"code": true, "propsValidity": true},
1054 "isNodeValid": true,
1055 "links": {
1056 "next1": "ddd04364-b802-4227-973b-e42efb51b43a",
1057 "next2": "bcbea7e1-61c7-4c7c-a035-6c6518145891"
1058 },
1059 "position": {"x": 1073, "y": 380},
1060 "type": "ottojs"
1061 },
1062 "4cbff2a4-0577-465e-a8fd-7612767f8001": {
1063 "code": "default-wf.default.createWorkflow.prepareToTemplate",
1064 "name": "ottojs",
1065 "propsValidity": {"propsValidity": true, "code": true},
1066 "isNodeValid": true,
1067 "links": {"next1": "bcbea7e1-61c7-4c7c-a035-6c6518145891"},
1068 "position": {"x": 1086, "y": 659},
1069 "type": "ottojs"
1070 }
1071 }, "name": "", "root": "7aa65e61-1ea3-4487-8e82-771081e64100", "debug": "", "fileName": "create.auth.default.wf"
1072 });
1073
1074db.workflows.insert(
1075 {
1076 "_id": "5e3861063357a237f657c225", "nodes": {
1077 "3d79e5af-cd21-4a02-be9b-9c845ff517a6": {
1078 "type": "ottojs",
1079 "code": "default-wf.default.storeUsername",
1080 "name": "storeUsername",
1081 "propsValidity": {"code": true, "propsValidity": true},
1082 "isNodeValid": true,
1083 "links": {"next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"},
1084 "position": {"y": 687, "x": 1536}
1085 },
1086 "29950973-881d-4f9f-b16e-91046e2e8a38": {
1087 "isNodeValid": true,
1088 "links": {"next1": "35fea4ed-6299-470b-bed5-54fbcce5fb2c"},
1089 "position": {"x": 708, "y": 519},
1090 "type": "redis",
1091 "redisHost": "redis:6379",
1092 "name": "redis",
1093 "propsValidity": {"propsValidity": true, "redisHost": true}
1094 },
1095 "0e123a72-08e5-4f0a-97f2-081403548864": {
1096 "name": "storePasswordAndSetDevicesOrNot",
1097 "propsValidity": {"code": true, "propsValidity": true},
1098 "isNodeValid": true,
1099 "links": {"next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"},
1100 "position": {"x": 1533, "y": 563},
1101 "type": "ottojs",
1102 "code": "default-wf.default.storePassword"
1103 },
1104 "5ad88fda-e225-4805-9c3e-dfcee43b15e2": {
1105 "format": "html",
1106 "propsValidity": {"format": true, "propsValidity": true},
1107 "isNodeValid": true,
1108 "position": {"x": 1897, "y": 502},
1109 "type": "formatter",
1110 "name": "formatter"
1111 },
1112 "19afdfab-f52e-41be-a18b-ee8d78a482d3": {
1113 "position": {"x": 1530, "y": 310},
1114 "type": "ottojs",
1115 "code": "default-wf.default.validateFromEmail",
1116 "name": "validateFromEmail",
1117 "propsValidity": {"code": true, "propsValidity": true},
1118 "isNodeValid": true,
1119 "links": {"next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"}
1120 },
1121 "35fea4ed-6299-470b-bed5-54fbcce5fb2c": {
1122 "name": "beginPlay",
1123 "propsValidity": {"code": true, "propsValidity": true},
1124 "isNodeValid": true,
1125 "links": {"next1": "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd"},
1126 "position": {"x": 961, "y": 518},
1127 "type": "ottojs",
1128 "code": "beginPlay"
1129 },
1130 "a08e3ff7-95c2-4ef1-8967-c57fe132e5bd": {
1131 "code": "switchPlayFromRedis",
1132 "name": "switchPlayFromRedis",
1133 "propsValidity": {"code": true, "propsValidity": true},
1134 "isNodeValid": true,
1135 "links": {
1136 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff517a6",
1137 "next2": "0e123a72-08e5-4f0a-97f2-081403548864",
1138 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0",
1139 "next4": "19afdfab-f52e-41be-a18b-ee8d78a482d3"
1140 },
1141 "position": {"x": 1226, "y": 519},
1142 "type": "ottojs"
1143 },
1144 "51e01f50-dc77-44eb-87b3-ca4b1bfe58c0": {
1145 "code": "default-wf.default.storeDeviceAndRequestTitan",
1146 "name": "storeDeviceAndRequestTitan",
1147 "propsValidity": {"code": true, "propsValidity": true},
1148 "isNodeValid": true,
1149 "links": {"next1": "5ad88fda-e225-4805-9c3e-dfcee43b15e2"},
1150 "position": {"x": 1536, "y": 447},
1151 "type": "ottojs"
1152 }
1153 }, "name": "", "root": "29950973-881d-4f9f-b16e-91046e2e8a38", "debug": "", "fileName": "play.defaullt.wf"
1154 });
1155
1156
1157db.workflows.insert(
1158 {
1159 "_id": "5e2764e650997133912c9175",
1160 "nodes": {
1161 "b08e3ff7-95c2-4ef1-8967-c57fe132e6ce": {
1162 "name": "switchPlayFromRedis",
1163 "propsValidity": {
1164 "propsValidity": true,
1165 "code": true
1166 },
1167 "isNodeValid": true,
1168 "links": {
1169 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff518b7",
1170 "next2": "0e123a72-08e5-4f0a-97f2-081403548975",
1171 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe59d1",
1172 "next4": "19afdfab-f52e-41be-a18b-ee8d78a483c4"
1173 },
1174 "position": {
1175 "x": 1226,
1176 "y": 519
1177 },
1178 "type": "ottojs",
1179 "code": "switchPlayFromRedis"
1180 },
1181 "51e01f50-dc77-44eb-87b3-ca4b1bfe59d1": {
1182 "code": "storeDeviceAndRequestTitan",
1183 "name": "storeDeviceAndRequestTitan",
1184 "propsValidity": {
1185 "code": true,
1186 "propsValidity": true
1187 },
1188 "isNodeValid": true,
1189 "links": {
1190 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b16f3"
1191 },
1192 "position": {
1193 "y": 447,
1194 "x": 1536
1195 },
1196 "type": "ottojs"
1197 },
1198 "3d79e5af-cd21-4a02-be9b-9c845ff518b7": {
1199 "name": "storeUsername",
1200 "propsValidity": {
1201 "code": true,
1202 "propsValidity": true
1203 },
1204 "isNodeValid": true,
1205 "links": {
1206 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b16f3"
1207 },
1208 "position": {
1209 "x": 1535,
1210 "y": 688
1211 },
1212 "type": "ottojs",
1213 "code": "storeUsername"
1214 },
1215 "29950973-881d-4f9f-b16e-91046e2e8b39": {
1216 "links": {
1217 "next1": "35fea4ed-6299-470b-bed5-54fbcce5fc3n"
1218 },
1219 "position": {
1220 "x": 708,
1221 "y": 519
1222 },
1223 "type": "redis",
1224 "redisHost": "redis:6379",
1225 "name": "redis",
1226 "propsValidity": {
1227 "redisHost": true,
1228 "propsValidity": true
1229 },
1230 "isNodeValid": true
1231 },
1232 "0e123a72-08e5-4f0a-97f2-081403548975": {
1233 "isNodeValid": true,
1234 "links": {
1235 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b16f3"
1236 },
1237 "position": {
1238 "x": 1533,
1239 "y": 563
1240 },
1241 "type": "ottojs",
1242 "code": "storePassword.IPThreat",
1243 "name": "storePasswordAndSetDevicesOrNot",
1244 "propsValidity": {
1245 "code": true,
1246 "propsValidity": true
1247 }
1248 },
1249 "5ad88fda-e225-4805-9c3e-dfcee43b16f3": {
1250 "name": "formatter",
1251 "format": "html",
1252 "propsValidity": {
1253 "format": true,
1254 "propsValidity": true
1255 },
1256 "isNodeValid": true,
1257 "position": {
1258 "x": 1897,
1259 "y": 502
1260 },
1261 "type": "formatter"
1262 },
1263 "19afdfab-f52e-41be-a18b-ee8d78a483c4": {
1264 "links": {
1265 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b16f3"
1266 },
1267 "position": {
1268 "y": 310,
1269 "x": 1530
1270 },
1271 "type": "ottojs",
1272 "code": "validateFromEmail",
1273 "name": "validateFromEmail",
1274 "propsValidity": {
1275 "code": true,
1276 "propsValidity": true
1277 },
1278 "isNodeValid": true
1279 },
1280 "35fea4ed-6299-470b-bed5-54fbcce5fc3n": {
1281 "type": "ottojs",
1282 "code": "beginPlay",
1283 "name": "beginPlay",
1284 "propsValidity": {
1285 "code": true,
1286 "propsValidity": true
1287 },
1288 "isNodeValid": true,
1289 "links": {
1290 "next1": "b08e3ff7-95c2-4ef1-8967-c57fe132e6ce"
1291 },
1292 "position": {
1293 "x": 961,
1294 "y": 518
1295 }
1296 }
1297 },
1298 "name": "",
1299 "root": "29950973-881d-4f9f-b16e-91046e2e8b39",
1300 "debug": "",
1301 "fileName": "sso.openID.IPThreat.param.wf"
1302 });
1303
1304db.workflows.insert(
1305 {
1306 "_id": "5e2764e650997133912c9064", "nodes": {
1307 "bcbea7e1-61c7-4c7c-a035-6c6518145777": {
1308 "links": {},
1309 "position": {"x": {"$numberDouble": "1080"}, "y": {"$numberDouble": "856"}},
1310 "type": "formatter",
1311 "name": "formatToJson",
1312 "format": "html",
1313 "propsValidity": {"propsValidity": true, "format": true},
1314 "isNodeValid": true
1315 },
1316 "ddd04364-b802-4227-973b-e42efb51b44b": {
1317 "position": {
1318 "y": {"$numberDouble": "497"},
1319 "x": {"$numberDouble": "1073"}
1320 },
1321 "type": "redis",
1322 "redisHost": "redis:6379",
1323 "name": "checkWorkflowState",
1324 "propsValidity": {"propsValidity": true, "redisHost": true},
1325 "isNodeValid": true,
1326 "links": {"next1": "4cbff2a4-0577-465e-a8fd-7612767f9002"}
1327 },
1328 "7aa65e61-1ea3-4487-8e82-771081e64111": {
1329 "isNodeValid": true,
1330 "links": {
1331 "next1": "ddd04364-b802-4227-973b-e42efb51b44b",
1332 "next2": "bcbea7e1-61c7-4c7c-a035-6c6518145777"
1333 },
1334 "position": {"y": {"$numberDouble": "380"}, "x": {"$numberDouble": "1073"}},
1335 "type": "ottojs",
1336 "code": "sso.openID.IPThreat.wf",
1337 "meta": {
1338 "urlBapi": "http://3.91.71.10:9000",
1339 "wf": "ip_threat/sso_openID",
1340 "urlToRedirect": "https://3.91.71.10:7000"
1341 },
1342 "name": "initWorkflow - check IPThreat",
1343 "propsValidity": {"code": true, "propsValidity": true}
1344 },
1345 "4cbff2a4-0577-465e-a8fd-7612767f9002": {
1346 "isNodeValid": true,
1347 "links": {"next1": "bcbea7e1-61c7-4c7c-a035-6c6518145777"},
1348 "position": {"x": {"$numberDouble": "1086"}, "y": {"$numberDouble": "659"}},
1349 "type": "ottojs",
1350 "code": "sso.openID.mapToUsernameTemplate.IPThreat",
1351 "name": "mapToUsernameTemplate",
1352 "propsValidity": {"code": true, "propsValidity": true}
1353 }
1354 }, "name": "", "root": "7aa65e61-1ea3-4487-8e82-771081e64111", "debug": "", "fileName": "sso.openID.IPThreat.wf"
1355 });
1356
1357
1358db.workflows.insert({
1359 "_id": "5e3d929b4363844c7e552e4f", "nodes": {
1360 "09b65dbc-0d4f-4cb2-94ce-6807e653dd2d": {
1361 "propsValidity": {"propsValidity": true, "redisHost": true},
1362 "isNodeValid": true,
1363 "links": {"next1": "044c78c6-4674-4569-8e36-d80659903179"},
1364 "position": {"x": 1414, "y": 331},
1365 "type": "redis",
1366 "redisHost": "redis:6379",
1367 "name": "redis"
1368 },
1369 "709e7eb8-d303-4855-8021-0531440d81dd": {
1370 "isNodeValid": true,
1371 "links": {"next1": "09b65dbc-0d4f-4cb2-94ce-6807e653dd2d"},
1372 "position": {"x": 1402, "y": 224},
1373 "type": "ottojs",
1374 "code": "idp.getFactors",
1375 "name": "ottojs",
1376 "propsValidity": {"code": true, "propsValidity": true}
1377 },
1378 "0b392f7d-efed-4bbe-ba20-8d252fd71feb": {
1379 "type": "redis",
1380 "redisHost": "redis:6379",
1381 "name": "redis",
1382 "propsValidity": {"propsValidity": true, "redisHost": true},
1383 "isNodeValid": true,
1384 "links": {"next1": "fcf4a5f7-d975-4435-9c4c-24506f3e50be"},
1385 "position": {"x": 1419, "y": 641}
1386 },
1387 "fcf4a5f7-d975-4435-9c4c-24506f3e50be": {
1388 "position": {"x": 1416, "y": 770},
1389 "type": "ottojs",
1390 "code": "idp.fromScimToL4W.GetFactors",
1391 "name": "GetFactors",
1392 "propsValidity": {"code": true, "propsValidity": true},
1393 "isNodeValid": true,
1394 "links": {"next1": "3e168f71-ecc2-46b4-bcc6-15bc74961aff"}
1395 },
1396 "044c78c6-4674-4569-8e36-d80659903179": {
1397 "retry": 0,
1398 "timeout": 5000,
1399 "readPayload": false,
1400 "method": "GET",
1401 "propsValidity": {
1402 "maxIdle": true,
1403 "method": true,
1404 "propsValidity": true,
1405 "readPayload": true,
1406 "retry": true,
1407 "timeout": true,
1408 "url": true
1409 },
1410 "isNodeValid": true,
1411 "type": "httpRequest",
1412 "url": "http://3.91.71.10:9000/Users/filter?selection=filter=%20userName%20eq%20%22{userId}%22",
1413 "maxIdle": 20,
1414 "name": "httpRequest",
1415 "links": {"next1": "b7911489-6571-4b0b-9cc6-2e2821446df9"},
1416 "position": {"x": 1425, "y": 433}
1417 },
1418 "3e168f71-ecc2-46b4-bcc6-15bc74961aff": {
1419 "name": "formatter",
1420 "format": "json",
1421 "propsValidity": {"format": true, "propsValidity": true},
1422 "position": {"x": 1414, "y": 912},
1423 "type": "formatter"
1424 },
1425 "b7911489-6571-4b0b-9cc6-2e2821446df9": {
1426 "type": "ottojs",
1427 "code": "idp.resultGetFactos",
1428 "name": "ottojs",
1429 "propsValidity": {"code": true, "propsValidity": true},
1430 "isNodeValid": true,
1431 "links": {"next1": "0b392f7d-efed-4bbe-ba20-8d252fd71feb"},
1432 "position": {"y": 527, "x": 1425}
1433 }
1434 }, "name": "", "root": "709e7eb8-d303-4855-8021-0531440d81dd", "debug": "", "fileName": "l4e.getFactors.wf"
1435});
1436
1437
1438db.workflows.insert({
1439 "_id": "5e4166241dcda99da37c3be6",
1440 "nodes": {
1441 "c32f1aae-47ec-4a4d-8da9-1ea76866cf0b": {
1442 "links": {"next1": "f1334d31-7aa9-4a9e-bd31-ca9edfe2e8b9"},
1443 "position": {"x": 1105, "y": 427},
1444 "type": "ottojs",
1445 "code": "ipsafe.ipsafe.createWorkflow",
1446 "name": "create workflow",
1447 "propsValidity": {"code": true, "propsValidity": true},
1448 "isNodeValid": true
1449 },
1450 "f1334d31-7aa9-4a9e-bd31-ca9edfe2e8b9": {
1451 "name": "formatter",
1452 "format": "html",
1453 "propsValidity": {"propsValidity": true, "format": true},
1454 "isNodeValid": true,
1455 "position": {"x": 1583, "y": 429},
1456 "type": "formatter"
1457 },
1458 "1b165956-4202-456a-882d-34b6e6f1531c": {
1459 "redisHost": "redis:6379",
1460 "name": "redis",
1461 "propsValidity": {"propsValidity": true, "redisHost": true},
1462 "isNodeValid": true,
1463 "links": {"next1": "c32f1aae-47ec-4a4d-8da9-1ea76866cf0b"},
1464 "position": {"y": 428, "x": 748},
1465 "type": "redis"
1466 }
1467 },
1468 "name": "",
1469 "root": "1b165956-4202-456a-882d-34b6e6f1531c",
1470 "debug": "false",
1471 "fileName": "ipsafe.createWorkflow"
1472});
1473db.workflows.insert({
1474 "_id": "5e4170931dcda99da37c3be8",
1475 "nodes": {
1476 "5ed46d7c-5033-414f-8652-694d7dd96f26": {
1477 "propsValidity": {"code": true, "propsValidity": true},
1478 "isNodeValid": true,
1479 "links": {
1480 "next1": "5d8ea6db-40bf-4644-a4c2-8b477f6aec6f",
1481 "next2": "d0c78cd8-9802-4888-a2f0-ad9c16ad4298",
1482 "next3": "2936a8aa-cf4c-4866-8434-b25ce108478d",
1483 "next4": "aa0744ba-b92e-4136-a99f-c485829cc0c8"
1484 },
1485 "position": {"x": 1218, "y": 532},
1486 "type": "ottojs",
1487 "code": "ipsafe.switchIpSafe",
1488 "name": "switch"
1489 },
1490 "2936a8aa-cf4c-4866-8434-b25ce108478d": {
1491 "code": "ipsafe.ipsafe.validate",
1492 "name": "validate code",
1493 "propsValidity": {"code": true, "propsValidity": true},
1494 "isNodeValid": true,
1495 "links": {"next1": "33e8b71d-a1bb-421a-b00d-c9d7e7648c7f"},
1496 "position": {"x": 1483, "y": 532},
1497 "type": "ottojs"
1498 },
1499 "d0c78cd8-9802-4888-a2f0-ad9c16ad4298": {
1500 "isNodeValid": true,
1501 "links": {"next1": "33e8b71d-a1bb-421a-b00d-c9d7e7648c7f"},
1502 "position": {"x": 1504, "y": 653},
1503 "type": "ottojs",
1504 "code": "ipsafe.ipsafe.secondFactor",
1505 "name": "2nd factor",
1506 "propsValidity": {"code": true, "propsValidity": true}
1507 },
1508 "aa0744ba-b92e-4136-a99f-c485829cc0c8": {
1509 "position": {"x": 1483, "y": 435},
1510 "type": "ottojs",
1511 "code": "ipsafe.ipsafe.password",
1512 "name": "password state",
1513 "propsValidity": {"code": true, "propsValidity": true},
1514 "isNodeValid": true,
1515 "links": {"next1": "33e8b71d-a1bb-421a-b00d-c9d7e7648c7f"}
1516 },
1517 "7a448d6a-2105-4f04-91ec-4645dc213a9b": {
1518 "type": "redis",
1519 "redisHost": "redis:6379",
1520 "name": "create redis client instance",
1521 "propsValidity": {"propsValidity": true, "redisHost": true},
1522 "isNodeValid": true,
1523 "links": {"next1": "288cc6b9-5f1f-4e5c-9aa4-6a8736cb9739"},
1524 "position": {"x": 715, "y": 375}
1525 },
1526 "5d8ea6db-40bf-4644-a4c2-8b477f6aec6f": {
1527 "propsValidity": {"code": true, "propsValidity": true},
1528 "isNodeValid": true,
1529 "links": {"next1": "33e8b71d-a1bb-421a-b00d-c9d7e7648c7f"},
1530 "position": {"x": 1502, "y": 775},
1531 "type": "ottojs",
1532 "code": "ipsafe.ipsafe.username",
1533 "name": "username state"
1534 },
1535 "288cc6b9-5f1f-4e5c-9aa4-6a8736cb9739": {
1536 "type": "ottojs",
1537 "code": "ipsafe.beginPlay",
1538 "name": "get info from workflow",
1539 "propsValidity": {"code": true, "propsValidity": true},
1540 "isNodeValid": true,
1541 "links": {"next1": "5ed46d7c-5033-414f-8652-694d7dd96f26"},
1542 "position": {"x": 943, "y": 534}
1543 },
1544 "33e8b71d-a1bb-421a-b00d-c9d7e7648c7f": {
1545 "propsValidity": {"format": true, "propsValidity": true},
1546 "isNodeValid": true,
1547 "position": {"x": 1820, "y": 609},
1548 "type": "formatter",
1549 "name": "serve page template",
1550 "format": "html"
1551 }
1552 }, "name": "", "root": "7a448d6a-2105-4f04-91ec-4645dc213a9b", "debug": "false", "fileName": "play ip safe workflow"
1553});
1554db.workflows.insert({
1555 "_id": "5e3d49464a64ee43fbbd6f72", "nodes": {
1556 "939a914c-bf01-4e14-8491-2f4f5a231c13": {
1557 "position": {"x": 1263, "y": 655},
1558 "type": "ottojs",
1559 "code": "idp.handleAuthRequest.afterRedis",
1560 "name": "ottojs",
1561 "propsValidity": {"code": true, "propsValidity": true},
1562 "isNodeValid": true,
1563 "links": {"next1": "473895dc-6eec-4631-b3e7-737140e86f06"}
1564 },
1565 "473895dc-6eec-4631-b3e7-737140e86f06": {
1566 "redisHost": "redis:6379",
1567 "name": "redis",
1568 "propsValidity": {"propsValidity": true, "redisHost": true},
1569 "isNodeValid": true,
1570 "links": {"next1": "33ada38a-7bb2-4eef-8a55-50e35f67cfc4"},
1571 "position": {"x": 1632, "y": 773},
1572 "type": "redis"
1573 },
1574 "33ada38a-7bb2-4eef-8a55-50e35f67cfc4": {
1575 "code": "idp.handleAuthRequest.afterRedis2",
1576 "name": "ottojs",
1577 "propsValidity": {"code": true, "propsValidity": true},
1578 "isNodeValid": true,
1579 "links": {"next1": "b00438bd-95bc-4cb5-b25d-eaa2681d1386"},
1580 "position": {"x": 1625, "y": 886},
1581 "type": "ottojs"
1582 },
1583 "be5dc786-a37b-40a4-828a-f1c604fe1e1b": {
1584 "links": {"next1": "287c5277-53f6-4dd5-bb8b-69accbd5c59d"},
1585 "position": {"x": 1262, "y": 380},
1586 "type": "ottojs",
1587 "code": "idp.handleAuthRequest",
1588 "name": "ottojs",
1589 "propsValidity": {"code": true, "propsValidity": true},
1590 "isNodeValid": true
1591 },
1592 "b00438bd-95bc-4cb5-b25d-eaa2681d1386": {
1593 "format": "json",
1594 "propsValidity": {"format": true, "propsValidity": true},
1595 "position": {"x": 1259, "y": 903},
1596 "type": "formatter",
1597 "name": "formatter"
1598 },
1599 "287c5277-53f6-4dd5-bb8b-69accbd5c59d": {
1600 "type": "redis",
1601 "redisHost": "redis:6379",
1602 "name": "redis",
1603 "propsValidity": {"propsValidity": true, "redisHost": true},
1604 "isNodeValid": true,
1605 "links": {"next1": "939a914c-bf01-4e14-8491-2f4f5a231c13"},
1606 "position": {"x": 1263, "y": 510}
1607 }
1608 }, "name": "", "root": "be5dc786-a37b-40a4-828a-f1c604fe1e1b", "debug": "", "fileName": "auth.wf"
1609});
1610db.workflows.insert({
1611 "_id": "5e3d4940cac36ed1181652c4",
1612 "nodes": {
1613 "7d4c192c-ff3d-43c2-b235-0636308b47af": {
1614 "name": "formatter",
1615 "format": "json",
1616 "propsValidity": {"format": true, "propsValidity": true},
1617 "position": {"x": 1558, "y": 1030},
1618 "type": "formatter"
1619 },
1620 "e9002a50-b1ee-41e4-8294-c020194f43b0": {
1621 "propsValidity": {"code": true, "propsValidity": true},
1622 "isNodeValid": true,
1623 "links": {"next1": "7d4c192c-ff3d-43c2-b235-0636308b47af"},
1624 "position": {"x": 1557, "y": 875},
1625 "type": "ottojs",
1626 "code": "idp.otp.validate.afterRedis",
1627 "name": "ottojs"
1628 },
1629 "b8427254-2cd0-4679-9462-023251e14a2f": {
1630 "code": "idp.otp.validate",
1631 "name": "ottojs",
1632 "propsValidity": {"code": true, "propsValidity": true},
1633 "isNodeValid": true,
1634 "links": {"next1": "8991db7c-b9c5-4503-8195-5eaed57dba8a"},
1635 "position": {"x": 1557, "y": 571},
1636 "type": "ottojs"
1637 },
1638 "8991db7c-b9c5-4503-8195-5eaed57dba8a": {
1639 "isNodeValid": true,
1640 "links": {"next1": "e9002a50-b1ee-41e4-8294-c020194f43b0"},
1641 "position": {"x": 1557, "y": 728},
1642 "type": "redis",
1643 "redisHost": "redis:6379",
1644 "name": "redis",
1645 "propsValidity": {"propsValidity": true, "redisHost": true}
1646 }
1647 },
1648 "name": "",
1649 "root": "b8427254-2cd0-4679-9462-023251e14a2f",
1650 "debug": "",
1651 "fileName": "otp.validate.wf"
1652});
1653db.workflows.insert({
1654 "_id": "5e3d49392b55211e594f45db",
1655 "nodes": {
1656 "130505c0-f390-4eab-bd73-f375b6bc8884": {
1657 "isNodeValid": true,
1658 "links": {"next1": "7c62f1b9-1fee-4576-a96a-9fc384f126a5"},
1659 "position": {"x": 1115, "y": 518},
1660 "type": "ottojs",
1661 "code": "idp.startAdaphAuth",
1662 "name": "ottojs",
1663 "propsValidity": {"code": true, "propsValidity": true}
1664 },
1665 "7c62f1b9-1fee-4576-a96a-9fc384f126a5": {
1666 "name": "formatter",
1667 "format": "json",
1668 "propsValidity": {"format": true, "propsValidity": true},
1669 "position": {"x": 1118, "y": 800},
1670 "type": "formatter"
1671 }
1672 },
1673 "name": "",
1674 "root": "130505c0-f390-4eab-bd73-f375b6bc8884",
1675 "debug": "",
1676 "fileName": "l4e.startadapthAuth.wf"
1677});
1678db.workflows.insert({
1679 "_id": "5e3d48ceaf409290b28442c2",
1680 "nodes": {
1681 "362c1256-395d-4a43-b9c4-1de324267115": {
1682 "format": "json",
1683 "propsValidity": {"format": true, "propsValidity": true},
1684 "position": {"x": 1218, "y": 745},
1685 "type": "formatter",
1686 "name": "formatter"
1687 }
1688 },
1689 "name": "",
1690 "root": "362c1256-395d-4a43-b9c4-1de324267115",
1691 "debug": "",
1692 "fileName": "l4e.healthCheck.wf"
1693});
1694
1695
1696db.workflows.insert({
1697 "nodes": {
1698 "bcbea7e1-61c7-4c7c-a035-6c6518146888": {
1699 "format": "html",
1700 "propsValidity": {"format": true, "propsValidity": true},
1701 "isNodeValid": true,
1702 "links": {},
1703 "position": {"x": 1080, "y": 856},
1704 "type": "formatter",
1705 "name": "formatToJson"
1706 },
1707 "4cbff2a4-0577-465e-a8fd-7612767f0113": {
1708 "type": "ottojs",
1709 "code": "sso.openID.mapToUsernameTemplate",
1710 "meta": {"urlToRedirect": "https://3.91.71.10:7000"},
1711 "name": "mapToUsernameTemplate",
1712 "propsValidity": {"code": true, "propsValidity": true},
1713 "isNodeValid": true,
1714 "links": {"next1": "bcbea7e1-61c7-4c7c-a035-6c6518146888"},
1715 "position": {"x": 1758, "y": 504}
1716 },
1717 "ddd04364-b802-4227-973b-e42efb51c55c": {
1718 "propsValidity": {"propsValidity": true, "redisHost": true},
1719 "isNodeValid": true,
1720 "links": {"next1": "4cbff2a4-0577-465e-a8fd-7612767f0113"},
1721 "position": {"x": 1539, "y": 364},
1722 "type": "redis",
1723 "redisHost": "redis:6379",
1724 "name": "checkWorkflowState"
1725 },
1726 "7aa65e61-1ea3-4487-8e82-771081e65222": {
1727 "type": "ottojs",
1728 "code": "sso.openID.wf",
1729 "meta": {
1730 "urlBapi": "http://3.91.71.10:9000",
1731 "wf": "sso_openID",
1732 "urlToRedirect": "https://3.91.71.10:7000"
1733 },
1734 "name": "initWorkflow",
1735 "propsValidity": {"code": true, "propsValidity": true},
1736 "isNodeValid": true,
1737 "links": {"next1": "ddd04364-b802-4227-973b-e42efb51c55c", "next2": "bcbea7e1-61c7-4c7c-a035-6c6518146888"},
1738 "position": {"x": 1072, "y": 379}
1739 }
1740 }, "name": "", "root": "7aa65e61-1ea3-4487-8e82-771081e65222", "debug": "", "fileName": "sso.openID.wf"
1741});
1742
1743
1744db.workflows.insert(
1745 {
1746 "_id": "5e2764e650997133912c6453",
1747 "nodes": {
1748 "b08e3ff7-95c2-4ef1-8967-c57fe132hhww": {
1749 "name": "switchPlayFromRedis",
1750 "propsValidity": {
1751 "propsValidity": true,
1752 "code": true
1753 },
1754 "isNodeValid": true,
1755 "links": {
1756 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff5aabb",
1757 "next2": "0e123a72-08e5-4f0a-97f2-08140354ee22",
1758 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe87fs",
1759 "next4": "19afdfab-f52e-41be-a18b-ee8d78a412ss"
1760 },
1761 "position": {
1762 "x": 1226,
1763 "y": 519
1764 },
1765 "type": "ottojs",
1766 "code": "switchPlayFromRedis"
1767 },
1768 "51e01f50-dc77-44eb-87b3-ca4b1bfe87fs": {
1769 "code": "storeDeviceAndRequestTitan",
1770 "name": "storeDeviceAndRequestTitan",
1771 "propsValidity": {
1772 "code": true,
1773 "propsValidity": true
1774 },
1775 "isNodeValid": true,
1776 "links": {
1777 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1778 },
1779 "position": {
1780 "y": 447,
1781 "x": 1536
1782 },
1783 "type": "ottojs"
1784 },
1785 "3d79e5af-cd21-4a02-be9b-9c845ff5aabb": {
1786 "name": "storeUsername",
1787 "propsValidity": {
1788 "code": true,
1789 "propsValidity": true
1790 },
1791 "isNodeValid": true,
1792 "links": {
1793 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1794 },
1795 "position": {
1796 "x": 1535,
1797 "y": 688
1798 },
1799 "type": "ottojs",
1800 "code": "storeUsername"
1801 },
1802 "29950973-881d-4f9f-b16e-91046e2e4r2x": {
1803 "links": {
1804 "next1": "35fea4ed-6299-470b-bed5-54fbcce5e4o8"
1805 },
1806 "position": {
1807 "x": 708,
1808 "y": 519
1809 },
1810 "type": "redis",
1811 "redisHost": "redis:6379",
1812 "name": "redis",
1813 "propsValidity": {
1814 "redisHost": true,
1815 "propsValidity": true
1816 },
1817 "isNodeValid": true
1818 },
1819 "0e123a72-08e5-4f0a-97f2-08140354ee22": {
1820 "isNodeValid": true,
1821 "links": {
1822 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1823 },
1824 "position": {
1825 "x": 1533,
1826 "y": 563
1827 },
1828 "type": "ottojs",
1829 "code": "storePassword",
1830 "name": "storePasswordAndSetDevicesOrNot",
1831 "propsValidity": {
1832 "code": true,
1833 "propsValidity": true
1834 }
1835 },
1836 "5ad88fda-e225-4805-9c3e-dfcee43b17d3": {
1837 "name": "formatter",
1838 "format": "html",
1839 "propsValidity": {
1840 "format": true,
1841 "propsValidity": true
1842 },
1843 "isNodeValid": true,
1844 "position": {
1845 "x": 1897,
1846 "y": 502
1847 },
1848 "type": "formatter"
1849 },
1850 "19afdfab-f52e-41be-a18b-ee8d78a412ss": {
1851 "links": {
1852 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1853 },
1854 "position": {
1855 "y": 310,
1856 "x": 1530
1857 },
1858 "type": "ottojs",
1859 "code": "validateFromEmail",
1860 "name": "validateFromEmail",
1861 "propsValidity": {
1862 "code": true,
1863 "propsValidity": true
1864 },
1865 "isNodeValid": true
1866 },
1867 "35fea4ed-6299-470b-bed5-54fbcce5e4o8": {
1868 "type": "ottojs",
1869 "code": "beginPlay",
1870 "name": "beginPlay",
1871 "propsValidity": {
1872 "code": true,
1873 "propsValidity": true
1874 },
1875 "isNodeValid": true,
1876 "links": {
1877 "next1": "b08e3ff7-95c2-4ef1-8967-c57fe132hhww"
1878 },
1879 "position": {
1880 "x": 961,
1881 "y": 518
1882 }
1883 }
1884 },
1885 "name": "",
1886 "root": "29950973-881d-4f9f-b16e-91046e2e4r2x",
1887 "debug": "",
1888 "fileName": "sso.openID.param.wf"
1889 });
1890
1891
1892
1893db.workflows.insert(
1894 {
1895 "_id": "5e2764e650997133912c9942",
1896 "nodes": {
1897 "b08e3ff7-95c2-4ef1-8967-c57fe132oppo": {
1898 "name": "switchPlayFromRedis",
1899 "propsValidity": {
1900 "propsValidity": true,
1901 "code": true
1902 },
1903 "isNodeValid": true,
1904 "links": {
1905 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff5bbaa",
1906 "next2": "0e123a72-08e5-4f0a-97f2-08140354fftt",
1907 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe99az",
1908 "next4": "19afdfab-f52e-41be-a18b-ee8d78a4ud3s"
1909 },
1910 "position": {
1911 "x": 1226,
1912 "y": 519
1913 },
1914 "type": "ottojs",
1915 "code": "switchPlayFromRedis"
1916 },
1917 "51e01f50-dc77-44eb-87b3-ca4b1bfe99az": {
1918 "code": "SAMLstoreDeviceAndRequestTitan",
1919 "name": "storeDeviceAndRequestTitan",
1920 "propsValidity": {
1921 "code": true,
1922 "propsValidity": true
1923 },
1924 "isNodeValid": true,
1925 "links": {
1926 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1927 },
1928 "position": {
1929 "y": 447,
1930 "x": 1536
1931 },
1932 "type": "ottojs"
1933 },
1934 "3d79e5af-cd21-4a02-be9b-9c845ff5bbaa": {
1935 "name": "storeUsername",
1936 "propsValidity": {
1937 "code": true,
1938 "propsValidity": true
1939 },
1940 "isNodeValid": true,
1941 "links": {
1942 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1943 },
1944 "position": {
1945 "x": 1535,
1946 "y": 688
1947 },
1948 "type": "ottojs",
1949 "code": "SAMLstoreUsername"
1950 },
1951 "29950973-881d-4f9f-b16e-91046e2e56sk": {
1952 "links": {
1953 "next1": "35fea4ed-6299-470b-bed5-54fbcce5ddfm"
1954 },
1955 "position": {
1956 "x": 708,
1957 "y": 519
1958 },
1959 "type": "redis",
1960 "redisHost": "redis:6379",
1961 "name": "redis",
1962 "propsValidity": {
1963 "redisHost": true,
1964 "propsValidity": true
1965 },
1966 "isNodeValid": true
1967 },
1968 "0e123a72-08e5-4f0a-97f2-08140354fftt": {
1969 "isNodeValid": true,
1970 "links": {
1971 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1972 },
1973 "position": {
1974 "x": 1533,
1975 "y": 563
1976 },
1977 "type": "ottojs",
1978 "code": "SAMLstorePassword",
1979 "name": "storePasswordAndSetDevicesOrNot",
1980 "propsValidity": {
1981 "code": true,
1982 "propsValidity": true
1983 }
1984 },
1985 "5ad88fda-e225-4805-9c3e-dfcee43b00ws": {
1986 "name": "formatter",
1987 "format": "html",
1988 "propsValidity": {
1989 "format": true,
1990 "propsValidity": true
1991 },
1992 "isNodeValid": true,
1993 "position": {
1994 "x": 1897,
1995 "y": 502
1996 },
1997 "type": "formatter"
1998 },
1999 "19afdfab-f52e-41be-a18b-ee8d78a4ud3s": {
2000 "links": {
2001 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
2002 },
2003 "position": {
2004 "y": 310,
2005 "x": 1530
2006 },
2007 "type": "ottojs",
2008 "code": "SAMLvalidateFromEmail",
2009 "name": "validateFromEmail",
2010 "propsValidity": {
2011 "code": true,
2012 "propsValidity": true
2013 },
2014 "isNodeValid": true
2015 },
2016 "35fea4ed-6299-470b-bed5-54fbcce5ddfm": {
2017 "type": "ottojs",
2018 "code": "beginPlay",
2019 "name": "beginPlay",
2020 "propsValidity": {
2021 "code": true,
2022 "propsValidity": true
2023 },
2024 "isNodeValid": true,
2025 "links": {
2026 "next1": "b08e3ff7-95c2-4ef1-8967-c57fe132oppo"
2027 },
2028 "position": {
2029 "x": 961,
2030 "y": 518
2031 }
2032 }
2033 },
2034 "name": "",
2035 "root": "29950973-881d-4f9f-b16e-91046e2e56sk",
2036 "debug": "",
2037 "fileName": "sso.saml.param.wf"
2038 });
2039db.scripts.insert({
2040 "code": "function main() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2041 "name": "SAMLstoreDeviceAndRequestTitan"
2042});
2043db.scripts.insert({
2044 "code": "function main() {\n var redisClient = shared[\"Redis\"];\n console.log(\"1\");\n // var user = utils.GetUser(payload.username, body.split(\"=\")[1]);\n var user = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (user.id !== undefined \u0026\u0026 user.id !== null) {\n payload[\"mobile\"] = user.phoneNumbers[0].value;\n payload[\"mail\"] = user[\"mail\"];\n //user.IDPEmail = \"user75@salabs365-2.com\"\n //payload[\"NameID\"] = \"KmU/1zFVTkeqamT/Si1RmQ==\";\n console.log(\"---------\",JSON.stringify(user))\n payload[\"userId\"] = user[\"id\"];\n payload[\"attr\"] = JSON.stringify(user);\n payload[\"state\"] = \"choice\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"choice.html\"\n };\n console.log(JSON.stringify(user));\n } else {\n payload.status= \"error\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"error.html\"\n };\n }\n link = \"next1\";\n}\n\nmain();",
2045 "name": "SAMLstorePassword"
2046});
2047db.scripts.insert({
2048 "code": "function main() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2049 "name": "SAMLstoreUsername"
2050});
2051db.scripts.insert({
2052 "code": "function main() {\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success_saml.html\";\n payload ={\n id: payload.id,\n template: \"success_saml.html\",\n value : payload\n };\n link = \"next1\"\n}\n\n/*function processScopes(scopesVar) {\n console.log(\"Llega a los scopes\");\n var component = \"\";\n if(scopesVar) {\n var scopes = scopesVar.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n return component;\n}*/\n\nmain();",
2053 "name": "SAMLvalidateFromEmail"
2054});
2055db.scripts.insert({
2056 "code": "function main(){\n console.log(\"Pasa por aca\");\n payload= JSON.parse(JSON.stringify(payload));\n var status = payload.Status;\n payload = payload.Result;\n if(payload.hasOwnProperty('errors')) {\n var errorExtensions = payload.errors[0].extensions;\n status = errorExtensions.statusCode;\n delete errorExtensions.statusCode;\n payload=errorExtensions;\n } else {\n\n var firstAttrib = Object.keys(payload)[0];\n var data=payload[firstAttrib];\n var firstAttribData = Object.keys(data)[0];\n payload=data[firstAttribData];\n if(payload.hasOwnProperty('members')){\n payload.members = payload.members.map(function(member) {\n if(member.hasOwnProperty(\"ref\")) {\n member.$ref = member.ref;\n delete member.ref;\n }\n return member;\n });\n }\n }\n ctx.JSON(status, payload);\n next=\"end\";\n}\n\nmain();",
2057 "name": "after_graph_response"
2058});
2059db.scripts.insert({
2060 "code": "function main() {\n var redisClient=shared[\"Redis\"];\n var id= c.Param(\"id\")\n payload=JSON.parse(redisClient.Get(id).Val());\n payload.id=id;\n link=\"next1\";\n}\n\nmain();",
2061 "name": "beginPlay"
2062});
2063db.scripts.insert({
2064 "code": "function main() {\n console.log(\"Method \" + c.Request.Method);\n if(c.Query(\"clientId\") !== undefined \u0026\u0026 c.Query(\"clientId\") !== \"\" ) {\n handleOpenID();\n } else {\n handleSAML();\n }\n}\n\nfunction handleSAML() {\n if (c.Query(\"user\") !== null \u0026\u0026 c.Query(\"user\") !== \"\") {\n\n payload = {\n id: utils.GenerateUUID(),\n template: \"success_saml.html\",\n value: {\n attr:c.Query(\"attr\"),\n NameID: c.Query(\"NameID\"),\n next: c.Query(\"next\"),\n soid_code: c.Query(\"soid_code\"),\n state: \"success\"\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n console.log(\"Quiere pasar por el saml\");\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"default\",\n method: 'SAML',\n clientId: c.Query(\"clientId\"),\n soid_code: c.Query(\"code\"),\n nivel: \"1\",\n state: \"adaptive\"\n }\n }\n}\n\nfunction handleOpenID(){\n if (c.Query(\"userData\") !== null \u0026\u0026 c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userJSON= JSON.parse(userString);\n var userData = userString;\n var index = utils.CheckUserPrompt(userJSON, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n\n var component = \"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n\n if (index \u003e -1){\n show = \"hidden\";\n component = \"\";\n scopes = userJSON[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n var scopesComponent = component;\n payload = {\n template: \"success.html\",\n value: {\n wf: \"default\",\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random,\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"default\",\n method: 'OpenID',\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n }\n }\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e';\n }\n return component\n}\n\nmain();",
2065 "name": "default-wf.default.createWorkflow"
2066});
2067db.scripts.insert({
2068 "code": "function main() {\n link= \"next1\";\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n payload.value.wf=\"default\";\n payload.random = random;\n payload.template = \"username.html\";\n payload.err=null\n\n}\n\nmain();",
2069 "name": "default-wf.default.createWorkflow.prepareToTemplate"
2070});
2071db.scripts.insert({
2072 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\nfunction handleSAML() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nfunction handleOpenID() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2073 "name": "default-wf.default.storeDeviceAndRequestTitan"
2074});
2075db.scripts.insert({
2076 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\n\nfunction handleSAML() {\n var redisClient = shared[\"Redis\"];\n console.log(\"1\");\n var user = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (user.id !== undefined \u0026\u0026 user.id !== null) {\n payload[\"mobile\"] = user[\"mobile\"];\n payload[\"mail\"] = user[\"mail\"];\n payload[\"NameID\"] = \"KmU/1zFVTkeqamT/Si1RmQ==\";\n payload[\"attr\"] = JSON.stringify(user);\n payload[\"state\"] = \"choice\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"choice.html\"\n };\n console.log(JSON.stringify(user));\n } else {\n payload.status= \"error\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"error.html\"\n };\n }\n link = \"next1\";\n}\n\nfunction handleOpenID() {\n var state = \"choice\";\n var app = utils.GetAppMfa(payload.clientId);\n var voice = \"visible\";\n var mail = \"visible\";\n var sms = \"visible\";\n\n if (app.length === 0){\n state = \"success\"\n }else{\n if (app.indexOf(\"voice\")===-1) voice=\"disabled\";\n if (app.indexOf(\"mail\")===-1) mail=\"disabled\";\n if (app.indexOf(\"sms\")===-1) sms=\"disabled\";\n }\n\n console.log(\"storePassword\");\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component\n payload.scopes = scopes\n }\n\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = state;\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload= {\n id: payload.id,\n value: redisToSave,\n template: state+\".html\",\n voice:voice,\n mail:mail,\n sms:sms,\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload,\n };\n }\n link = \"next1\"\n}\n\n\n\nmain();",
2077 "name": "default-wf.default.storePassword"
2078});
2079db.scripts.insert({
2080 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\nfunction handleSAML() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nfunction handleOpenID() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2081 "name": "default-wf.default.storeUsername"
2082});
2083db.scripts.insert({
2084 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\n\nfunction handleSAML() {\n console.log(\"REsponse Try to handle saml\");\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success_saml.html\";\n payload ={\n id: payload.id,\n template: \"success_saml.html\",\n value : payload\n };\n link = \"next1\"\n}\n\nfunction handleOpenID() {\n console.log(\"REsponse Try to handle openid\");\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success.html\";\n payload ={\n id: payload.id,\n template: \"success.html\",\n value : payload\n };\n link = \"next1\"\n}\n\nmain();",
2085 "name": "default-wf.default.validateFromEmail"
2086});
2087db.scripts.insert({
2088 "code": "function main() {\n payload ={\n id: payload.id,\n operation: \"set\",\n random: payload.value.random,\n template: \"choice.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2089 "name": "getChoice"
2090});
2091db.scripts.insert({
2092 "code": "function main() {\n payload ={\n id: payload.id,\n random: payload.value.random,\n template: \"mail.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2093 "name": "getCode"
2094});
2095db.scripts.insert({
2096 "code": "function main() {\n var username= c.Param(\"userId\");\n console.log(username)\n var code = utils.GenerateUUID();\n shared[\"code\"]= code;\n console.log(code);\n payload ={\n id: code,\n operation: \"set\",\n value : {\n username: username\n }\n };\n link= \"next1\";\n\n}\n\nmain();",
2097 "name": "getFactors"
2098});
2099db.scripts.insert({
2100 "code": "function main() {\n payload = {\n id: payload.id,\n redirectUrl: payload.value.soidCode,\n err: \"Invalid data for the authentication\",\n template: \"password.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2101 "name": "getPassword"
2102});
2103db.scripts.insert({
2104 "code": "function main() {\n payload = {\n id: payload.id,\n random: payload.random,\n template: \"username.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2105 "name": "getUsername"
2106});
2107db.scripts.insert({
2108 "code": "function main() {\n if (c.Query(\"user\") !== null \u0026\u0026 c.Query(\"user\") !== \"\") {\n\n payload = {\n id: utils.GenerateUUID(),\n template: \"success_saml.html\",\n value: {\n attr:c.Query(\"attr\"),\n NameID: c.Query(\"NameID\"),\n next: c.Query(\"next\"),\n soid_code: c.Query(\"code\"),\n state: \"success\"\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n console.log(\"Quiere pasar por el saml\");\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"wf2\",\n clientId: c.Query(\"clientId\"),\n soid_code: c.Query(\"code\"),\n nivel: \"1\",\n state: \"adaptive\"\n }\n }\n}\n\nmain();",
2109 "name": "idp.SAML.createWorkflow"
2110});
2111db.scripts.insert({
2112 "code": "function main() {\n link= \"next1\";\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n payload.random = random;\n payload.template = \"username.html\";\n payload.err=null\n}\n\nmain();",
2113 "name": "idp.SAML.createWorkflow.prepareToTemplate"
2114});
2115db.scripts.insert({
2116 "code": "function main() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2117 "name": "idp.SAMLstoreDeviceAndRequestTitan"
2118});
2119db.scripts.insert({
2120 "code": "function main() {\n var redisClient = shared[\"Redis\"];\n console.log(\"1\");\n // var user = utils.GetUser(payload.username, body.split(\"=\")[1]);\n var user = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (user.id !== undefined \u0026\u0026 user.id !== null) {\n payload[\"mobile\"] = user[\"mobile\"];\n payload[\"mail\"] = user[\"mail\"];\n //user.IDPEmail = \"user75@salabs365-2.com\"\n payload[\"NameID\"] = \"KmU/1zFVTkeqamT/Si1RmQ==\";\n payload[\"attr\"] = JSON.stringify(user);\n payload[\"state\"] = \"choice\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"choice.html\"\n };\n console.log(JSON.stringify(user));\n } else {\n payload.status= \"error\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"error.html\"\n };\n }\n link = \"next1\";\n}\n\nmain();",
2121 "name": "idp.SAMLstorePassword"
2122});
2123db.scripts.insert({
2124 "code": "function main() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2125 "name": "idp.SAMLstoreUsername"
2126});
2127db.scripts.insert({
2128 "code": "function main() {\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success_saml.html\";\n payload ={\n id: payload.id,\n template: \"success_saml.html\",\n value : payload\n };\n link = \"next1\"\n}\n\n/*function processScopes(scopesVar) {\n console.log(\"Llega a los scopes\");\n var component = \"\";\n if(scopesVar) {\n var scopes = scopesVar.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n return component;\n}*/\n\nmain();",
2129 "name": "idp.SAMLvalidateFromEmail"
2130});
2131db.scripts.insert({
2132 "code": "function main() {\n payload= {\n message: \"\",\n realm_workflow: \"usernamepassword_2ndfactor\",\n status: \"TwoFactor\",\n suggested_action: \"2ndfactor\"\n };\n link=\"next1\";\n}\n\nmain();",
2133 "name": "idp.adaptAuthMockPing"
2134});
2135db.scripts.insert({
2136 "code": "function main() {\n console.log(payload);\n payload=payload.Result;\n link=\"next1\";\n}\n\nmain();",
2137 "name": "idp.afterIDP"
2138});
2139db.scripts.insert({
2140 "code": "function main(){\n console.log(\"Pasa por aca\");\n payload= JSON.parse(JSON.stringify(payload));\n var status = payload.Status;\n payload = payload.Result;\n if(payload.hasOwnProperty('errors')) {\n var errorExtensions = payload.errors[0].extensions;\n status = errorExtensions.statusCode;\n delete errorExtensions.statusCode;\n payload=errorExtensions;\n } else {\n\n var firstAttrib = Object.keys(payload)[0];\n var data=payload[firstAttrib];\n var firstAttribData = Object.keys(data)[0];\n payload=data[firstAttribData];\n if(payload.hasOwnProperty('members')){\n payload.members = payload.members.map(function(member) {\n if(member.hasOwnProperty(\"ref\")) {\n member.$ref = member.ref;\n delete member.ref;\n }\n return member;\n });\n }\n }\n ctx.JSON(status, payload);\n next=\"end\";\n}\n\nmain();",
2141 "name": "idp.after_graph_response"
2142});
2143db.scripts.insert({
2144 "code": "function main() {\n var redisClient=shared[\"Redis\"];\n var id= c.Param(\"id\")\n payload=JSON.parse(redisClient.Get(id).Val());\n payload.id=id;\n link=\"next1\";\n}\n\nmain();",
2145 "name": "idp.beginPlay"
2146});
2147db.scripts.insert({
2148 "code": "function main() {\n var request= JSON.parse(JSON.stringify(body));\n var signKey= \"ef81678f24ac9954a4b920dd046c3546\";\n payload=jdu.Decrypt(request.token, signKey)[0];\n console.log(JSON.stringify(payload));\n link=\"next1\";\n}\n\nmain();",
2149 "name": "idp.decrypt"
2150});
2151db.scripts.insert({
2152 "code": "function main(){\n console.log(\"this is the response \\t\\t\\t\\t\\t\\t\" + payload.Result);\n var tokenDecript=jdu.Decrypt(payload.Result, \"ef81678f24ac9954a4b920dd046c3546\")[0];\n payload={\n \"header\": tokenDecript.Header,\n \"payload\": tokenDecript.Claims\n };\n link=\"next1\";\n}\nmain();",
2153 "name": "idp.decryptFromPing"
2154});
2155db.scripts.insert({
2156 "code": "function main() {\n console.log(c.Param(\"userId\"))\n console.log(JSON.stringify(body));\n var provider =c.GetHeader(\"provider\");\n console.log(\"provider \" + provider);\n if(provider=== \"SecureAuth\") {\n link=\"next1\"\n } else {\n link=\"next2\"\n }\n}\n\nmain();",
2157 "name": "idp.defineToGo"
2158});
2159db.scripts.insert({
2160 "code": "function main() {\n console.log(\"Intenta entrar\");\n console.log(c.Param(\"userId\"));\n payload= {userId: c.Param(\"userId\")};\n if(provider=== \"SecureAuth\") {\n link=\"next2\"\n } else {\n link=\"next1\"\n }\n}\n\nmain();",
2161 "name": "idp.defineToGoFirstStep"
2162});
2163db.scripts.insert({
2164 "code": "function main() {\n console.log(\"quiere encriptar\")\n var header= {\n \"alg\": \"HS256\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"token\": \"ef81678f24ac9954a4b920dd046c3546\"\n };\n console.log(JSON.stringify(payload));\n var token =jdu.Encrypt(payload, header, \"ef81678f24ac9954a4b920dd046c3546\")[0];\n console.log(token);\n payload={\n provider: \"SecureAuth\",\n providerResult: token\n };\n link=\"next1\";\n}\n\n\nmain();",
2165 "name": "idp.encryptFromIDP"
2166});
2167db.scripts.insert({
2168 "code": "function main() {\n console.log(\"hola\")\n var request = JSON.parse(JSON.stringify(body));\n var jose = {\n \"alg\": \"HS256\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"token\": \"ef81678f24ac9954a4b920dd046c3546\"\n };\n var claimsBody={\"reqHeader\": {\n \"locale\": \"en\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"secretKey\": \"ef81678f24ac9954a4b920dd046c3546\",\n \"timestamp\": \"/Date(1574867116975)/\",\n \"version\": \"4.9\"\n },\n \"reqBody\": {\n \"userName\": \"A127921\",\n \"spAlias\": \"web\",\n \"deviceId\": \"3074124855525705000\",\n \"sessionId\": \"webs_8DRID7JyfTF0kLHKndMcm3CpqWuIyftperbTugiRUy0\"\n }}\n var signKey= \"ef81678f24ac9954a4b920dd046c3546\";\n token=jdu.Encrypt(claimsBody, jose, signKey);\n console.log(JSON.stringify(token));\n payload=token;\n}\n\nmain();\n",
2169 "name": "idp.encryptSample"
2170});
2171db.scripts.insert({
2172 "code": "function main() {\n console.log(\"Its working \" + JSON.stringify(payload));\n link=\"next1\"\n}\n\nmain();",
2173 "name": "idp.formatFromPingToL4E"
2174});
2175db.scripts.insert({
2176 "code": "function main() {\n console.log(\"quiere encriptar\");\n var header= {\n \"alg\": \"HS256\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"token\": \"ef81678f24ac9954a4b920dd046c3546\"\n };\n console.log(JSON.stringify(body));\n var token =jdu.EncryptAsPing(c, JSON.stringify(payload), JSON.stringify(header), \"QB2pN9ifZkbKRxybMYGlOBnXtrgGL2Lf/70iWt1CKGM\")[0];\n console.log(\"this is the generated token \" + token);\n payload={\n IsPlainText: true,\n Result: token\n };\n link=\"next1\";\n}\n\nmain();",
2177 "name": "idp.formatToPing"
2178});
2179db.scripts.insert({
2180 "code": "function main() {\n var oldData = payload;\n payload = shared[\"payload\"];\n\n var code = shared[\"code\"];\n console.log(code);\n console.log(JSON.stringify(oldData));\n var scimUser = payload.Result;\n var factors = [];\n var emails = fromEmailToFactor(scimUser, code);\n var mobile = fromMobileToFactor(scimUser, code);\n\n var redisClient = shared[\"Redis\"];\n redisClient.HSet(code, \"username\", oldData.value.username);\n redisClient.HSet(code, \"emails\", emails);\n redisClient.HSet(code, \"mobile\", mobile);\n redisClient.HSet(code, \"status\", \"selectFactor\");\n\n factors= factors.concat(emails);\n factors= factors.concat(mobile);\n\n payload= {\n factors: factors,\n message: \"\",\n status:\"found\",\n user_id: oldData.value.username\n };\n link= \"next1\";\n\n}\n\nfunction fromEmailToFactor(scimUser, code) {\n if(scimUser.emails===null || scimUser.emails === undefined ) {\n return [];\n }\n var valueToReturn = [];\n for (var i = 0; i \u003c scimUser.emails.length; i++) {\n valueToReturn.push({\n id: code+\":\"+scimUser.emails[i].value,\n type: \"email\",\n value: scimUser.emails[i].value\n });\n }\n console.log(JSON.stringify(valueToReturn))\n return valueToReturn;\n}\nfunction fromMobileToFactor(scimUser, code) {\n\n console.log(\"Condicion: \" + scimUser.phoneNumbers===null || scimUser.phoneNumbers === undefined);\n if(scimUser.phoneNumbers===null || scimUser.phoneNumbers === undefined ) {\n return [];\n }\n var valueToReturn = [];\n for (var i = 0; i \u003c scimUser.phoneNumbers.length; i++) {\n valueToReturn.push({\n id: code+\":\"+scimUser.phoneNumbers[i].value,\n type: \"email\",\n value: scimUser.phoneNumbers[i].value,\n capabilities: [\n \"sms\",\n \"call\"\n ]\n });\n }\n console.log(JSON.stringify(valueToReturn))\n return valueToReturn;\n}\n\nmain();",
2181 "name": "idp.fromScimToL4W.GetFactors"
2182});
2183db.scripts.insert({
2184 "code": "function main () {\n payload= \"eyJhbGciOiJIUzI1NiIsIm9yZ0FsaWFzIjoiNWY3OGI0ODgtMWJhZS00NDM2LWFiM2EtZjVlNTgzZDRlMTY1IiwidG9rZW4iOiJlZjgxNjc4ZjI0YWM5OTU0YTRiOTIwZGQwNDZjMzU0NiJ9.eyJyZXFIZWFkZXIiOnsibG9jYWxlIjoiZW4iLCJvcmdBbGlhcyI6IjVmNzhiNDg4LTFiYWUtNDQzNi1hYjNhLWY1ZTU4M2Q0ZTE2NSIsInNlY3JldEtleSI6ImVmODE2NzhmMjRhYzk5NTRhNGI5MjBkZDA0NmMzNTQ2IiwidGltZXN0YW1wIjoiXC9EYXRlKDE1NzQ3OTM1OTMwODIpXC8iLCJ2ZXJzaW9uIjoiNC45In0sInJlcUJvZHkiOnsic3BBbGlhcyI6IndlYiIsInVzZXJOYW1lIjoiQTEyNzkyMSJ9fQ.ESwYQjixhEGO5qmlq29ZpzsHuMrNOKvN_EHK5Hhvhp4\"\n link=\"next1\"\n}\n\nmain();",
2185 "name": "idp.generateTokenPing"
2186});
2187db.scripts.insert({
2188 "code": "function main() {\n payload ={\n id: payload.id,\n operation: \"set\",\n random: payload.value.random,\n template: \"choice.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2189 "name": "idp.getChoice"
2190});
2191db.scripts.insert({
2192 "code": "function main() {\n payload ={\n id: payload.id,\n random: payload.value.random,\n template: \"mail.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2193 "name": "idp.getCode"
2194});
2195db.scripts.insert({
2196 "code": "function main() {\n var username= c.Param(\"userId\");\n console.log(username);\n var code = utils.GenerateUUID();\n shared[\"code\"]= code;\n console.log(code);\n payload ={\n id: code,\n operation: \"set\",\n value : {\n username: username\n }\n };\n link= \"next1\";\n\n}\n\nmain();",
2197 "name": "idp.getFactors"
2198});
2199db.scripts.insert({
2200 "code": "function main() {\n payload = {\n id: payload.id,\n redirectUrl: payload.value.soidCode,\n err: \"Invalid data for the authentication\",\n template: \"password.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2201 "name": "idp.getPassword"
2202});
2203db.scripts.insert({
2204 "code": "function main() {\n payload = {\n id: payload.id,\n random: payload.random,\n template: \"username.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2205 "name": "idp.getUsername"
2206});
2207db.scripts.insert({
2208 "code": "var genericFields = {\n USER_FIELDS: [\"schemas\",\n \"id\",\n \"externalId\",\n \"expirationDate\",\n \"userName\",\n \"displayName\",\n \"nickName\",\n \"profileUrl\",\n \"title\",\n \"userType\",\n \"preferredLanguage\",\n \"locale\",\n \"timezone\",\n \"active\",\n \"password\",\n \"name { formatted \" +\n \" familyName \" +\n \" givenName \" +\n \" middleName \" +\n \" honorificPrefix \" +\n \" honorificSuffix}\",\n \"emails { type \" +\n \" value \" +\n \" primary \" +\n \" display}\",\n \"phoneNumbers { type \" +\n \" value \" +\n \" primary \" +\n \" display}\",\n \"ims {type \" +\n \" value \" +\n \" primary \" +\n \" display}\",\n \"photos { type \" +\n \" value \" +\n \" primary \" +\n \" display }\",\n \"addresses { formatted \" +\n \" streetAddress \" +\n \" locality \" +\n \" region \" +\n \" postalCode \" +\n \" country \" +\n \" type \" +\n \" primary}\",\n \"groups { value \" +\n \" ref \" +\n \" display \" +\n \" type}\",\n \"entitlements { value \" +\n \" display \" +\n \" type \" +\n \" primary}\",\n \"roles { value \" +\n \" display \" +\n \" type\" +\n \" primary }\",\n \"x509Certificates { value \" +\n \" display\" +\n \" type\" +\n \" primary}\",\n \"enterprise { employeeNumber \" +\n \" costCenter \" +\n \" organization \" +\n \" division \" +\n \" department \" +\n \" manager { value \" +\n \" ref \" +\n \" displayName}\" +\n \"}\",\n \"meta { resourceType \" +\n \" created \" +\n \" lastModified \" +\n \" location \" +\n \" version }\"\n ],\n GROUP_FIELDS: [\"schemas\",\"application\", \"id\", \"externalId\", \"displayName\", \"meta{resourceType \" +\n \"created \" +\n \"lastModified \" +\n \"location \" +\n \"version}\", \"members {value \" +\n \"ref \" +\n \"type \" +\n \"display }\"]\n};\n\nfunction requestQuery(queryName, responseFields, params) {\n var bodyElement = {query: buildBodyGraphQLQuery(queryName, responseFields, params).toString()};\n console.log(bodyElement);\n return bodyElement;\n}\n\nfunction requestMutation(mutationName, responseFields, params) {\n var bodyElement = {query: buildBodyGraphQLMutation(mutationName, responseFields, params).toString()};\n console.log(bodyElement);\n return bodyElement;\n}\n\nfunction buildBodyGraphQLMutation(queryName, responseFields, params) {\n return buildGraphQLRequest(queryName, responseFields, params, \"mutation\")\n}\n\nfunction buildBodyGraphQLQuery(queryName, responseFields, params) {\n return buildGraphQLRequest(queryName, responseFields, params, \"query\")\n}\n\n\nfunction buildGraphQLRequest(queryName, responseFields, params, queryType) {\n var responseFieldsToAdd = responseFields == null || undefined === responseFields || responseFields.length === 0 ? \"\" : \"{\" + responseFields + \"}\";\n if (params !== null \u0026\u0026 params !== undefined \u0026\u0026 params.length !== 0) {\n\n var firstDeclaration = \"(\" + params[0].variableName + \":\"+formatAsMutation(params[0].value);\n for (var i = 1; i \u003c params.length; i++) {\n firstDeclaration += \", $\" + params[i].variableName + \":\" + params[i].value;\n }\n firstDeclaration += \")\";\n return queryType +\" { \" + queryName + firstDeclaration + responseFieldsToAdd + \"}\";\n } else {\n console.log(responseFields);\n console.log(responseFieldsToAdd);\n return queryType + \" { \" + queryName + responseFieldsToAdd + \"}\";\n }\n}\n\nfunction formatAsMutation(object) {\n return JSON.stringify(object).replace(/{\\\"/g, \"{\")\n .replace(/,\\\"/g, \", \")\n .replace(/\\\":/g,\" :\")\n}\n\nfunction main() {\n var prev = payload.Result;\n if(prev.graphType === \"QUERY\") {\n return requestQuery(prev.operation, Array.isArray(prev.fields)? prev.fields: genericFields[prev.fields], prev.params)\n } else{\n return requestMutation(prev.operation, Array.isArray(prev.fields)? prev.fields: genericFields[prev.fields], prev.params)\n }\n}\n\n\nmain();",
2209 "name": "idp.graphqlUtil"
2210});
2211db.scripts.insert({
2212 "code": "function main () {\n console.log(JSON.stringify(payload));\n var value = body.factor_id.split(\":\")[1];\n switch (body.type) {\n case \"email\":utils.Mail(value, \"SOpenID - Code\", \"The code is \" + code);\n break;\n case \"call\": utils.Voice(code, value); break;\n case \"sms\": utils.SMS(code, value); break;\n }\n\n payload ={\n id: body.user_id,\n operation: \"set\",\n value : {\n code: code,\n username: body.user_id\n }\n };\n link = \"next1\"\n}\n\n\nmain();",
2213 "name": "idp.handleAuthRequest.afterRedis"
2214});
2215db.scripts.insert({
2216 "code": "function main() {\n console.log(\"After redis2 \" + JSON.stringify(payload));\n payload = {\n \"status\": \"valid\",\n \"message\": \"\",\n \"user_id\": payload.value.username\n };\n link = \"next1\"\n}\n\n\nmain();",
2217 "name": "idp.handleAuthRequest.afterRedis2"
2218});
2219db.scripts.insert({
2220 "code": "function main() {\n console.log(\"Transaction code: \"+body.factor_id.split(\":\")[0]);\n payload = {\n operation: \"get\",\n id: body.factor_id.split(\":\")[0]\n };\n link = \"next1\";\n}\n\nmain();",
2221 "name": "idp.handleAuthRequest"
2222});
2223db.scripts.insert({
2224 "code": "function main() {\n\n var initialData = {\n current: \"INIT_LOGON\",\n previous: \"NONE\",\n functionalTokens: \"NONE\",\n useJava: \"false\",\n isKiosk: \"true\",\n isFallBack: \"false\"\n }\n\n shared[\"Redis\"].HMSet(\"moiascoawdqlwkd\",initialData)\n\n if (shared[\"Redis\"].Exists(\"moiascoawdqlwkd\").Result()[0] == 1) {\n payload = shared[\"Redis\"].HGetAll(\"moiascoawdqlwkd\").Result()[0]\n }\n\n link=\"next1\"\n}\n\nmain();",
2225 "name": "idp.kiruData"
2226});
2227db.scripts.insert({
2228 "code": "function main(){\n var tokenDecript=jdu.Decrypt(body, \"ef81678f24ac9954a4b920dd046c3546\")[0];\n payload={\n \"header\": tokenDecript.Header,\n \"payload\": tokenDecript.Claims\n };\n link=\"next1\";\n}\n\nmain();",
2229 "name": "idp.manageIDP"
2230});
2231db.scripts.insert({
2232 "code": "function main() {\n var element = payload.payload.reqBody;\n payload= {\n user_id: element.userName,\n domain:\"\",\n otp:element.otp\n };\n idpHeader(c,\"SecureAuth19/api/v2/otp/validate\", \"de141d3f532be6035c3206083df96c8d1b645220094705aaa3ff9765b0a1a81e\", \"50b8bd3c9b8b4edfb83385ba180fccbb\", \"POST\", JSON.stringify(payload));\n link=\"next1\";\n}\n\nmain();",
2233 "name": "idp.mapFromAuthOfflineToIDP"
2234});
2235db.scripts.insert({
2236 "code": "function main() {\n var factorIdSplited = body.factor_id.split(\":\");\n var deviceId = factorIdSplited[0];\n var factorId = factorIdSplited[1];\n payload={\n \"reqHeader\": {\n \"locale\": \"en\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"secretKey\": \"ef81678f24ac9954a4b920dd046c3546\",\n \"timestamp\": \"/Date(1575038665075)/\",\n \"version\": \"4.9\"\n },\n \"reqBody\": {\n \"spAlias\": \"web\",\n \"userName\": body.user_id,\n \"sessionId\": null,\n \"deviceId\": deviceId,\n \"type\": body.type,\n \"factorId\": factorId\n }\n };\n link=\"next1\";\n}\nmain();",
2237 "name": "idp.mapFromAuthToPing"
2238});
2239db.scripts.insert({
2240 "code": "function main() {\n if(payload.Result.status !== \"valid\" ) {\n payload = {\n responseBody: {\n errorId:\"20535\",\n errorMsg: payload.Result.message\n }\n }\n } else {\n payload = {\n responseBody:{\n errorId:\"30005\",\n errorMsg: payload.Result.message\n }\n }\n }\n var header= {\n \"alg\": \"HS256\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"token\": \"ef81678f24ac9954a4b920dd046c3546\"\n };\n console.log(JSON.stringify(payload));\n payload =jdu.Encrypt(payload, header, \"ef81678f24ac9954a4b920dd046c3546\")[0];\n link=\"next1\";\n}\n\nmain();",
2241 "name": "idp.mapFromIDPSendEmailResponseToPing"
2242});
2243db.scripts.insert({
2244 "code": "function main() {\n console.log(JSON.stringify(payload));\n if(payload.Result.status !== \"valid\" ) {\n payload = {\n responseBody: {\n errorId:\"20517\",\n errorMsg: payload.Result.message\n }\n }\n } else {\n payload = {\n responseBody:{\n errorId:\"200\",\n errorMsg: payload.Result.message\n }\n }\n }\n var header= {\n \"alg\": \"HS256\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"token\": \"ef81678f24ac9954a4b920dd046c3546\"\n };\n console.log(JSON.stringify(payload));\n payload =jdu.Encrypt(payload, header, \"ef81678f24ac9954a4b920dd046c3546\")[0];\n\n link=\"next1\";\n}\nmain();",
2245 "name": "idp.mapFromIDPToAuthOffline"
2246});
2247db.scripts.insert({
2248 "code": "function main() {\n if(payload.Result.factors) {\n var mapped = [];\n var factors = payload.Result.factors;\n for (var i = 0 ; i \u003c factors.length; i++) {\n mapped.push(mapToIDP(factors[i]));\n }\n payload = {\n responseBody: {userDevices: mapped}\n };\n }else {\n payload = {error:\"We had an error trying to get the devices from IDP\", payload: payload.Result}\n }\n console.log(JSON.stringify(payload));\n link=\"next1\";\n}\n\nfunction mapToIDP(factor) {\n return {\n id: factor.id,\n deviceId: factor.id,\n type: factor.type,\n displayID: factor.value,\n phoneNumber: factor.value,\n email: factor.value\n };\n}\n\nmain();",
2249 "name": "idp.mapFromIDPToPing"
2250});
2251db.scripts.insert({"code": "function main() {\n\n}\n\nmain();", "name": "idp.mapFromPingToAuthResponse"});
2252db.scripts.insert({
2253 "code": "function main() {\n console.log(JSON.stringify(payload));\n console.log(\"user devices \\n\\n\\n\\n\\n\"+JSON.stringify(payload.payload.responseBody.userDevices));\n if (payload.payload.responseBody.userDevices) {\n var mapped = [];\n var factors= payload.payload.responseBody.userDevices;\n for (var i = 0 ; i \u003c factors.length; i++) {\n mapped.push(mapToIDP(factors[i]));\n }\n payload = {\n factors: mapped,\n \"message\": \"\",\n \"status\": \"found\",\n \"user_id\": c.Param(\"userId\")\n };\n } else {\n payload = {error:\"We had an error trying to get the devices from PING\", payload: payload}\n }\n console.log(JSON.stringify(payload));\n link=\"next1\";\n}\n\nfunction mapToIDP(factor) {\n return {\n id: factor.id+\":\"+factor.deviceId,\n type: factor.type,\n value: factor.email? factor.email : (factor.phoneNumber?factor.phoneNumber:factor.disoplayID)\n };\n}\n\nmain();",
2254 "name": "idp.mapFromPingToGetDevices"
2255});
2256db.scripts.insert({
2257 "code": "function main() {\n console.log(\"Aca mapeando\");\n var element = payload.payload.reqBody;\n console.log(JSON.stringify(element));\n payload = {\n user_id: element.userName,\n type: element.type,\n factor_id: element.factorId\n };\n idpHeader(c,\"SecureAuth19/api/v2/auth\", \"de141d3f532be6035c3206083df96c8d1b645220094705aaa3ff9765b0a1a81e\", \"50b8bd3c9b8b4edfb83385ba180fccbb\", \"POST\", JSON.stringify(payload));\n link=\"next1\";\n\n}\n\nmain();",
2258 "name": "idp.mapFromPingToIDPSendEmail"
2259});
2260db.scripts.insert({
2261 "code": "function main() {\n payload = {\n \"reqHeader\": {\n \"locale\": \"en\",\n \"orgAlias\": \"5f78b488-1bae-4436-ab3a-f5e583d4e165\",\n \"secretKey\": \"ef81678f24ac9954a4b920dd046c3546\",\n \"timestamp\": \"/Date(1575038665075)/\",\n \"version\": \"4.9\"\n },\n \"reqBody\": {\n \"spAlias\": \"web\",\n \"userName\": c.Param(\"userId\"),\n }\n };\n link= \"next1\";\n}\n\nmain();",
2262 "name": "idp.mapToPingGetFactors"
2263});
2264db.scripts.insert({
2265 "code": "function main() {\n console.log(\"Esto es el body cuando authentica \"+JSON.stringify(body));\n var redisClient = shared[\"Redis\"];\n var userData = utils.GetUserWithoutPasswordAndDomain(body.user_id);\n console.log(\"This is the Ip: \\t\" + c.Request.RemoteAddr);\n utils.SetInRedis(\"1234\", JSON.stringify(userData[0]), 1200,redisClient);\n var d = new Date();\n payload= {\n \"status\": \"valid\",\n \"message\": (d.getMonth()+1)+\"/\"+d.getDate()+\"/\"+d.getFullYear()+\" \"+ d.getTime()\n };\n link=\"next1\"\n}\n\nmain();",
2266 "name": "idp.otp.validate.afterRedis"
2267});
2268db.scripts.insert({
2269 "code": "function main () {\n console.log(\"Esto es el body cuando authentica \"+JSON.stringify(body));\n var d = new Date();\n payload= {\n operation:\"get\",\n id: body.user_id\n };\n link=\"next1\"\n}\n\nmain();",
2270 "name": "idp.otp.validate"
2271});
2272db.scripts.insert({
2273 "code": "function main() {\n shared[\"payload\"]= payload;\n payload = {\n operation: \"get\",\n id: shared[\"code\"]\n };\n link = \"next1\";\n}\n\nmain();",
2274 "name": "idp.resultGetFactos"
2275});
2276db.scripts.insert({
2277 "code": "//c.JSON(200, { the_node: \"node2\", ga: time, s: payload, d: 11 });\nlink=\"next1\";\n\nfunction main() {\n //payload = \"\u003ctest\u003e\u003cbody\u003e\u003cedad\u003e27\u003c/edad\u003e\u003c/body\u003e\u003c/test\u003e\"\n payload = {\"totalRisk\": 4, risks: {\"userRisk\": 4, \"groupRisk\": 0}}\n}\nmain()",
2278 "name": "idp.script2"
2279});
2280db.scripts.insert({
2281 "code": "link=\"next1\"\n//payload = {\"total risk\": 15, risks: {\"ip risk\": 10, \"geo risk\": 5}}\npayload = {username: \"uriel\"}\n",
2282 "name": "idp.script3"
2283});
2284db.scripts.insert({"code": "link=\"next1\"\npayload = {error: payload}\n", "name": "idp.scriptError"});
2285db.scripts.insert({
2286 "code": "function main() {\n if (c.Query(\"userData\") !== null \u0026\u0026 c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userJSON= JSON.parse(userString);\n var userData = userString;\n var index = utils.CheckUserPrompt(userJSON, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n\n var component = \"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n\n if (index \u003e -1){\n show = \"hidden\";\n component = \"\";\n scopes = userJSON[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n var scopesComponent = component\n payload = {\n template: \"success.html\",\n value: {\n wf: \"wf1\",\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random,\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"wf1\",\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n }\n }\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e';\n }\n return component\n}\n\nmain();",
2287 "name": "idp.sso.test.createWorkflow"
2288});
2289db.scripts.insert({
2290 "code": "function main() {\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n payload.value.wf=\"wf1\";\n payload.random= random;\n payload.template= \"username.html\";\n payload.err=null\n link= \"next1\";\n}\n\nmain();",
2291 "name": "idp.sso.test.createWorkflow.prepareToTemplate"
2292});
2293db.scripts.insert({
2294 "code": "function main() {\n link= \"next1\";\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n console.log(payload.value.ip_threat)\n if(payload.value.ip_threat == \"HIGH\")\n {\n payload = {\n value: { wf: \"ip_threat/wf1\"},\n id: payload.id,\n random: random,\n template: \"error.html\",\n err: \"High Risk\"\n }\n }\n else {\n\n payload = {\n value: { wf: \"ip_threat/wf1\"},\n id: payload.id,\n random: random,\n template: \"username.html\",\n };\n payload.err = null\n }\n}\n\nmain();",
2295 "name": "idp.sso.test.createWorkflow.prepareToTemplate_IPThreat"
2296});
2297db.scripts.insert({
2298 "code": "function main() {\n\n //ip1 = utils.GetIp()\n //ip1 = \"190.221.41.203\" //LOW\n ip1 = \"118.132.0.26\" // MEDIUM\n // ip1 = \"175.107.214.187\" //HIGH\n\n // ip1 = c.Query(\"ip\")\n\n\n var token_url = \"https://us-services.dev.secureauth.com/oauth/v1/token?client_id=a6800b89-53e9-444c-9a51-e0e1b0669ede\u0026client_secret=dc96a929f1d203adb9720abb4b6d49b526d4f9f5\u0026grant_type=client_credentials\"\n var risk_url = \"https://us-services.dev.secureauth.com/ipintel/v1/risk\"\n\n console.log(\"IP: \" + ip1)\n\n kCli.URL(token_url)\n req1 = kCli.Request();\n req1.Method(\"POST\");\n res1 = req1.Send();\n\n console.log(\"luego del token\")\n var token_response = JSON.parse(res1[0].String())\n console.log(token_response)\n\n //////////////////////////////////////////////////////\n kCli.URL(risk_url)\n req2 = kCli.Request();\n body = { \"ip\" : ip1}\n req2.Use(kBodyJSON(body))\n req2.Method(\"POST\");\n req2.SetHeader(\"Authorization\", \"Bearer \" + token_response.access_token)\n res2 = req2.Send();\n var risk_response = JSON.parse(res2[0].String())\n console.log(JSON.stringify(risk_response))\n console.log(\"country: \" + risk_response.geoLocation.country);\n console.log(\"risk factor: \" + risk_response.risk.riskFactor);\n\nswitch (risk_response.geoLocation.country) {\n case \"pakistan\":\n ip_threat = \"HIGH\"\n break;\n case \"china\":\n ip_threat = \"MEDIUM\"\n break;\n case \"argentina\":\n ip_threat = \"LOW\"\n break;\n default:\n ip_threat = \"MEDIUM\"\n break;\n }\n\n//////////////////////////\n\n\n\n if (c.Query(\"userData\") !== null \u0026\u0026 c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userJSON= JSON.parse(userString);\n var userData = userString;\n var index = utils.CheckUserPrompt(userJSON, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n\n var component = \"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n\n if (index \u003e -1){\n show = \"hidden\";\n component = \"\";\n scopes = userJSON[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n var scopesComponent = component\n payload = {\n template: \"success.html\",\n value: {\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"ip_threat/wf1\",\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n ip_threat: ip_threat\n }\n }\n\n console.log(\"payload.value.ip_threat\")\n console.log(payload.value.ip_threat)\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e';\n }\n return component\n}\n\nmain();",
2299 "name": "idp.sso.test.createWorkflow_IPThreat"
2300});
2301db.scripts.insert({
2302 "code": "function main() {\n payload = {\"message\":\"\",\"realm_workflow\":\"usernamepassword_2ndfactor\",\"status\":\"TwoFactor\",\"suggested_action\":\"2ndfactor\"}\n link= \"next1\";\n}\n\nmain();",
2303 "name": "idp.startAdaphAuth"
2304});
2305db.scripts.insert({
2306 "code": "function main() {\n console.log(\"arranca\");\n console.log(payload);\n var user=payload.payload.reqBody.userName;\n\n addParam(c, \"user\", user );\n idpHeader(c,\"SecureAuth19/api/v1/users/\"+user+\"/factors\", \"de141d3f532be6035c3206083df96c8d1b645220094705aaa3ff9765b0a1a81e\", \"50b8bd3c9b8b4edfb83385ba180fccbb\", \"GET\",null);\n console.log(\"finaliza2\");\n link=\"next1\";\n\n}\nmain();\n\n",
2307 "name": "idp.startAuthenticateIDP"
2308});
2309db.scripts.insert({
2310 "code": "function main() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2311 "name": "idp.storeDeviceAndRequestTitan"
2312});
2313db.scripts.insert({
2314 "code": "function main() {\n var state = \"choice\"\n var app = utils.GetAppMfa(payload.clientId);\n var voice = \"visible\"\n var mail = \"visible\"\n var sms = \"visible\"\n\n if (app.length === 0){\n state = \"success\"\n }else{\n if (app.indexOf(\"voice\")===-1) voice=\"disabled\"\n if (app.indexOf(\"mail\")===-1) mail=\"disabled\"\n if (app.indexOf(\"sms\")===-1) sms=\"disabled\"\n }\n\n\n\n console.log(\"storePassword\");\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n //var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1]);\n console.log(\"clientid:\" + payload.clientId)\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component\n payload.scopes = scopes\n }\n\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = state;\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload= {\n id: payload.id,\n value: redisToSave,\n template: state+\".html\",\n voice:voice,\n mail:mail,\n sms:sms,\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload,\n };\n }\n link = \"next1\"\n}\n\nmain();",
2315 "name": "idp.storePassword"
2316});
2317db.scripts.insert({
2318 "code": "function main() {\n console.log(\"storePassword\");\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n\n console.log(\"payload domain\")\n console.log(JSON.stringify(payload))\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n console.log(\"ipthreat\")\n console.log(payload.ip_threat)\n\n \n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component\n payload.scopes = scopes\n }\n\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = payload.ip_threat === \"LOW\"? \"success\" : payload.ip_threat === \"MEDIUM\"? \"choice\":\"username\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload= {\n id: payload.id,\n value: redisToSave,\n template: payload.ip_threat === \"LOW\"? \"success.html\" : payload.ip_threat === \"MEDIUM\"? \"choice.html\":\"error.html\",\n err: payload.ip_threat == \"HIGH\" ? \"High Risk\" : \"\"\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload\n };\n }\n link = \"next1\"\n}\n\nmain();",
2319 "name": "idp.storePassword_IPThreat"
2320});
2321db.scripts.insert({
2322 "code": "function main() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n\n console.log(\"password\")\n console.log(JSON.stringify(redisToSave))\n\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2323 "name": "idp.storeUsername"
2324});
2325db.scripts.insert({
2326 "code": "function main() {\n switch (payload.state) {\n case \"password\":\n console.log(\"Va a validate password\");\n link=\"next2\";\n break;\n case \"choice\":\n console.log(\"Va a validate device\");\n link=\"next3\";\n break;\n case \"email\":\n console.log(\"Va a validate con email\");\n link=\"next4\";\n break;\n default:\n console.log(\"Va a storear username\");\n link=\"next1\";\n break;\n }\n}\n\nmain();",
2327 "name": "idp.switchPlayFromRedis"
2328});
2329db.scripts.insert({
2330 "code": "function main() {\n link=\"next\";\n payload = {result: {test: 21}};\n //payload = ['list', 2];\n //payload = \"\u003cnote\u003e \u003cto\u003eTo\u003c/to\u003e \u003cfrom\u003eFrom\u003c/from\u003e \u003cheading\u003eHeading\u003c/heading\u003e \u003cbody\u003eBody!\u003c/body\u003e \u003c/note\u003e\"\n}\n\nmain();",
2331 "name": "idp.test2"
2332});
2333db.scripts.insert({
2334 "code": "function main() {\n link=\"next\";\n payload = {node: \"node3\", ga: time, s: payload, d: 11 };\n}\nmain();\n",
2335 "name": "idp.test3"
2336});
2337db.scripts.insert({
2338 "code": "function main() {\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success.html\";\n payload ={\n id: payload.id,\n template: \"success.html\",\n value : payload\n };\n link = \"next1\"\n}\n\n/*function processScopes(scopesVar) {\n console.log(\"Llega a los scopes\");\n var component = \"\";\n if(scopesVar) {\n var scopes = scopesVar.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n return component;\n}*/\n\nmain();",
2339 "name": "idp.validateFromEmail"
2340});
2341db.scripts.insert({
2342 "code": "function main() {\n var tokenToValidate= c.Query(\"token\");\n var parts = tokenToValidate.split(\".\");\n link=\"next1\";\n if (parts.length \u003c=1) {\n payload.Result = {error: \"No Token present\"};\n payload.Status = 400;\n return;\n }\n var redis = shared[\"Redis\"];\n var claims=jdu.GetClaims(parts[1]);\n var claimData=claims['jti'];\n var idTokenStored = redis.HGet(claimData, 'id_token').Val();\n if(idTokenStored !== tokenToValidate) {\n payload.Result = {error: \"Error validating token\"};\n payload.Status = 403;\n return;\n } else {\n payload.Status = 200;\n return;\n }\n}\n\nmain();",
2343 "name": "idp.validateToken"
2344});
2345db.scripts.insert({
2346 "code": "function main() {\n console.log(\"response from idp \"+ JSON.stringify(payload));\n payload={\n provider: \"SecureAuth\",\n providerResult: payload\n };\n console.log(\"response de idp: \"+ JSON.stringify(payload));\n link=\"next1\";\n}\nmain();",
2347 "name": "idp.wrapIDP"
2348});
2349db.scripts.insert({
2350 "code": "function main() {\n console.log(JSON.stringify(payload));\n payload={\n provider: \"ping\",\n providerResult: payload.Result\n };\n link=\"next1\";\n}\n\nmain();",
2351 "name": "idp.wrapPing"
2352});
2353db.scripts.insert({
2354 "code": "function main() {\n var redisClient=shared[\"Redis\"];\n var id= c.Param(\"id\");\n payload=JSON.parse(redisClient.Get(id).Val());\n payload.id=id;\n link=\"next1\";\n}\n\nmain();",
2355 "name": "ipsafe.beginPlay"
2356});
2357db.scripts.insert({
2358 "code": "function main() {\n if(c.Query(\"cli\" +\n \"entId\") !== undefined \u0026\u0026 c.Query(\"clientId\") !== \"\" ) {\n console.log(\"Va a openid\");\n handleOpenID();\n } else {\n console.log(\"Va a saml\");\n handleSAML();\n }\n utils.SetInRedis(payload.id, JSON.stringify(payload), 600, shared[\"Redis\"]);\n}\n\nfunction handleSAML() {\n if (c.Query(\"user\") !== null \u0026\u0026 c.Query(\"user\") !== \"\") {\n payload = {\n id: utils.GenerateUUID(),\n template: \"success_saml.html\",\n value: {\n attr:c.Query(\"attr\"),\n NameID: c.Query(\"NameID\"),\n next: c.Query(\"next\"),\n soid_code: c.Query(\"soid_code\"),\n state: \"success\"\n }\n };\n link=\"next2\";\n return\n }\n if (c.Query(\"userId\") !== null \u0026\u0026 c.Query(\"userId\") !== \"\") {\n payload = {\n id: utils.GenerateUUID(),\n template: \"password.html\",\n value: {\n userId: c.Query(\"userId\"),\n\n soid_code: c.Query(\"code\"),\n state: \"password\"\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n console.log(\"Quiere pasar por el saml\");\n payload = {\n id: utils.GenerateUUID(),\n template: \"username.html\",\n method: 'SAML',\n wf: \"default\",\n method: 'SAML',\n clientId: c.Query(\"clientId\"),\n soid_code: c.Query(\"code\"),\n nivel: \"1\",\n state: \"adaptive\",\n value: {\n wf: \"default\",\n method: 'SAML',\n clientId: c.Query(\"clientId\"),\n soid_code: c.Query(\"code\"),\n nivel: \"1\",\n state: \"adaptive\"\n }\n };\n}\n\nfunction handleOpenID(){\n\n\n if (c.Query(\"userData\") !== null \u0026\u0026 c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userData = JSON.parse(userString);\n var index = utils.CheckUserPrompt(userData, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n var component = \"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n\n if (index \u003e -1){\n show = \"hidden\";\n component = \"\";\n scopes = userData[\"sessionscopes\"][index].scopes.split(\" \");\n console.log(\"Paso la linea 84\");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n var scopesComponent = component;\n\n console.log(\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\nEste es el username: \" + JSON.stringify(userData));\n payload = {\n id: utils.GenerateUUID(),\n state:\"password\",\n template: \"password.html\",\n username: userData.userName,\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n method: \"OpenID\",\n value: {\n state:\"password\",\n template: \"password.html\",\n code: c.Query(\"code\"),\n method: \"OpenID\",\n wf: \"ipsafe\",\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random,\n }\n\n };\n link=\"next1\";\n return\n }\n link= \"next1\";\n payload = {\n id: utils.GenerateUUID(),\n template: \"username.html\",\n wf: \"ipsafe\",\n method: 'OpenID',\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n value: {\n wf: \"ipsafe\",\n method: 'OpenID',\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\"\n }\n };\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e';\n }\n return component\n}\n\nmain();",
2359 "name": "ipsafe.ipsafe.createWorkflow"
2360});
2361db.scripts.insert({
2362 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\n\nfunction handleSAML() {\n var redisClient = shared[\"Redis\"];\n var user = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (user.id !== undefined \u0026\u0026 user.id !== null) {\n payload[\"mobile\"] = user[\"mobile\"];\n payload[\"mail\"] = user[\"mail\"];\n payload[\"NameID\"] = \"KmU/1zFVTkeqamT/Si1RmQ==\";\n payload[\"attr\"] = JSON.stringify(user);\n payload[\"state\"] = \"success\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"sucess_saml.html\"\n };\n console.log(JSON.stringify(user));\n } else {\n payload.status= \"error\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value: redisToSave,\n template: \"error.html\"\n };\n }\n link = \"next1\";\n}\n\nfunction handleOpenID() {\n var state = \"success\";\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n if(scimUser[\"sessionscopes\"][index].scopes !== undefined) {\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component;\n payload.scopes = scopes\n }\n }\n payload.state = state;\n payload.userData = JSON.stringify(scimUser);\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload.userData = JSON.stringify(scimUser);\n payload= {\n id: payload.id,\n userData: redisToSave.userData,\n value: redisToSave,\n template: state+\".html\",\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n var redisToSave = payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload,\n };\n }\n link = \"next1\"\n}\n\n\n\nmain();\n",
2363 "name": "ipsafe.ipsafe.password"
2364});
2365db.scripts.insert({
2366 "code": "function main() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"mail.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n payload.state=\"email\";\n var redisToSave=payload;\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2367 "name": "ipsafe.ipsafe.secondFactor"
2368});
2369db.scripts.insert({
2370 "code": "function main() {\n console.log(payload.method);\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\nfunction handleSAML() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n payload['username']= body.split(\"=\")[1];\n var scimUser =utils.GetUserWithoutPasswordOtto(payload.username, payload.clientId);\n console.log(\"User info: \" + JSON.stringify(scimUser));\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = \"choice\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"choice.html\"\n };\n link = \"next1\"\n}\n\nfunction handleOpenID() {\n var redisClient = shared[\"Redis\"];\n payload['username']= body.split(\"=\")[1];\n var scimUser =utils.GetUserWithoutPasswordOtto(payload.username, payload.clientId);\n console.log(\"User info: \" + JSON.stringify(scimUser));\n payload.userData = JSON.stringify(scimUser);\n console.log(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = \"choice\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"choice.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2371 "name": "ipsafe.ipsafe.username"
2372});
2373db.scripts.insert({
2374 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\n\nfunction handleSAML() {\n console.log(\"Response Try to handle saml\");\n code=body.split(\"=\")[1];\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el password\");\n payload.state= \"password\";\n payload.template=\"password.html\";\n utils.SetInRedis(payload.id, payload, 600, redisClient);\n payload ={\n id: payload.id,\n template: \"password.html\",\n value : payload\n };\n link = \"next1\"\n}\n\nfunction handleOpenID() {\n code=body.split(\"=\")[1];\n var redisClient = shared[\"Redis\"];\n console.log(\"\\n\\n\\n\\n\\n This is the code: \\t\" + code);\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n var redisToSave= payload;\n console.log(\"\\n\\n\\n\\n\\n\\nVa a al state mail\");\n\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"\\n\\n\\n\\n\\nVa a al state password supuestamente\");\n payload.state= \"password\";\n payload.template=\"password.html\";\n var redisToSave = payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n template: \"password.html\",\n value : payload\n };\n link = \"next1\"\n}\n\nmain();",
2375 "name": "ipsafe.ipsafe.validate"
2376});
2377db.scripts.insert({
2378 "code": "function main() {\n switch (payload.state) {\n case \"password\":\n console.log(\"Va a validate password\");\n link=\"next4\";\n break;\n case \"choice\":\n console.log(\"Va a validate device\");\n link=\"next2\";\n break;\n case \"email\":\n console.log(\"Va a validate con email\");\n link=\"next3\";\n break;\n default:\n console.log(\"Va a storear username\");\n link=\"next1\";\n break;\n }\n}\n\nmain();",
2379 "name": "ipsafe.switchIpSafe"
2380});
2381db.scripts.insert({
2382 "code": "function main() {\n console.log(\"Esto es el body cuando authentica \"+JSON.stringify(body));\n var d = new Date();\n payload= {\n \"status\": \"valid\",\n \"message\": (d.getMonth()+1)+\"/\"+d.getDate()+\"/\"+d.getFullYear()+\" \"+ d.getTime()\n };\n link=\"next1\"\n}\n\nmain();",
2383 "name": "otp.validate.afterRedis"
2384});
2385db.scripts.insert({
2386 "code": "function main () {\n console.log(\"Esto es el body cuando authentica \"+JSON.stringify(body));\n var d = new Date();\n payload= {\n operation:\"get\",\n id: body.user_id\n };\n link=\"next1\"\n}\n\nmain();",
2387 "name": "otp.validate"
2388});
2389db.scripts.insert({
2390 "code": "function main() {\n shared[\"payload\"]= payload;\n payload = {\n operation: \"get\",\n id: shared[\"code\"]\n };\n link = \"next1\";\n}\n\nmain();",
2391 "name": "resultGetFactos"
2392});
2393db.scripts.insert({
2394 "code": "//c.JSON(200, { the_node: \"node2\", ga: time, s: payload, d: 11 });\nlink=\"next1\";\n\nfunction main() {\n //payload = \"\u003ctest\u003e\u003cbody\u003e\u003cedad\u003e27\u003c/edad\u003e\u003c/body\u003e\u003c/test\u003e\"\n payload = {\"totalRisk\": 4, risks: {\"userRisk\": 4, \"groupRisk\": 0}}\n}\nmain()",
2395 "name": "script2"
2396});
2397db.scripts.insert({
2398 "code": "link=\"next1\"\n//payload = {\"total risk\": 15, risks: {\"ip risk\": 10, \"geo risk\": 5}}\npayload = {username: \"uriel\"}\n",
2399 "name": "script3"
2400});
2401db.scripts.insert({"code": "link=\"next1\"\npayload = {error: payload}\n", "name": "scriptError"});
2402db.scripts.insert({
2403 "code": "function main() {\n link= \"next1\";\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n console.log(payload.value.ip_threat)\n if(payload.value.ip_threat == \"HIGH\")\n {\n payload = {\n value: { wf: \"ip_threat/sso_openID\"},\n id: payload.id,\n random: random,\n template: \"error.html\",\n err: \"High Risk\"\n }\n }\n else {\n\n payload = {\n value: { wf: \"ip_threat/sso_openID\"},\n id: payload.id,\n username: payload.username,\n random: random,\n template: \"username.html\",\n };\n payload.err = null\n }\n}\n\nmain();",
2404 "name": "sso.openID.mapToUsernameTemplate.IPThreat"
2405});
2406db.scripts.insert({
2407 "code": "function main() {\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n payload.value.wf=\"sso_openID\";\n payload.random= random;\n payload.template= \"username.html\";\n payload.err=null\n link= \"next1\";\n}\n\nmain();",
2408 "name": "sso.openID.mapToUsernameTemplate"
2409});
2410db.scripts.insert({
2411 "code": "function main() {\n if (c.Query(\"userData\") !== null && c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userJSON= JSON.parse(userString);\n var userData = userString;\n var index = utils.CheckUserPrompt(userJSON, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n\n var component = \"\";\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>'\n }\n\n if (index > -1){\n show = \"hidden\";\n component = \"\";\n scopes = userJSON[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>'\n }\n }\n var scopesComponent = component\n payload = {\n template: \"success.html\",\n value: {\n wf: meta.wf,\n urlToRedirect: meta.urlToRedirect,\n \turlBapi: meta.urlBapi,\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random,\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n uuid = utils.GenerateUUID(),\n payload = {\n operation: \"set\",\n id: uuid,\n value: {\n wf: meta.wf,\n \turlToRedirect: meta.urlToRedirect,\n urlBapi: meta.urlBapi,\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n }\n }\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>';\n }\n return component\n}\n\nmain();",
2412 "name": "sso.openID.wf",
2413 "color": "apple-green",
2414 "globalvariable": [{"name": "urlToRedirect", "type": "string", "required": false}, {
2415 "name": "urlBapi",
2416 "type": "string",
2417 "required": false
2418 }, {"name": "wf", "type": "string", "required": false}]
2419});
2420db.scripts.insert({
2421 "code": "function main() {\n link= \"next1\";\n console.log(\"Esto es el payload\");\n console.log(JSON.stringify(payload));\n payload.random = random;\n payload.template = \"username.html\";\n payload.err=null\n}\n\nmain();",
2422 "name": "sso.saml.mapToUsernameTemplate"
2423});
2424db.scripts.insert({
2425 "code": "function main() {\n if (c.Query(\"user\") !== null && c.Query(\"user\") !== \"\") {\n\n payload = {\n id: utils.GenerateUUID(),\n template: \"success_saml.html\",\n value: {\n attr:c.Query(\"attr\"),\n NameID: c.Query(\"NameID\"),\n next: c.Query(\"next\"),\n userId:c.Query(\"userId\"),\n soid_code: c.Query(\"code\"),\n state: \"success\"\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n console.log(\"Quiere pasar por el saml\");\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: meta.wf,\n urlToRedirect: meta.urlToRedirect,\n bapiUrl: meta.bapiUrl\n clientId: c.Query(\"clientId\"),\n attr:c.Query(\"attr\"),\n NameID: c.Query(\"NameID\"),\n next: c.Query(\"next\"),\n id:c.Query(\"userId\"),\n soid_code: c.Query(\"code\"),\n nivel: \"1\",\n state: \"adaptive\"\n }\n }\n}\n\nmain();",
2426 "name": "sso.saml.wf",
2427 "color": "apple-green",
2428 "globalvariable": [{"name": "wf", "type": "string", "required": false}, {
2429 "name": "urlToRedirect",
2430 "type": "string",
2431 "required": false
2432 }, {"name": "bapiUrl", "type": "string", "required": false}]
2433});
2434db.scripts.insert({
2435 "code": "function main() {\n console.log(\"storeDeviceAndRequestToTitan\");\n device = body.split(\"=\")[1];\n console.log(\"This is the selected device\" + device);\n switch (device) {\n case \"mail\":utils.Mail(payload.email, \"SOpenID - Code\", \"The code is \" + code);\n payload.template=\"mail.html\";\n break;\n case \"voice\": utils.Voice(code, payload.mobile);\n payload.template=\"voice.html\";\n break;\n case \"sms\": utils.SMS(code, payload.mobile);\n payload.template=\"sms.html\";\n break;\n }\n var redisClient = shared[\"Redis\"];\n var redisToSave=payload;\n payload.state=\"email\";\n payload.selectedDevice = device;\n payload.code= code;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload ={\n id: payload.id,\n value:redisToSave,\n template: payload.template\n };\n link = \"next1\"\n}\n\nmain();",
2436 "name": "storeDeviceAndRequestTitan"
2437});
2438db.scripts.insert({
2439 "code": "function main() {\n console.log(\"storePassword\");\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n\n console.log(\"payload domain\")\n console.log(\"*****************************************\")\n console.log(payload.username);\n var user = payload.username;\n console.log(JSON.stringify(payload))\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n console.log(\"ipthreat\")\n console.log(payload.ip_threat)\n\n \n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component\n payload.scopes = scopes\n }\n\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = payload.ip_threat === \"LOW\"? \"success\" : payload.ip_threat === \"MEDIUM\"? \"choice\":\"username\";\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n\n\n //for testing\n var temp\n if (user == \"baduser\") { temp=\"High Risk\" } // ver\n if (user == \"user_low\") { temp=\"success.html\" } // user with low ip_risk\n if (user == \"user_medium\") { temp=\"choice.html\" } //user with medium ip_risk\n\n payload= {\n id: payload.id,\n value: redisToSave,\n template:temp,\n //template: payload.ip_threat === \"LOW\"? \"success.html\" : payload.ip_threat === \"MEDIUM\"? \"choice.html\":\"error.html\",\n //err: payload.ip_threat == \"HIGH\" ? \"High Risk\" : \"\"\n err: user == \"userhigh\" ? \"High Risk\" : \"\"\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload\n };\n }\n link = \"next1\"\n}\n\nmain();",
2440 "name": "storePassword.IPThreat"
2441});
2442db.scripts.insert({
2443 "code": "function main() {\n var state = \"choice\"\n var app = utils.GetAppMfa(payload.clientId);\n var voice = \"visible\"\n var mail = \"visible\"\n var sms = \"visible\"\n\n if (app.length === 0){\n state = \"success\"\n }else{\n if (app.indexOf(\"voice\")===-1) voice=\"disabled\"\n if (app.indexOf(\"mail\")===-1) mail=\"disabled\"\n if (app.indexOf(\"sms\")===-1) sms=\"disabled\"\n }\n\n\n\n console.log(\"storePassword\");\n console.log(payload.username, body.split(\"=\")[1]);\n var redisClient = shared[\"Redis\"];\n //var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1]);\n console.log(\"clientid:\" + payload.clientId)\n var scimUser = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n if (scimUser.id !== undefined \u0026\u0026 scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index \u003e -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n payload.scopesComponent = component\n payload.scopes = scopes\n }\n\n payload.userData = JSON.stringify(scimUser);\n payload.email = scimUser.emails[0].value;\n payload.mobile = scimUser.phoneNumbers[0].value;\n payload.state = state;\n var redisToSave= payload;\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload= {\n id: payload.id,\n value: redisToSave,\n template: state+\".html\",\n voice:voice,\n mail:mail,\n sms:sms,\n }\n } else {\n console.log(\"Esta viniendo por un error\");\n payload.state= \"adaptive\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid data for the authentication\",\n value: payload,\n };\n }\n link = \"next1\"\n}\n\nmain();",
2444 "name": "storePassword"
2445});
2446db.scripts.insert({
2447 "code": "function main() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave['username']= body.split(\"=\")[1];\n\n console.log(\"password\")\n console.log(JSON.stringify(redisToSave))\n\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n value: redisToSave,\n template: \"password.html\"\n };\n link = \"next1\"\n}\n\nmain();",
2448 "name": "storeUsername"
2449});
2450db.scripts.insert({
2451 "code": "function main() {\n switch (payload.state) {\n case \"password\":\n console.log(\"Va a validate password\");\n link=\"next2\";\n break;\n case \"choice\":\n console.log(\"Va a validate device\");\n link=\"next3\";\n break;\n case \"email\":\n console.log(\"Va a validate con email\");\n link=\"next4\";\n break;\n default:\n console.log(\"Va a storear username\");\n link=\"next1\";\n break;\n }\n}\n\nmain();",
2452 "name": "switchPlayFromRedis"
2453});
2454db.scripts.insert({
2455 "code": "function main() {\n code=body.split(\"=\")[1];\n console.log(\"Este es el payload: \" + JSON.stringify(payload));\n var redisClient = shared[\"Redis\"];\n if(payload.code.toString()!==code \u0026\u0026 \"1\"!==code) {\n var redisToSave= payload;\n redisToSave.state = \"email\";\n redisToSave.template= \"mail.html\";\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n err: \"Invalid code\",\n operation: \"set\",\n value: redisToSave,\n template: payload.template\n };\n link=\"next1\";\n return;\n }\n console.log(\"Busca hacer el success\");\n payload.state= \"success\";\n payload.template=\"success.html\";\n payload ={\n id: payload.id,\n template: \"success.html\",\n value : payload\n };\n link = \"next1\"\n}\n\n/*function processScopes(scopesVar) {\n console.log(\"Llega a los scopes\");\n var component = \"\";\n if(scopesVar) {\n var scopes = scopesVar.split(\" \");\n for (var i=0; i \u003c scopes.length; i++) {\n component = component + '\u003ch3\u003e\u003clabel\u003e\u003cinput type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked\u003e '+ scopes[i]+ '\u003c/label\u003e\u003cbr\u003e\u003c/h3\u003e'\n }\n }\n return component;\n}*/\n\nmain();",
2456 "name": "validateFromEmail"
2457});
2458db.scripts.insert({
2459 "code": "function main() {\n var tokenToValidate= c.Query(\"token\");\n var parts = tokenToValidate.split(\".\");\n link=\"next1\";\n if (parts.length \u003c=1) {\n payload.Result = {error: \"No Token present\"};\n payload.Status = 400;\n return;\n }\n var redis = shared[\"Redis\"];\n var claims=jdu.GetClaims(parts[1]);\n var claimData=claims['jti'];\n var idTokenStored = redis.HGet(claimData, 'id_token').Val();\n if(idTokenStored !== tokenToValidate) {\n payload.Result = {error: \"Error validating token\"};\n payload.Status = 403;\n return;\n } else {\n payload.Status = 200;\n return;\n }\n}\n\nmain();",
2460 "name": "validateToken"
2461});
2462
2463
2464db.scripts.insert({
2465 "code": "function main() {\n\n //ip1 = utils.GetIp()\n ip1 = \"190.221.41.203\" //LOW\n //ip1 = \"118.132.0.26\" // MEDIUM\n // ip1 = \"175.107.214.187\" //HIGH\n\n // ip1 = c.Query(\"ip\")\n\n var token_url = \"https://us-services.dev.secureauth.com/oauth/v1/token?client_id=a6800b89-53e9-444c-9a51-e0e1b0669ede&client_secret=dc96a929f1d203adb9720abb4b6d49b526d4f9f5&grant_type=client_credentials\"\n var risk_url = \"https://us-services.dev.secureauth.com/ipintel/v1/risk\"\n\n console.log(\"IP: \" + ip1)\n\n kCli.URL(token_url)\n req1 = kCli.Request();\n req1.Method(\"POST\");\n res1 = req1.Send();\n\n console.log(\"luego del token\")\n var token_response = JSON.parse(res1[0].String())\n console.log(token_response)\n\n //////////////////////////////////////////////////////\n kCli.URL(risk_url)\n req2 = kCli.Request();\n body = { \"ip\" : ip1}\n req2.Use(kBodyJSON(body))\n req2.Method(\"POST\");\n req2.SetHeader(\"Authorization\", \"Bearer \" + token_response.access_token)\n res2 = req2.Send();\n var risk_response = JSON.parse(res2[0].String())\n console.log(JSON.stringify(risk_response))\n console.log(\"country: \" + risk_response.geoLocation.country);\n console.log(\"risk factor: \" + risk_response.risk.riskFactor);\n\nswitch (risk_response.geoLocation.country) {\n case \"pakistan\":\n ip_threat = \"HIGH\"\n break;\n case \"china\":\n ip_threat = \"MEDIUM\"\n break;\n case \"argentina\":\n ip_threat = \"LOW\"\n break;\n default:\n ip_threat = \"MEDIUM\"\n break;\n }\n\n//////////////////////////\n\n\n\n if (c.Query(\"userData\") !== null && c.Query(\"userData\") !== \"\") {\n var userString = c.Query(\"userData\");\n var userJSON= JSON.parse(userString);\n var userData = userString;\n var index = utils.CheckUserPrompt(userJSON, c.Query(\"clientId\"));\n var show= \"visible\";\n var scopes = c.Query(\"scopes\").split(\" \");\n\n var component = \"\";\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>'\n }\n\n if (index > -1){\n show = \"hidden\";\n component = \"\";\n scopes = userJSON[\"sessionscopes\"][index].scopes.split(\" \");\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+ scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>'\n }\n }\n var scopesComponent = component\n payload = {\n template: \"success.html\",\n value: {\n userData: userData,\n clientId: c.Query(\"clientId\"),\n scopesComponent: scopesComponent,\n scopes: scopes,\n prompt: c.Query(\"prompt\"),\n show: show,\n soid_code: c.Query(\"code\"),\n random: random\n }\n };\n link=\"next2\";\n return\n }\n link= \"next1\";\n payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: \"ip_threat/sso_openID\",\n clientId: c.Query(\"clientId\"),\n scopes: c.Query(\"scopes\"),\n scopesComponent: generateScopesComponents(c.Query(\"scopes\")),\n prompt: c.Query(\"prompt\"),\n soid_code: c.Query(\"code\"),\n random: random,\n state: \"adaptive\",\n ip_threat: ip_threat\n }\n }\n\n console.log(\"payload.value.ip_threat\")\n console.log(payload.value.ip_threat)\n}\n\nfunction generateScopesComponents(scopesString) {\n var scopes = scopesString.split(\" \");\n var component=\"\";\n for (var i=0; i < scopes.length; i++) {\n component = component + '<h3><label><input type=\"checkbox\" class=\"largerCheckbox\" id='+i +' value='+scopes[i]+' checked> '+ scopes[i]+ '</label><br></h3>';\n }\n return component\n}\n\nmain();",
2466 "name": "sso.openID.IPThreat.wf"
2467});
2468
2469db.workflows.insert(
2470 {
2471 "_id":"5e5804a75db1799a2590f22a",
2472 "nodes":{
2473 "2b21edbb-ae66-403f-b80c-18e0a030c74b":{
2474 "links":{
2475 "next1":"e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2476 },
2477 "type":"ottojs",
2478 "bp":"",
2479 "repeat":"0",
2480 "propsValidity":{
2481 "code":true,
2482 "propsValidity":true
2483 },
2484 "name":"default-wf.default.validateFromEmail",
2485 "position":{
2486 "x":"1753",
2487 "y":"501"
2488 },
2489 "code":"default-wf.default.validateFromEmail",
2490 "asynchronous":false
2491 },
2492 "46ef025c-d754-452b-8e60-06e103163e40":{
2493 "name":"redis",
2494 "propsValidity":{
2495 "propsValidity":true,
2496 "redisHost":true
2497 },
2498 "isNodeValid":true,
2499 "links":{
2500 "next1":"bcd5b8d1-8d56-419f-b13e-4fb53f167248"
2501 },
2502 "position":{
2503 "x":"807",
2504 "y":"671"
2505 },
2506 "type":"redis",
2507 "asynchronous":false,
2508 "repeat":"0",
2509 "bp":"",
2510 "redisHost":"localhost:6379"
2511 },
2512 "16d353c1-78d2-4494-8f0b-f381278f3576":{
2513 "code":"switchPlayFromRedis",
2514 "asynchronous":false,
2515 "name":"switchPlayFromRedis",
2516 "position":{
2517 "x":"1360",
2518 "y":"668"
2519 },
2520 "type":"ottojs",
2521 "bp":"",
2522 "repeat":"0",
2523 "propsValidity":{
2524 "code":true,
2525 "propsValidity":true
2526 },
2527 "links":{
2528 "next1":"fb4e4acb-78da-4f2a-b46d-1b01e319ac08",
2529 "next2":"18c5e2c3-6e75-416e-8b53-0c0d8cb891eb",
2530 "next3":"d88c1955-0559-4968-990b-d4fc028ae316",
2531 "next4":"2b21edbb-ae66-403f-b80c-18e0a030c74b"
2532 }
2533 },
2534 "18c5e2c3-6e75-416e-8b53-0c0d8cb891eb":{
2535 "code":"default-wf.default.storePassword",
2536 "links":{
2537 "next1":"e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2538 },
2539 "position":{
2540 "x":"1771",
2541 "y":"721"
2542 },
2543 "type":"ottojs",
2544 "bp":"",
2545 "asynchronous":false,
2546 "repeat":"0",
2547 "name":"default-wf.default.storePassword",
2548 "propsValidity":{
2549 "code":true,
2550 "propsValidity":true
2551 }
2552 },
2553 "d88c1955-0559-4968-990b-d4fc028ae316":{
2554 "repeat":"0",
2555 "name":"default-wf.default.storeDeviceAndRequestTitan",
2556 "links":{
2557 "next1":"e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2558 },
2559 "code":"default-wf.default.storeDeviceAndRequestTitan",
2560 "asynchronous":false,
2561 "propsValidity":{
2562 "propsValidity":true,
2563 "code":true
2564 },
2565 "position":{
2566 "x":"1767",
2567 "y":"609"
2568 },
2569 "type":"ottojs",
2570 "bp":""
2571 },
2572 "e06c5c49-2357-4f7e-8ad5-a54f726ded2b":{
2573 "asynchronous":false,
2574 "repeat":"0",
2575 "isNodeValid":true,
2576 "type":"formatter",
2577 "bp":"",
2578 "name":"formatter",
2579 "format":"html",
2580 "propsValidity":{
2581 "format":true,
2582 "propsValidity":true
2583 },
2584 "links":{
2585
2586 },
2587 "position":{
2588 "x":"2217",
2589 "y":"648"
2590 }
2591 },
2592 "bcd5b8d1-8d56-419f-b13e-4fb53f167248":{
2593 "bp":"",
2594 "repeat":"0",
2595 "name":"beginPlay",
2596 "propsValidity":{
2597 "code":true,
2598 "propsValidity":true
2599 },
2600 "links":{
2601 "next1":"16d353c1-78d2-4494-8f0b-f381278f3576"
2602 },
2603 "position":{
2604 "x":"1093",
2605 "y":"666"
2606 },
2607 "code":"beginPlay",
2608 "asynchronous":false,
2609 "type":"ottojs"
2610 },
2611 "fb4e4acb-78da-4f2a-b46d-1b01e319ac08":{
2612 "bp":"",
2613 "repeat":"0",
2614 "links":{
2615 "next1":"e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2616 },
2617 "name":"default-wf.default.storeUsername",
2618 "propsValidity":{
2619 "propsValidity":true,
2620 "code":true
2621 },
2622 "position":{
2623 "x":"1775",
2624 "y":"840"
2625 },
2626 "type":"ottojs",
2627 "code":"default-wf.default.storeUsername",
2628 "asynchronous":false
2629 }
2630 },
2631 "name":"",
2632 "root":"46ef025c-d754-452b-8e60-06e103163e40",
2633 "debug":"false",
2634 "fileName":"default.play.wf"
2635 }
2636);
2637db.workflows.insert(
2638 {
2639 "nodes": {
2640 "edfb25f2-3c3f-4e51-b0c9-d09244b58065": {
2641 "repeat": "0",
2642 "name": "default-wf.default.createWorkflow",
2643 "isNodeValid": true,
2644 "links": {
2645 "next1": "a63b2e35-1b0b-46a5-b19d-9221b5588d7b",
2646 "next2": "d23aec21-b4e7-4545-83a4-b9d6feb140b4"
2647 },
2648 "position": {
2649 "x": "659",
2650 "y": "554"
2651 },
2652 "type": "ottojs",
2653 "code": "default-wf.default.createWorkflow",
2654 "asynchronous": false,
2655 "meta": {
2656 "urlBapi": "http://localhost:9000",
2657 "urlToRedirect": "https://localhost:7000",
2658 "wf": "default",
2659 "samlRedirectUrl": "https://localhost:8888"
2660 },
2661 "propsValidity": {
2662 "code": true,
2663 "propsValidity": true
2664 },
2665 "bp": ""
2666 },
2667 "d23aec21-b4e7-4545-83a4-b9d6feb140b4": {
2668 "format": "html",
2669 "isNodeValid": true,
2670 "type": "formatter",
2671 "asynchronous": false,
2672 "repeat": {
2673 "$numberDouble": "0"
2674 },
2675 "links": {},
2676 "position": {
2677 "x": "1328",
2678 "y": "932"
2679 },
2680 "bp": "",
2681 "name": "formatter",
2682 "propsValidity": {
2683 "format": true,
2684 "propsValidity": true
2685 }
2686 },
2687 "a63b2e35-1b0b-46a5-b19d-9221b5588d7b": {
2688 "isNodeValid": true,
2689 "type": "redis",
2690 "asynchronous": false,
2691 "name": "redis",
2692 "propsValidity": {
2693 "propsValidity": true,
2694 "redisHost": true
2695 },
2696 "position": {
2697 "x": "1051",
2698 "y": "511"
2699 },
2700 "bp": "",
2701 "redisHost": "localhost:6379",
2702 "repeat": {
2703 "$numberDouble": "0"
2704 },
2705 "links": {
2706 "next1": "9d961bb9-654f-4748-8414-7c281ded6e13"
2707 }
2708 },
2709 "9d961bb9-654f-4748-8414-7c281ded6e13": {
2710 "name": "default-wf.default.createWorkflow.prepareToTemplate",
2711 "propsValidity": {
2712 "code": true,
2713 "propsValidity": true
2714 },
2715 "links": {
2716 "next1": "d23aec21-b4e7-4545-83a4-b9d6feb140b4"
2717 },
2718 "position": {
2719 "x": "1426",
2720 "y": "522"
2721 },
2722 "type": "ottojs",
2723 "repeat": {
2724 "$numberDouble": "0"
2725 },
2726 "asynchronous": false,
2727 "bp": "",
2728 "code": "default-wf.default.createWorkflow.prepareToTemplate"
2729 }
2730 },
2731 "name": "",
2732 "root": "edfb25f2-3c3f-4e51-b0c9-d09244b58065",
2733 "debug": "false",
2734 "fileName": "default.create.wf"
2735 }
2736);