· 5 years ago · Mar 16, 2020, 09: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": "localhost: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": "localhost: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": "localhost: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": "localhost: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://localhost: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": "localhost: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": "localhost: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": "localhost: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": "1080", "y": "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": "497",
1319 "x": "1073"
1320 },
1321 "type": "redis",
1322 "redisHost": "localhost: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": "380", "x": "1073"},
1335 "type": "ottojs",
1336 "code": "sso.openID.IPThreat.wf",
1337 "meta": {
1338 "urlBapi": "http://localhost:9000",
1339 "wf": "ip_threat/sso_openID",
1340 "urlToRedirect": "https://localhost: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": "1086", "y": "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": "localhost: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": "localhost: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://localhost: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": "localhost: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": "localhost: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": "localhost: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": "localhost: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": "localhost: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://localhost: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": "localhost:6379",
1724 "name": "checkWorkflowState"
1725 },
1726 "7aa65e61-1ea3-4487-8e82-771081e65222": {
1727 "type": "ottojs",
1728 "code": "sso.openID.wf",
1729 "meta": {
1730 "urlBapi": "http://localhost:9000",
1731 "wf": "sso_openID",
1732 "urlToRedirect": "https://localhost: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 "meta": {
1788 "siteKey": "6Lf9c94UAAAAAJXvNm_lDh_ogsH_Fof5Q2qL8caY"
1789 },
1790 "propsValidity": {
1791 "code": true,
1792 "propsValidity": true
1793 },
1794 "isNodeValid": true,
1795 "links": {
1796 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1797 },
1798 "position": {
1799 "x": 1535,
1800 "y": 688
1801 },
1802 "type": "ottojs",
1803 "code": "storeUsername"
1804 },
1805 "29950973-881d-4f9f-b16e-91046e2e4r2x": {
1806 "links": {
1807 "next1": "35fea4ed-6299-470b-bed5-54fbcce5e4o8"
1808 },
1809 "position": {
1810 "x": 708,
1811 "y": 519
1812 },
1813 "type": "redis",
1814 "redisHost": "localhost:6379",
1815 "name": "redis",
1816 "propsValidity": {
1817 "redisHost": true,
1818 "propsValidity": true
1819 },
1820 "isNodeValid": true
1821 },
1822 "0e123a72-08e5-4f0a-97f2-08140354ee22": {
1823 "isNodeValid": true,
1824 "links": {
1825 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1826 },
1827 "position": {
1828 "x": 1533,
1829 "y": 563
1830 },
1831 "type": "ottojs",
1832 "code": "storePassword",
1833 "name": "storePasswordAndSetDevicesOrNot",
1834 "propsValidity": {
1835 "code": true,
1836 "propsValidity": true
1837 }
1838 },
1839 "5ad88fda-e225-4805-9c3e-dfcee43b17d3": {
1840 "name": "formatter",
1841 "format": "html",
1842 "propsValidity": {
1843 "format": true,
1844 "propsValidity": true
1845 },
1846 "isNodeValid": true,
1847 "position": {
1848 "x": 1897,
1849 "y": 502
1850 },
1851 "type": "formatter"
1852 },
1853 "19afdfab-f52e-41be-a18b-ee8d78a412ss": {
1854 "links": {
1855 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b17d3"
1856 },
1857 "position": {
1858 "y": 310,
1859 "x": 1530
1860 },
1861 "type": "ottojs",
1862 "code": "validateFromEmail",
1863 "name": "validateFromEmail",
1864 "propsValidity": {
1865 "code": true,
1866 "propsValidity": true
1867 },
1868 "isNodeValid": true
1869 },
1870 "35fea4ed-6299-470b-bed5-54fbcce5e4o8": {
1871 "type": "ottojs",
1872 "code": "beginPlay",
1873 "name": "beginPlay",
1874 "propsValidity": {
1875 "code": true,
1876 "propsValidity": true
1877 },
1878 "isNodeValid": true,
1879 "links": {
1880 "next1": "b08e3ff7-95c2-4ef1-8967-c57fe132hhww"
1881 },
1882 "position": {
1883 "x": 961,
1884 "y": 518
1885 }
1886 }
1887 },
1888 "name": "",
1889 "root": "29950973-881d-4f9f-b16e-91046e2e4r2x",
1890 "debug": "",
1891 "fileName": "sso.openID.param.wf"
1892 });
1893
1894
1895db.workflows.insert(
1896 {
1897 "_id": "5e2764e650997133912c9942",
1898 "nodes": {
1899 "b08e3ff7-95c2-4ef1-8967-c57fe132oppo": {
1900 "name": "switchPlayFromRedis",
1901 "propsValidity": {
1902 "propsValidity": true,
1903 "code": true
1904 },
1905 "isNodeValid": true,
1906 "links": {
1907 "next1": "3d79e5af-cd21-4a02-be9b-9c845ff5bbaa",
1908 "next2": "0e123a72-08e5-4f0a-97f2-08140354fftt",
1909 "next3": "51e01f50-dc77-44eb-87b3-ca4b1bfe99az",
1910 "next4": "19afdfab-f52e-41be-a18b-ee8d78a4ud3s"
1911 },
1912 "position": {
1913 "x": 1226,
1914 "y": 519
1915 },
1916 "type": "ottojs",
1917 "code": "switchPlayFromRedis"
1918 },
1919 "51e01f50-dc77-44eb-87b3-ca4b1bfe99az": {
1920 "code": "SAMLstoreDeviceAndRequestTitan",
1921 "name": "storeDeviceAndRequestTitan",
1922 "propsValidity": {
1923 "code": true,
1924 "propsValidity": true
1925 },
1926 "isNodeValid": true,
1927 "links": {
1928 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1929 },
1930 "position": {
1931 "y": 447,
1932 "x": 1536
1933 },
1934 "type": "ottojs"
1935 },
1936 "3d79e5af-cd21-4a02-be9b-9c845ff5bbaa": {
1937 "name": "storeUsername",
1938 "propsValidity": {
1939 "code": true,
1940 "propsValidity": true
1941 },
1942 "isNodeValid": true,
1943 "links": {
1944 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1945 },
1946 "position": {
1947 "x": 1535,
1948 "y": 688
1949 },
1950 "type": "ottojs",
1951 "code": "SAMLstoreUsername"
1952 },
1953 "29950973-881d-4f9f-b16e-91046e2e56sk": {
1954 "links": {
1955 "next1": "35fea4ed-6299-470b-bed5-54fbcce5ddfm"
1956 },
1957 "position": {
1958 "x": 708,
1959 "y": 519
1960 },
1961 "type": "redis",
1962 "redisHost": "localhost:6379",
1963 "name": "redis",
1964 "propsValidity": {
1965 "redisHost": true,
1966 "propsValidity": true
1967 },
1968 "isNodeValid": true
1969 },
1970 "0e123a72-08e5-4f0a-97f2-08140354fftt": {
1971 "isNodeValid": true,
1972 "links": {
1973 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
1974 },
1975 "position": {
1976 "x": 1533,
1977 "y": 563
1978 },
1979 "type": "ottojs",
1980 "code": "SAMLstorePassword",
1981 "name": "storePasswordAndSetDevicesOrNot",
1982 "propsValidity": {
1983 "code": true,
1984 "propsValidity": true
1985 }
1986 },
1987 "5ad88fda-e225-4805-9c3e-dfcee43b00ws": {
1988 "name": "formatter",
1989 "format": "html",
1990 "propsValidity": {
1991 "format": true,
1992 "propsValidity": true
1993 },
1994 "isNodeValid": true,
1995 "position": {
1996 "x": 1897,
1997 "y": 502
1998 },
1999 "type": "formatter"
2000 },
2001 "19afdfab-f52e-41be-a18b-ee8d78a4ud3s": {
2002 "links": {
2003 "next1": "5ad88fda-e225-4805-9c3e-dfcee43b00ws"
2004 },
2005 "position": {
2006 "y": 310,
2007 "x": 1530
2008 },
2009 "type": "ottojs",
2010 "code": "SAMLvalidateFromEmail",
2011 "name": "validateFromEmail",
2012 "propsValidity": {
2013 "code": true,
2014 "propsValidity": true
2015 },
2016 "isNodeValid": true
2017 },
2018 "35fea4ed-6299-470b-bed5-54fbcce5ddfm": {
2019 "type": "ottojs",
2020 "code": "beginPlay",
2021 "name": "beginPlay",
2022 "propsValidity": {
2023 "code": true,
2024 "propsValidity": true
2025 },
2026 "isNodeValid": true,
2027 "links": {
2028 "next1": "b08e3ff7-95c2-4ef1-8967-c57fe132oppo"
2029 },
2030 "position": {
2031 "x": 961,
2032 "y": 518
2033 }
2034 }
2035 },
2036 "name": "",
2037 "root": "29950973-881d-4f9f-b16e-91046e2e56sk",
2038 "debug": "",
2039 "fileName": "sso.saml.param.wf"
2040 });
2041db.scripts.insert({
2042 "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();",
2043 "name": "SAMLstoreDeviceAndRequestTitan"
2044});
2045db.scripts.insert({
2046 "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();",
2047 "name": "SAMLstorePassword"
2048});
2049db.scripts.insert({
2050 "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();",
2051 "name": "SAMLstoreUsername"
2052});
2053db.scripts.insert({
2054 "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();",
2055 "name": "SAMLvalidateFromEmail"
2056});
2057db.scripts.insert({
2058 "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();",
2059 "name": "after_graph_response"
2060});
2061db.scripts.insert({
2062 "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();",
2063 "name": "beginPlay"
2064});
2065db.scripts.insert({
2066 "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();",
2067 "name": "getChoice"
2068});
2069db.scripts.insert({
2070 "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();",
2071 "name": "getCode"
2072});
2073db.scripts.insert({
2074 "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();",
2075 "name": "getFactors"
2076});
2077db.scripts.insert({
2078 "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();",
2079 "name": "getPassword"
2080});
2081db.scripts.insert({
2082 "code": "function main() {\n payload = {\n id: payload.id,\n random: payload.random,\n template: \"username.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2083 "name": "getUsername"
2084});
2085db.scripts.insert({
2086 "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();",
2087 "name": "idp.SAML.createWorkflow"
2088});
2089db.scripts.insert({
2090 "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();",
2091 "name": "idp.SAML.createWorkflow.prepareToTemplate"
2092});
2093db.scripts.insert({
2094 "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();",
2095 "name": "idp.SAMLstoreDeviceAndRequestTitan"
2096});
2097db.scripts.insert({
2098 "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();",
2099 "name": "idp.SAMLstorePassword"
2100});
2101db.scripts.insert({
2102 "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();",
2103 "name": "idp.SAMLstoreUsername"
2104});
2105db.scripts.insert({
2106 "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();",
2107 "name": "idp.SAMLvalidateFromEmail"
2108});
2109db.scripts.insert({
2110 "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();",
2111 "name": "idp.adaptAuthMockPing"
2112});
2113db.scripts.insert({
2114 "code": "function main() {\n console.log(payload);\n payload=payload.Result;\n link=\"next1\";\n}\n\nmain();",
2115 "name": "idp.afterIDP"
2116});
2117db.scripts.insert({
2118 "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();",
2119 "name": "idp.after_graph_response"
2120});
2121db.scripts.insert({
2122 "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();",
2123 "name": "idp.beginPlay"
2124});
2125db.scripts.insert({
2126 "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();",
2127 "name": "idp.decrypt"
2128});
2129db.scripts.insert({
2130 "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();",
2131 "name": "idp.decryptFromPing"
2132});
2133db.scripts.insert({
2134 "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();",
2135 "name": "idp.defineToGo"
2136});
2137db.scripts.insert({
2138 "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();",
2139 "name": "idp.defineToGoFirstStep"
2140});
2141db.scripts.insert({
2142 "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();",
2143 "name": "idp.encryptFromIDP"
2144});
2145db.scripts.insert({
2146 "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",
2147 "name": "idp.encryptSample"
2148});
2149db.scripts.insert({
2150 "code": "function main() {\n console.log(\"Its working \" + JSON.stringify(payload));\n link=\"next1\"\n}\n\nmain();",
2151 "name": "idp.formatFromPingToL4E"
2152});
2153db.scripts.insert({
2154 "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();",
2155 "name": "idp.formatToPing"
2156});
2157db.scripts.insert({
2158 "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();",
2159 "name": "idp.fromScimToL4W.GetFactors"
2160});
2161db.scripts.insert({
2162 "code": "function main () {\n payload= \"eyJhbGciOiJIUzI1NiIsIm9yZ0FsaWFzIjoiNWY3OGI0ODgtMWJhZS00NDM2LWFiM2EtZjVlNTgzZDRlMTY1IiwidG9rZW4iOiJlZjgxNjc4ZjI0YWM5OTU0YTRiOTIwZGQwNDZjMzU0NiJ9.eyJyZXFIZWFkZXIiOnsibG9jYWxlIjoiZW4iLCJvcmdBbGlhcyI6IjVmNzhiNDg4LTFiYWUtNDQzNi1hYjNhLWY1ZTU4M2Q0ZTE2NSIsInNlY3JldEtleSI6ImVmODE2NzhmMjRhYzk5NTRhNGI5MjBkZDA0NmMzNTQ2IiwidGltZXN0YW1wIjoiXC9EYXRlKDE1NzQ3OTM1OTMwODIpXC8iLCJ2ZXJzaW9uIjoiNC45In0sInJlcUJvZHkiOnsic3BBbGlhcyI6IndlYiIsInVzZXJOYW1lIjoiQTEyNzkyMSJ9fQ.ESwYQjixhEGO5qmlq29ZpzsHuMrNOKvN_EHK5Hhvhp4\"\n link=\"next1\"\n}\n\nmain();",
2163 "name": "idp.generateTokenPing"
2164});
2165db.scripts.insert({
2166 "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();",
2167 "name": "idp.getChoice"
2168});
2169db.scripts.insert({
2170 "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();",
2171 "name": "idp.getCode"
2172});
2173db.scripts.insert({
2174 "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();",
2175 "name": "idp.getFactors"
2176});
2177db.scripts.insert({
2178 "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();",
2179 "name": "idp.getPassword"
2180});
2181db.scripts.insert({
2182 "code": "function main() {\n payload = {\n id: payload.id,\n random: payload.random,\n template: \"username.html\",\n };\n link = \"next1\"\n}\n\nmain();",
2183 "name": "idp.getUsername"
2184});
2185db.scripts.insert({
2186 "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();",
2187 "name": "idp.graphqlUtil"
2188});
2189db.scripts.insert({
2190 "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();",
2191 "name": "idp.handleAuthRequest.afterRedis"
2192});
2193db.scripts.insert({
2194 "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();",
2195 "name": "idp.handleAuthRequest.afterRedis2"
2196});
2197db.scripts.insert({
2198 "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();",
2199 "name": "idp.handleAuthRequest"
2200});
2201db.scripts.insert({
2202 "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();",
2203 "name": "idp.kiruData"
2204});
2205db.scripts.insert({
2206 "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();",
2207 "name": "idp.manageIDP"
2208});
2209db.scripts.insert({
2210 "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();",
2211 "name": "idp.mapFromAuthOfflineToIDP"
2212});
2213db.scripts.insert({
2214 "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();",
2215 "name": "idp.mapFromAuthToPing"
2216});
2217db.scripts.insert({
2218 "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();",
2219 "name": "idp.mapFromIDPSendEmailResponseToPing"
2220});
2221db.scripts.insert({
2222 "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();",
2223 "name": "idp.mapFromIDPToAuthOffline"
2224});
2225db.scripts.insert({
2226 "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();",
2227 "name": "idp.mapFromIDPToPing"
2228});
2229db.scripts.insert({"code": "function main() {\n\n}\n\nmain();", "name": "idp.mapFromPingToAuthResponse"});
2230db.scripts.insert({
2231 "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();",
2232 "name": "idp.mapFromPingToGetDevices"
2233});
2234db.scripts.insert({
2235 "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();",
2236 "name": "idp.mapFromPingToIDPSendEmail"
2237});
2238db.scripts.insert({
2239 "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();",
2240 "name": "idp.mapToPingGetFactors"
2241});
2242db.scripts.insert({
2243 "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();",
2244 "name": "idp.otp.validate.afterRedis"
2245});
2246db.scripts.insert({
2247 "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();",
2248 "name": "idp.otp.validate"
2249});
2250db.scripts.insert({
2251 "code": "function main() {\n shared[\"payload\"]= payload;\n payload = {\n operation: \"get\",\n id: shared[\"code\"]\n };\n link = \"next1\";\n}\n\nmain();",
2252 "name": "idp.resultGetFactos"
2253});
2254db.scripts.insert({
2255 "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()",
2256 "name": "idp.script2"
2257});
2258db.scripts.insert({
2259 "code": "link=\"next1\"\n//payload = {\"total risk\": 15, risks: {\"ip risk\": 10, \"geo risk\": 5}}\npayload = {username: \"uriel\"}\n",
2260 "name": "idp.script3"
2261});
2262db.scripts.insert({"code": "link=\"next1\"\npayload = {error: payload}\n", "name": "idp.scriptError"});
2263db.scripts.insert({
2264 "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();",
2265 "name": "idp.sso.test.createWorkflow"
2266});
2267db.scripts.insert({
2268 "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();",
2269 "name": "idp.sso.test.createWorkflow.prepareToTemplate"
2270});
2271db.scripts.insert({
2272 "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();",
2273 "name": "idp.sso.test.createWorkflow.prepareToTemplate_IPThreat"
2274});
2275db.scripts.insert({
2276 "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();",
2277 "name": "idp.sso.test.createWorkflow_IPThreat"
2278});
2279db.scripts.insert({
2280 "code": "function main() {\n payload = {\"message\":\"\",\"realm_workflow\":\"usernamepassword_2ndfactor\",\"status\":\"TwoFactor\",\"suggested_action\":\"2ndfactor\"}\n link= \"next1\";\n}\n\nmain();",
2281 "name": "idp.startAdaphAuth"
2282});
2283db.scripts.insert({
2284 "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",
2285 "name": "idp.startAuthenticateIDP"
2286});
2287db.scripts.insert({
2288 "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();",
2289 "name": "idp.storeDeviceAndRequestTitan"
2290});
2291db.scripts.insert({
2292 "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();",
2293 "name": "idp.storePassword"
2294});
2295db.scripts.insert({
2296 "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();",
2297 "name": "idp.storePassword_IPThreat"
2298});
2299db.scripts.insert({
2300 "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();",
2301 "name": "idp.storeUsername"
2302});
2303db.scripts.insert({
2304 "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();",
2305 "name": "idp.switchPlayFromRedis"
2306});
2307db.scripts.insert({
2308 "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();",
2309 "name": "idp.test2"
2310});
2311db.scripts.insert({
2312 "code": "function main() {\n link=\"next\";\n payload = {node: \"node3\", ga: time, s: payload, d: 11 };\n}\nmain();\n",
2313 "name": "idp.test3"
2314});
2315db.scripts.insert({
2316 "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();",
2317 "name": "idp.validateFromEmail"
2318});
2319db.scripts.insert({
2320 "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();",
2321 "name": "idp.validateToken"
2322});
2323db.scripts.insert({
2324 "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();",
2325 "name": "idp.wrapIDP"
2326});
2327db.scripts.insert({
2328 "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();",
2329 "name": "idp.wrapPing"
2330});
2331db.scripts.insert({
2332 "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();",
2333 "name": "ipsafe.beginPlay"
2334});
2335db.scripts.insert({
2336 "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();",
2337 "name": "ipsafe.ipsafe.createWorkflow"
2338});
2339db.scripts.insert({
2340 "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",
2341 "name": "ipsafe.ipsafe.password"
2342});
2343db.scripts.insert({
2344 "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();",
2345 "name": "ipsafe.ipsafe.secondFactor"
2346});
2347db.scripts.insert({
2348 "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();",
2349 "name": "ipsafe.ipsafe.username"
2350});
2351db.scripts.insert({
2352 "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();",
2353 "name": "ipsafe.ipsafe.validate"
2354});
2355db.scripts.insert({
2356 "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();",
2357 "name": "ipsafe.switchIpSafe"
2358});
2359db.scripts.insert({
2360 "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();",
2361 "name": "otp.validate.afterRedis"
2362});
2363db.scripts.insert({
2364 "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();",
2365 "name": "otp.validate"
2366});
2367db.scripts.insert({
2368 "code": "function main() {\n shared[\"payload\"]= payload;\n payload = {\n operation: \"get\",\n id: shared[\"code\"]\n };\n link = \"next1\";\n}\n\nmain();",
2369 "name": "resultGetFactos"
2370});
2371db.scripts.insert({
2372 "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()",
2373 "name": "script2"
2374});
2375db.scripts.insert({
2376 "code": "link=\"next1\"\n//payload = {\"total risk\": 15, risks: {\"ip risk\": 10, \"geo risk\": 5}}\npayload = {username: \"uriel\"}\n",
2377 "name": "script3"
2378});
2379db.scripts.insert({"code": "link=\"next1\"\npayload = {error: payload}\n", "name": "scriptError"});
2380db.scripts.insert({
2381 "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();",
2382 "name": "sso.openID.mapToUsernameTemplate.IPThreat"
2383});
2384db.scripts.insert({
2385 "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();",
2386 "name": "sso.openID.mapToUsernameTemplate"
2387});
2388db.scripts.insert({
2389 "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();",
2390 "name": "sso.openID.wf",
2391 "color": "apple-green",
2392 "globalvariable": [{"name": "urlToRedirect", "type": "string", "required": false}, {
2393 "name": "urlBapi",
2394 "type": "string",
2395 "required": false
2396 }, {"name": "wf", "type": "string", "required": false}]
2397});
2398db.scripts.insert({
2399 "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();",
2400 "name": "sso.saml.mapToUsernameTemplate"
2401});
2402db.scripts.insert({
2403 "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();",
2404 "name": "sso.saml.wf",
2405 "color": "apple-green",
2406 "globalvariable": [{"name": "wf", "type": "string", "required": false}, {
2407 "name": "urlToRedirect",
2408 "type": "string",
2409 "required": false
2410 }, {"name": "bapiUrl", "type": "string", "required": false}]
2411});
2412db.scripts.insert({
2413 "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();",
2414 "name": "storeDeviceAndRequestTitan"
2415});
2416db.scripts.insert({
2417 "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();",
2418 "name": "storePassword.IPThreat"
2419});
2420db.scripts.insert({
2421 "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 console.log(\"storePassword\");\n var keyValue = body.split(\"&\");\n var parsedRequest= {};\n for (var i = 0; i< keyValue.length; i++) {\n var parsedElement =keyValue[i];\n var element=parsedElement.split(\"=\");\n parsedRequest[element[0]] = element[1];\n }\n console.log(JSON.stringify(parsedRequest));\n console.log(payload.username, parsedRequest.password);\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, parsedRequest.password, payload.clientId);\n\n \tvar validateCaptcha = true;\n \tif(payload.attemptsFails > payload.attempts) {\n \tvalidateCaptcha = utils.ValidateToken(parsedRequest[\"g-recaptcha-response\"]);\n }\n \t\n console.log(\"Scim user \" + JSON.stringify(scimUser));\n \tvar redisToSave= payload;\n if (validateCaptcha && scimUser.id !== undefined && scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index > -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"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 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 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 \tpayload.attemptsFails++;\n \tconsole.log(JSON.stringify(redisToSave))\n utils.SetInRedis(payload.id, JSON.stringify(redisToSave), 600, redisClient);\n payload = {\n id: payload.id,\n template: \"username.html\",\n err: \"Invalid data for authentication\",\n soid_code: payload.soid_code,\n value: payload,\n };\n }\n link = \"next1\"\n}\n\nmain();",
2422 "name": "storePassword"
2423});
2424db.scripts.insert({
2425 "code": "function main() {\n console.log(\"id: \" + payload.id);\n var redisClient = shared[\"Redis\"];\n var redisToSave= payload;\n redisToSave[\"state\"]= \"password\";\n redisToSave[\"siteKey\"] = meta.siteKey;\n redisToSave['username']= body.split(\"=\")[1];\n \tredisToSave['attempts']= 1;\n \tif(redisToSave['attemptsFails'] == undefined) {\n \tredisToSave['attemptsFails'] = 0\n }\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();",
2426 "name": "storeUsername",
2427 "globalvariable": [{"name": "siteKey", "type": "string", "required": false}]
2428});
2429
2430db.scripts.insert({
2431 "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();",
2432 "name": "switchPlayFromRedis"
2433});
2434db.scripts.insert({
2435 "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();",
2436 "name": "validateFromEmail"
2437});
2438db.scripts.insert({
2439 "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();",
2440 "name": "validateToken"
2441});
2442
2443
2444db.scripts.insert({
2445 "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();",
2446 "name": "sso.openID.IPThreat.wf"
2447});
2448
2449db.workflows.insert(
2450 {
2451 "_id": "5e5804a75db1799a2590f22a",
2452 "nodes": {
2453 "2b21edbb-ae66-403f-b80c-18e0a030c74b": {
2454 "links": {
2455 "next1": "e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2456 },
2457 "type": "ottojs",
2458 "bp": "",
2459 "repeat": "0",
2460 "propsValidity": {
2461 "code": true,
2462 "propsValidity": true
2463 },
2464 "name": "default-wf.default.validateFromEmail",
2465 "position": {
2466 "x": "1753",
2467 "y": "501"
2468 },
2469 "code": "default-wf.default.validateFromEmail",
2470 "asynchronous": false
2471 },
2472 "46ef025c-d754-452b-8e60-06e103163e40": {
2473 "name": "redis",
2474 "propsValidity": {
2475 "propsValidity": true,
2476 "redisHost": true
2477 },
2478 "isNodeValid": true,
2479 "links": {
2480 "next1": "bcd5b8d1-8d56-419f-b13e-4fb53f167248"
2481 },
2482 "position": {
2483 "x": "807",
2484 "y": "671"
2485 },
2486 "type": "redis",
2487 "asynchronous": false,
2488 "repeat": "0",
2489 "bp": "",
2490 "redisHost": "localhost:6379"
2491 },
2492 "16d353c1-78d2-4494-8f0b-f381278f3576": {
2493 "code": "switchPlayFromRedis",
2494 "asynchronous": false,
2495 "name": "switchPlayFromRedis",
2496 "position": {
2497 "x": "1360",
2498 "y": "668"
2499 },
2500 "type": "ottojs",
2501 "bp": "",
2502 "repeat": "0",
2503 "propsValidity": {
2504 "code": true,
2505 "propsValidity": true
2506 },
2507 "links": {
2508 "next1": "fb4e4acb-78da-4f2a-b46d-1b01e319ac08",
2509 "next2": "18c5e2c3-6e75-416e-8b53-0c0d8cb891eb",
2510 "next3": "d88c1955-0559-4968-990b-d4fc028ae316",
2511 "next4": "2b21edbb-ae66-403f-b80c-18e0a030c74b"
2512 }
2513 },
2514 "18c5e2c3-6e75-416e-8b53-0c0d8cb891eb": {
2515 "code": "default-wf.default.storePassword",
2516 "links": {
2517 "next1": "e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2518 },
2519 "position": {
2520 "x": "1771",
2521 "y": "721"
2522 },
2523 "type": "ottojs",
2524 "bp": "",
2525 "asynchronous": false,
2526 "repeat": "0",
2527 "name": "default-wf.default.storePassword",
2528 "propsValidity": {
2529 "code": true,
2530 "propsValidity": true
2531 }
2532 },
2533 "d88c1955-0559-4968-990b-d4fc028ae316": {
2534 "repeat": "0",
2535 "name": "default-wf.default.storeDeviceAndRequestTitan",
2536 "links": {
2537 "next1": "e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2538 },
2539 "code": "default-wf.default.storeDeviceAndRequestTitan",
2540 "asynchronous": false,
2541 "propsValidity": {
2542 "propsValidity": true,
2543 "code": true
2544 },
2545 "position": {
2546 "x": "1767",
2547 "y": "609"
2548 },
2549 "type": "ottojs",
2550 "bp": ""
2551 },
2552 "e06c5c49-2357-4f7e-8ad5-a54f726ded2b": {
2553 "asynchronous": false,
2554 "repeat": "0",
2555 "isNodeValid": true,
2556 "type": "formatter",
2557 "bp": "",
2558 "name": "formatter",
2559 "format": "html",
2560 "propsValidity": {
2561 "format": true,
2562 "propsValidity": true
2563 },
2564 "links": {},
2565 "position": {
2566 "x": "2217",
2567 "y": "648"
2568 }
2569 },
2570 "bcd5b8d1-8d56-419f-b13e-4fb53f167248": {
2571 "bp": "",
2572 "repeat": "0",
2573 "name": "beginPlay",
2574 "propsValidity": {
2575 "code": true,
2576 "propsValidity": true
2577 },
2578 "links": {
2579 "next1": "16d353c1-78d2-4494-8f0b-f381278f3576"
2580 },
2581 "position": {
2582 "x": "1093",
2583 "y": "666"
2584 },
2585 "code": "beginPlay",
2586 "asynchronous": false,
2587 "type": "ottojs"
2588 },
2589 "fb4e4acb-78da-4f2a-b46d-1b01e319ac08": {
2590 "bp": "",
2591 "repeat": "0",
2592 "links": {
2593 "next1": "e06c5c49-2357-4f7e-8ad5-a54f726ded2b"
2594 },
2595 "name": "default-wf.default.storeUsername",
2596 "propsValidity": {
2597 "propsValidity": true,
2598 "code": true
2599 },
2600 "position": {
2601 "x": "1775",
2602 "y": "840"
2603 },
2604 "type": "ottojs",
2605 "code": "default-wf.default.storeUsername",
2606 "asynchronous": false
2607 }
2608 },
2609 "name": "",
2610 "root": "46ef025c-d754-452b-8e60-06e103163e40",
2611 "debug": "false",
2612 "fileName": "default.play.wf"
2613 }
2614);
2615db.workflows.insert(
2616 {
2617 "nodes": {
2618 "edfb25f2-3c3f-4e51-b0c9-d09244b58065": {
2619 "repeat": "0",
2620 "name": "default-wf.default.createWorkflow",
2621 "isNodeValid": true,
2622 "links": {
2623 "next1": "a63b2e35-1b0b-46a5-b19d-9221b5588d7b",
2624 "next2": "d23aec21-b4e7-4545-83a4-b9d6feb140b4"
2625 },
2626 "position": {
2627 "x": "659",
2628 "y": "554"
2629 },
2630 "type": "ottojs",
2631 "code": "default-wf.default.createWorkflow",
2632 "asynchronous": false,
2633 "meta": {
2634 "urlBapi": "http://localhost:9000",
2635 "urlToRedirect": "https://localhost:7000",
2636 "wf": "default",
2637 "samlRedirectUrl": "https://localhost:8888"
2638 },
2639 "propsValidity": {
2640 "code": true,
2641 "propsValidity": true
2642 },
2643 "bp": ""
2644 },
2645 "d23aec21-b4e7-4545-83a4-b9d6feb140b4": {
2646 "format": "html",
2647 "isNodeValid": true,
2648 "type": "formatter",
2649 "asynchronous": false,
2650 "repeat": "0",
2651 "links": {},
2652 "position": {
2653 "x": "1328",
2654 "y": "932"
2655 },
2656 "bp": "",
2657 "name": "formatter",
2658 "propsValidity": {
2659 "format": true,
2660 "propsValidity": true
2661 }
2662 },
2663 "a63b2e35-1b0b-46a5-b19d-9221b5588d7b": {
2664 "isNodeValid": true,
2665 "type": "redis",
2666 "asynchronous": false,
2667 "name": "redis",
2668 "propsValidity": {
2669 "propsValidity": true,
2670 "redisHost": true
2671 },
2672 "position": {
2673 "x": "1051",
2674 "y": "511"
2675 },
2676 "bp": "",
2677 "redisHost": "localhost:6379",
2678 "repeat": "0",
2679 "links": {
2680 "next1": "9d961bb9-654f-4748-8414-7c281ded6e13"
2681 }
2682 },
2683 "9d961bb9-654f-4748-8414-7c281ded6e13": {
2684 "name": "default-wf.default.createWorkflow.prepareToTemplate",
2685 "propsValidity": {
2686 "code": true,
2687 "propsValidity": true
2688 },
2689 "links": {
2690 "next1": "d23aec21-b4e7-4545-83a4-b9d6feb140b4"
2691 },
2692 "position": {
2693 "x": "1426",
2694 "y": "522"
2695 },
2696 "type": "ottojs",
2697 "repeat": "0",
2698 "asynchronous": false,
2699 "bp": "",
2700 "code": "default-wf.default.createWorkflow.prepareToTemplate"
2701 }
2702 },
2703 "name": "",
2704 "root": "edfb25f2-3c3f-4e51-b0c9-d09244b58065",
2705 "debug": "false",
2706 "fileName": "default.create.wf"
2707 }
2708);
2709
2710db.scripts.insert(
2711 {
2712 "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();",
2713 "name": "default-wf.default.storeUsername",
2714 "color": "apple-green",
2715 "globalvariable": []
2716 }
2717);
2718
2719db.scripts.insert(
2720 {
2721 "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]);\n var user = utils.GetUser(payload.username, body.split(\"=\")[1], payload.clientId);\n if (user.id !== undefined && 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\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 && scimUser.id !== null) {\n var index = utils.CheckUserPrompt(scimUser, payload.clientId);\n if (index > -1){\n payload.show = \"hidden\";\n var component = \"\";\n var scopes = scimUser[\"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 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();",
2722 "name": "default-wf.default.storePassword",
2723 "color": "apple-green",
2724 "globalvariable": []
2725 }
2726);
2727
2728db.scripts.insert(
2729 {
2730 "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();",
2731 "name": "default-wf.default.storeDeviceAndRequestTitan",
2732 "color": "apple-green",
2733 "globalvariable": []
2734 }
2735);
2736
2737db.scripts.insert(
2738 {
2739 "code": "function main() {\n if(payload.method === \"OpenID\") {\n handleOpenID()\n } else {\n handleSAML()\n }\n}\n\n\nfunction handleSAML() {\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 && \"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 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 && \"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();",
2740 "name": "default-wf.default.validateFromEmail",
2741 "color": "apple-green",
2742 "globalvariable": []
2743 }
2744);
2745
2746db.scripts.insert(
2747 {
2748 "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();",
2749 "name": "default-wf.default.createWorkflow.prepareToTemplate"
2750 }
2751);
2752
2753db.scripts.insert(
2754 {
2755 "code": "function main() {\n console.log(\"Method \" + c.Request.Method);\n if(c.Query(\"clientId\") !== undefined && c.Query(\"clientId\") !== \"\" ) {\n handleOpenID();\n } else {\n handleSAML();\n }\n}\n\nfunction handleSAML() {\n if (c.Query(\"user\") !== null && c.Query(\"user\") !== \"\") {\n\n payload = {\n id: utils.GenerateUUID(),\n template: \"success_saml.html\",\n value: {\n wf: meta.wf,\n urlToRedirect: meta.samlRedirectUrl,\n urlBapi: meta.urlBapi,\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.samlRedirectUrl,\n urlBapi: meta.urlBapi,\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\nfunction handleOpenID(){\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 \twf: meta.wf,\n \turlToRedirect: meta.urlToRedirect,\n urlBapi: 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 payload = {\n operation: \"set\",\n id: utils.GenerateUUID(),\n value: {\n wf: meta.wf,\n urlToRedirect: meta.urlToRedirect,\n urlBapi: meta.urlBapi,\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 < 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();",
2756 "name": "default-wf.default.createWorkflow",
2757 "color": "apple-green",
2758 "globalvariable": [{"name": "urlBapi", "type": "string", "required": false}, {
2759 "name": "wf",
2760 "type": "string",
2761 "required": false
2762 }, {"name": "urlToRedirect", "type": "string", "required": false}, {
2763 "name": "samlRedirectUrl",
2764 "type": "string",
2765 "required": false
2766 }]
2767 }
2768);