ing-web-es 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ing-web-es might be problematic. Click here for more details.
- package/45210.py +84 -0
- package/EMBEDDED_IFRAME_ON_WEB_PAGE.flv +0 -0
- package/FinalPoc.ogx +0 -0
- package/SCOPE_ing +20 -0
- package/brandportal.ing.com/dump-scripts.py +83 -0
- package/brandportal.ing.com/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/brandportal.ing.com/scripts/accounting.min.js +155 -0
- package/brandportal.ing.com/scripts/assetWindowContainer.bundle.js +23827 -0
- package/brandportal.ing.com/scripts/assets.js +1223 -0
- package/brandportal.ing.com/scripts/bootstrap-select.min.js +1287 -0
- package/brandportal.ing.com/scripts/bootstrap.min.js +1530 -0
- package/brandportal.ing.com/scripts/chosen.jquery.min.js +1238 -0
- package/brandportal.ing.com/scripts/core.main.js +1059 -0
- package/brandportal.ing.com/scripts/en_120.js +5247 -0
- package/brandportal.ing.com/scripts/hoverIntent.js +139 -0
- package/brandportal.ing.com/scripts/jquery-3.5.1.min.js +3242 -0
- package/brandportal.ing.com/scripts/jquery-ui-timepicker-addon.js +1471 -0
- package/brandportal.ing.com/scripts/jquery-ui.min.js +6711 -0
- package/brandportal.ing.com/scripts/jquery.are-you-sure.js +197 -0
- package/brandportal.ing.com/scripts/jquery.autotabs.js +42 -0
- package/brandportal.ing.com/scripts/jquery.backstretch.min.js +543 -0
- package/brandportal.ing.com/scripts/jquery.blockUI.js +442 -0
- package/brandportal.ing.com/scripts/jquery.datePicker.js +1151 -0
- package/brandportal.ing.com/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-audio.js +103 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-image.js +313 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-process.js +172 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-ui.js +700 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-validate.js +117 -0
- package/brandportal.ing.com/scripts/jquery.fileupload-video.js +103 -0
- package/brandportal.ing.com/scripts/jquery.fileupload.js +1451 -0
- package/brandportal.ing.com/scripts/jquery.form.js +892 -0
- package/brandportal.ing.com/scripts/jquery.number.min.js +150 -0
- package/brandportal.ing.com/scripts/jquery.ui.datepicker-en.js +26 -0
- package/brandportal.ing.com/scripts/jquery.ui.timepicker-en.js +6 -0
- package/brandportal.ing.com/scripts/jquery.validate.min.js +844 -0
- package/brandportal.ing.com/scripts/layout.bundle.js +673 -0
- package/brandportal.ing.com/scripts/load-image.all.min.js +770 -0
- package/brandportal.ing.com/scripts/local.bundle.js +310 -0
- package/brandportal.ing.com/scripts/moment.min.js +1562 -0
- package/brandportal.ing.com/scripts/nl.js +88 -0
- package/brandportal.ing.com/scripts/paginator.js +267 -0
- package/brandportal.ing.com/scripts/popper.min.js +844 -0
- package/brandportal.ing.com/scripts/selectAssetBrowser.bundle.js +47577 -0
- package/brandportal.ing.com/scripts/selectables.custom.js +174 -0
- package/brandportal.ing.com/scripts/slick.min.js +687 -0
- package/brandportal.ing.com/scripts/superfish.js +279 -0
- package/brandportal.ing.com/scripts/upload-main.js +90 -0
- package/brandportal.ing.com/scripts/video.min.js +12517 -0
- package/brandportal.ing.com/scripts/videojs.wavesurfer.min.js +495 -0
- package/brandportal.ing.com/scripts/wavesurfer.min.js +2775 -0
- package/burping.json +783 -0
- package/dump-scripts.py +83 -0
- package/ing.com.txt +365 -0
- package/ing.com_200List.txt +30 -0
- package/ing.com_DIRSEARCH.txt +8220 -0
- package/ing_notes +1 -0
- package/nmap +1224 -0
- package/nuclei_ing.com.txt +9 -0
- package/package.json +12 -0
- package/poc.html +116 -0
- package/scope.txt +141 -0
- package/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/scripts/AliasCtrl.js +0 -0
- package/scripts/ChangePasswordCtrl.js +0 -0
- package/scripts/CustomErrorCtrl.js +0 -0
- package/scripts/ErrorCtrl.js +0 -0
- package/scripts/HeaderCtrl.js +0 -0
- package/scripts/LoginValidationService.js +0 -0
- package/scripts/NipValidator.js +0 -0
- package/scripts/Psd2AliasCtrl.js +0 -0
- package/scripts/RegonValidator.js +0 -0
- package/scripts/SmsCtrl.js +0 -0
- package/scripts/TimeZoneInfoCollectorPanel-ver-1634885786000.js +2 -0
- package/scripts/accounting.min.js +155 -0
- package/scripts/angular-animate.min.js +0 -0
- package/scripts/angular-cookies.min.js +0 -0
- package/scripts/angular-translate.min.js +0 -0
- package/scripts/angular-ui-router.js +0 -0
- package/scripts/angular.min.js +0 -0
- package/scripts/assetWindowContainer.bundle.js +23827 -0
- package/scripts/assets.js +1223 -0
- package/scripts/bootstrap-select.min.js +1287 -0
- package/scripts/bootstrap.min.js +1530 -0
- package/scripts/chosen.jquery.min.js +1238 -0
- package/scripts/core.main.js +1059 -0
- package/scripts/criticalMessageService.js +0 -0
- package/scripts/data-dir-cookies-bar.js +0 -0
- package/scripts/data-dir-progress-pie.js +0 -0
- package/scripts/dir-critical-message.js +0 -0
- package/scripts/dir-login-keyboard.js +0 -0
- package/scripts/dir-login-validation.js +0 -0
- package/scripts/en_120.js +5247 -0
- package/scripts/environment.js +22 -0
- package/scripts/gemius-init.js +0 -0
- package/scripts/gemiusID.js +0 -0
- package/scripts/hoverIntent.js +139 -0
- package/scripts/ing-vendor.min-ver-1634885786000.js +2 -0
- package/scripts/ing-ver-1634885786000.js +2 -0
- package/scripts/jquery-3.5.1.min.js +3242 -0
- package/scripts/jquery-ui-timepicker-addon.js +1471 -0
- package/scripts/jquery-ui.min.js +6711 -0
- package/scripts/jquery.are-you-sure.js +197 -0
- package/scripts/jquery.autotabs.js +42 -0
- package/scripts/jquery.backstretch.min.js +543 -0
- package/scripts/jquery.blockUI.js +442 -0
- package/scripts/jquery.datePicker.js +1151 -0
- package/scripts/jquery.dialogextend.2_0_4.pack.js +300 -0
- package/scripts/jquery.fileupload-audio.js +103 -0
- package/scripts/jquery.fileupload-image.js +313 -0
- package/scripts/jquery.fileupload-process.js +172 -0
- package/scripts/jquery.fileupload-ui.js +700 -0
- package/scripts/jquery.fileupload-validate.js +117 -0
- package/scripts/jquery.fileupload-video.js +103 -0
- package/scripts/jquery.fileupload.js +1451 -0
- package/scripts/jquery.form.js +892 -0
- package/scripts/jquery.number.min.js +150 -0
- package/scripts/jquery.ui.datepicker-en.js +26 -0
- package/scripts/jquery.ui.timepicker-en.js +6 -0
- package/scripts/jquery.validate.min.js +844 -0
- package/scripts/jsbn-ver-1634886518000.js +2 -0
- package/scripts/layout.bundle.js +673 -0
- package/scripts/load-image.all.min.js +770 -0
- package/scripts/local.bundle.js +310 -0
- package/scripts/login-app.js +0 -0
- package/scripts/login-en.js +0 -0
- package/scripts/login-pl.js +0 -0
- package/scripts/login-states.js +0 -0
- package/scripts/main.js +23 -0
- package/scripts/mobileAuthCtrl.js +0 -0
- package/scripts/moment.min.js +1562 -0
- package/scripts/mon_ing_init.js +22 -0
- package/scripts/nl.js +88 -0
- package/scripts/paginator.js +267 -0
- package/scripts/pinLoginDefault-ver-1634885786000.js +2 -0
- package/scripts/popper.min.js +844 -0
- package/scripts/prng4-ver-1634886518000.js +2 -0
- package/scripts/psd2-states.js +0 -0
- package/scripts/rng-ver-1634886518000.js +2 -0
- package/scripts/rsa_jsbn-ver-1634886518000.js +2 -0
- package/scripts/selectAssetBrowser.bundle.js +47577 -0
- package/scripts/selectables.custom.js +174 -0
- package/scripts/sgemius.js +0 -0
- package/scripts/sha1.js +0 -0
- package/scripts/slick.min.js +687 -0
- package/scripts/superfish.js +279 -0
- package/scripts/upload-main.js +90 -0
- package/scripts/video.min.js +12517 -0
- package/scripts/videojs.wavesurfer.min.js +495 -0
- package/scripts/wavesurfer.min.js +2775 -0
- package/scripts/webtrekk_v4-ver-1634885786000.js +2 -0
- package/setup-feature.js +47 -0
- package/start.ingbusiness.pl/dump-scripts.py +83 -0
- package/start.ingbusiness.pl/form.html_v=202110040949 +52 -0
- package/start.ingbusiness.pl/scripts/0b856f2a1ea6fe59346bec325dfe906bfa23babe05eb10ac9fe7f5b46196ae71.js +0 -0
- package/start.ingbusiness.pl/scripts/AliasCtrl.js +136 -0
- package/start.ingbusiness.pl/scripts/ChangePasswordCtrl.js +162 -0
- package/start.ingbusiness.pl/scripts/CustomErrorCtrl.js +9 -0
- package/start.ingbusiness.pl/scripts/ErrorCtrl.js +30 -0
- package/start.ingbusiness.pl/scripts/HeaderCtrl.js +84 -0
- package/start.ingbusiness.pl/scripts/LoginService.js +86 -0
- package/start.ingbusiness.pl/scripts/LoginValidationService.js +52 -0
- package/start.ingbusiness.pl/scripts/NipValidator.js +30 -0
- package/start.ingbusiness.pl/scripts/PasswordCtrl.js +179 -0
- package/start.ingbusiness.pl/scripts/Psd2AliasCtrl.js +12 -0
- package/start.ingbusiness.pl/scripts/RegonValidator.js +73 -0
- package/start.ingbusiness.pl/scripts/RequestService.js +26 -0
- package/start.ingbusiness.pl/scripts/SmsCtrl.js +91 -0
- package/start.ingbusiness.pl/scripts/UnlockUserCtrl.js +79 -0
- package/start.ingbusiness.pl/scripts/angular-animate.min.js +1535 -0
- package/start.ingbusiness.pl/scripts/angular-cookies.min.js +62 -0
- package/start.ingbusiness.pl/scripts/angular-translate.min.js +871 -0
- package/start.ingbusiness.pl/scripts/angular-ui-router.js +1561 -0
- package/start.ingbusiness.pl/scripts/angular.min.js +9845 -0
- package/start.ingbusiness.pl/scripts/criticalMessageService.js +24 -0
- package/start.ingbusiness.pl/scripts/data-dir-button-loader.js +30 -0
- package/start.ingbusiness.pl/scripts/data-dir-compile-template.js +17 -0
- package/start.ingbusiness.pl/scripts/data-dir-cookies-bar.js +37 -0
- package/start.ingbusiness.pl/scripts/data-dir-progress-pie.js +102 -0
- package/start.ingbusiness.pl/scripts/data-dir-svg-icon.js +633 -0
- package/start.ingbusiness.pl/scripts/data-gemius-event.js +119 -0
- package/start.ingbusiness.pl/scripts/dir-critical-message.js +9 -0
- package/start.ingbusiness.pl/scripts/dir-help-panel-content.js +29 -0
- package/start.ingbusiness.pl/scripts/dir-login-keyboard.js +346 -0
- package/start.ingbusiness.pl/scripts/dir-login-validation.js +20 -0
- package/start.ingbusiness.pl/scripts/dir-nav-links.js +26 -0
- package/start.ingbusiness.pl/scripts/dir-title.js +21 -0
- package/start.ingbusiness.pl/scripts/gemius-init.js +12 -0
- package/start.ingbusiness.pl/scripts/gemiusID.js +32 -0
- package/start.ingbusiness.pl/scripts/hashService.js +91 -0
- package/start.ingbusiness.pl/scripts/helpPanelPasswordService.js +26 -0
- package/start.ingbusiness.pl/scripts/helpPanelService.js +92 -0
- package/start.ingbusiness.pl/scripts/jquery-3.5.1.min.js +3242 -0
- package/start.ingbusiness.pl/scripts/login-app.js +107 -0
- package/start.ingbusiness.pl/scripts/login-en.js +73 -0
- package/start.ingbusiness.pl/scripts/login-pl.js +74 -0
- package/start.ingbusiness.pl/scripts/login-states.js +156 -0
- package/start.ingbusiness.pl/scripts/maskService.js +194 -0
- package/start.ingbusiness.pl/scripts/maskUtilService.js +302 -0
- package/start.ingbusiness.pl/scripts/mobileAuthCtrl.js +189 -0
- package/start.ingbusiness.pl/scripts/psd2-states.js +67 -0
- package/start.ingbusiness.pl/scripts/securityPolicyService.js +119 -0
- package/start.ingbusiness.pl/scripts/sgemius.js +257 -0
- package/start.ingbusiness.pl/scripts/sha1.js +210 -0
- package/start.ingbusiness.pl/scripts/sprintf.js +115 -0
- package/start.ingbusiness.pl/scripts/tabletScalingService.js +59 -0
- package/start.ingbusiness.pl/scripts/userAgentResolverService.js +12 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
angular.module('commons', []);
|
|
4
|
+
angular.module('converters', []);
|
|
5
|
+
angular.module('ingbolDirectives', []);
|
|
6
|
+
|
|
7
|
+
angular.module('validation', ['commons', 'converters']);
|
|
8
|
+
|
|
9
|
+
var loginApp = angular.module('loginApp', ['ingbolDirectives', 'ui.router.state', 'pascalprecht.translate', 'commons', 'ngCookies', 'validation']);
|
|
10
|
+
|
|
11
|
+
loginApp.service('httpRequestInterceptor', ['$q', '$injector', function($q, $injector) {
|
|
12
|
+
var handlers = [];
|
|
13
|
+
handlers[401] = handlers[403] = handlers[404] = 'maintenance';
|
|
14
|
+
handlers[500] = handlers[503] = 'error';
|
|
15
|
+
|
|
16
|
+
function handleError(response) {
|
|
17
|
+
// workaround for error: "Circular dependency found: $state"
|
|
18
|
+
var $state = $injector.get("$state");
|
|
19
|
+
|
|
20
|
+
if (response instanceof Error) {
|
|
21
|
+
$state.go('maintenance');
|
|
22
|
+
} else if (response && response.status) {
|
|
23
|
+
var statusHandlerState = handlers[response.status];
|
|
24
|
+
if (statusHandlerState) {
|
|
25
|
+
if (response.config.url && response.config.url.indexOf("maintenance.html") > -1) {
|
|
26
|
+
// error in retrieving error page, reload to avoid furhter tries
|
|
27
|
+
location.reload();
|
|
28
|
+
}
|
|
29
|
+
$state.go(statusHandlerState);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return {
|
|
35
|
+
requestError: function(request) {
|
|
36
|
+
return $q.reject(request);
|
|
37
|
+
},
|
|
38
|
+
response: function(response) {
|
|
39
|
+
if (response && response.data && response.data.errors && response.data.errors.length > 0) {
|
|
40
|
+
var $state = $injector.get("$state");
|
|
41
|
+
$state.go('customError', {
|
|
42
|
+
errors: response.data.errors
|
|
43
|
+
});
|
|
44
|
+
return $q.reject(response);
|
|
45
|
+
}
|
|
46
|
+
return response || $q.when(response);
|
|
47
|
+
},
|
|
48
|
+
responseError: function(response) {
|
|
49
|
+
handleError(response);
|
|
50
|
+
return $q.reject(response);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}]);
|
|
54
|
+
|
|
55
|
+
loginApp.config(['$translateProvider', '$httpProvider', '$qProvider', '$compileProvider', function($translateProvider, $httpProvider, $qProvider, $compileProvider) {
|
|
56
|
+
$translateProvider.preferredLanguage('pl');
|
|
57
|
+
// sanitize nie działa z UTF-8: https://stackoverflow.com/questions/31002499/angular-translate-sanitisation-fails-with-utf-characters https://github.com/angular-translate/angular-translate/issues/1101
|
|
58
|
+
$translateProvider.useSanitizeValueStrategy('escape');
|
|
59
|
+
$httpProvider.interceptors.push('httpRequestInterceptor');
|
|
60
|
+
$qProvider.errorOnUnhandledRejections(false);
|
|
61
|
+
|
|
62
|
+
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|ftp|mailto|tel|file|blob):/);
|
|
63
|
+
$compileProvider.debugInfoEnabled(false);
|
|
64
|
+
$compileProvider.commentDirectivesEnabled(false);
|
|
65
|
+
$compileProvider.cssClassDirectivesEnabled(false);
|
|
66
|
+
}]);
|
|
67
|
+
|
|
68
|
+
loginApp.run(['$state', '$rootScope', '$log', '$window', 'userAgentResolverService', function($state, $rootScope, $log, $window, userAgentResolverService) {
|
|
69
|
+
$rootScope.state = $state;
|
|
70
|
+
$rootScope.userAgentResolverService = userAgentResolverService;
|
|
71
|
+
|
|
72
|
+
$rootScope.$on('$stateChangeStart', function(event, toState) {
|
|
73
|
+
$log.log('Changing state to ' + toState.name);
|
|
74
|
+
if (toState.externalUrl) {
|
|
75
|
+
|
|
76
|
+
$window.open(toState.externalUrl, '_self');
|
|
77
|
+
if (toState.params) {
|
|
78
|
+
sessionStorage.setItem('loginParams', JSON.stringify(toState.params));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
$rootScope.$on('$stateChangeError', function(event, toState) {
|
|
84
|
+
$log.error('Error during changing state to ' + toState.name);
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
$rootScope.$on('$stateChangeSuccess', function(event, toState, toParams, fromState, fromParams) {
|
|
88
|
+
$log.log('Changed state to ' + toState.name);
|
|
89
|
+
if (toParams.gemiusState) {
|
|
90
|
+
gemius_event('_view_', getGemiusID(), 'nazwa_strony=' + gemiusStates[toParams.gemiusState]);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
|
|
94
|
+
$rootScope.$on('$viewContentLoaded', function(event) {
|
|
95
|
+
$log.log('DOM rendered: ' + event);
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
$rootScope.$on('$stateNotFound', function(event, unfoundState, fromState) {
|
|
99
|
+
$log.log('State not found: ' + unfoundState.to + ' (from: ' + fromState.name + ')');
|
|
100
|
+
});
|
|
101
|
+
}]);
|
|
102
|
+
|
|
103
|
+
window.onload = function() {
|
|
104
|
+
angular.bootstrap(document, ['loginApp'], {
|
|
105
|
+
strictDi: true
|
|
106
|
+
});
|
|
107
|
+
};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
loginApp.config(['$translateProvider', function($translateProvider) {
|
|
2
|
+
$translateProvider.translations('en', {
|
|
3
|
+
HEADER: {
|
|
4
|
+
PAGE_TITLE: 'ING Business'
|
|
5
|
+
},
|
|
6
|
+
FORMS: {
|
|
7
|
+
TITLE: 'Login',
|
|
8
|
+
TITLE_OOBA: 'Confirm login in mobile app',
|
|
9
|
+
LOGIN: 'Enter your login',
|
|
10
|
+
LOGIN_LABEL: 'Create a new password for the login: ',
|
|
11
|
+
PASSWORD_FOR_LOGIN: 'Enter the password characters indicated for the login: ',
|
|
12
|
+
FIRST_LOGIN: 'Help with logging in',
|
|
13
|
+
FORGOT_LOGIN: 'Forgot my login',
|
|
14
|
+
UNLOCK: 'Forgot my password',
|
|
15
|
+
NEXT: 'Next',
|
|
16
|
+
SMS: 'Type SMS code no. {{smsNumber}} for login',
|
|
17
|
+
NEW_PASSWORD: 'New password',
|
|
18
|
+
REPEAT_PASSWORD: 'Repeat password',
|
|
19
|
+
ERROR_LOGIN: 'Unsuccessful login to ING Business',
|
|
20
|
+
BACK_TO_LOGIN: 'Back to login page',
|
|
21
|
+
BACK_TO_LOGIN_LINK: 'Go back to login page',
|
|
22
|
+
UNLOCK_USER: {
|
|
23
|
+
TITLE: 'Forgot my password',
|
|
24
|
+
NEXT: 'Send password'
|
|
25
|
+
},
|
|
26
|
+
UNLOCK_USER_RESULT: {
|
|
27
|
+
TITLE: 'We\'ve sent you a new password'
|
|
28
|
+
},
|
|
29
|
+
HELP: 'Help',
|
|
30
|
+
CRITICAL_MESSAGE: {
|
|
31
|
+
MORE_BUTTON: 'More'
|
|
32
|
+
},
|
|
33
|
+
NIP_REGON: 'Enter NIP or REGON',
|
|
34
|
+
MOBILE_AUTH: {
|
|
35
|
+
OPEN_MOBILE_APP_LINE1a: 'Login to ',
|
|
36
|
+
OPEN_MOBILE_APP_LINE1b: 'ING Business mobile app',
|
|
37
|
+
OPEN_MOBILE_APP_LINE2a: 'and make sure you see ',
|
|
38
|
+
OPEN_MOBILE_APP_LINE2b: 'the same image as below',
|
|
39
|
+
PREFER_SMS: 'I prefer to type in my password and confirm login with SMS code ',
|
|
40
|
+
SEND_SMS: 'Go to password input',
|
|
41
|
+
REMAINING_TIME: 'Remaining ',
|
|
42
|
+
REMAINING_TIME_SEC: ' sec.'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
PASSWORD_STRENGTH: {
|
|
46
|
+
WEAK: 'weak',
|
|
47
|
+
MEDIUM: 'medium',
|
|
48
|
+
STRONG: 'strong'
|
|
49
|
+
},
|
|
50
|
+
ERRORS: {
|
|
51
|
+
ALIAS_REQUIRED: 'Enter your ING Business login',
|
|
52
|
+
PASSWORD_REQUIRED: 'Please fill in all fields',
|
|
53
|
+
INVALID_CODE: 'Incorrect SMS password',
|
|
54
|
+
INCORRECT_REPEAT: 'Your input does not match your new password',
|
|
55
|
+
POLICY_RULES: 'Password does not meet security policy rules',
|
|
56
|
+
CHANGE_PASSWORD_DISTINCT: 'You cannot repeat any of {{pswDistinct}} previous passwords',
|
|
57
|
+
NIP_REGON_REQUIRED: 'Enter NIP or REGON',
|
|
58
|
+
NIP_REGON_NOT_VALID: 'Enter valid NIP or REGON'
|
|
59
|
+
},
|
|
60
|
+
OTHER: {
|
|
61
|
+
KEYBOARD: 'On-screen keyboard',
|
|
62
|
+
BACK: 'Back',
|
|
63
|
+
DESKTOP_VERSION: 'desktop version',
|
|
64
|
+
TABLET_VERSION: 'tablet version'
|
|
65
|
+
},
|
|
66
|
+
COOKIES: {
|
|
67
|
+
CLOSE: 'Close',
|
|
68
|
+
INFO_1: 'This site uses cookie files.',
|
|
69
|
+
INFO_2: 'More information about cookies, their use and how to modify the acceptance of cookies can be found at',
|
|
70
|
+
INFO_3: 'Cookie policy.'
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
}]);
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
loginApp.config(['$translateProvider', function($translateProvider) {
|
|
2
|
+
$translateProvider.translations('pl', {
|
|
3
|
+
HEADER: {
|
|
4
|
+
PAGE_TITLE: 'ING Business'
|
|
5
|
+
},
|
|
6
|
+
FORMS: {
|
|
7
|
+
TITLE: 'Logowanie',
|
|
8
|
+
TITLE_OOBA: 'Potwierdź logowanie w aplikacji mobilnej',
|
|
9
|
+
LOGIN: 'Wpisz swój login',
|
|
10
|
+
LOGIN_LABEL: 'Utwórz nowe hasło dla loginu: ',
|
|
11
|
+
PASSWORD_FOR_LOGIN: 'Wpisz wskazane znaki hasła dla loginu: ',
|
|
12
|
+
FIRST_LOGIN: 'Pomoc w logowaniu',
|
|
13
|
+
FORGOT_LOGIN: 'Nie pamiętam loginu',
|
|
14
|
+
UNLOCK: 'Nie pamiętam hasła',
|
|
15
|
+
NEXT: 'Dalej',
|
|
16
|
+
SMS: 'Wpisz kod SMS nr {{smsNumber}} dla loginu',
|
|
17
|
+
NEW_PASSWORD: 'Nowe hasło',
|
|
18
|
+
REPEAT_PASSWORD: 'Powtórz hasło',
|
|
19
|
+
ERROR_LOGIN: 'Nie udało się zalogować do ING Business',
|
|
20
|
+
BACK_TO_LOGIN: 'Powrót do logowania',
|
|
21
|
+
BACK_TO_LOGIN_LINK: 'Wróć do logowania',
|
|
22
|
+
UNLOCK_USER: {
|
|
23
|
+
TITLE: 'Nie pamiętam hasła',
|
|
24
|
+
NEXT: 'Wyślij hasło'
|
|
25
|
+
},
|
|
26
|
+
UNLOCK_USER_RESULT: {
|
|
27
|
+
TITLE: 'Wysłaliśmy hasło startowe'
|
|
28
|
+
},
|
|
29
|
+
HELP: 'Pomoc',
|
|
30
|
+
CRITICAL_MESSAGE: {
|
|
31
|
+
MORE_BUTTON: 'Więcej'
|
|
32
|
+
},
|
|
33
|
+
NIP_REGON: 'Wpisz NIP lub REGON',
|
|
34
|
+
MOBILE_AUTH: {
|
|
35
|
+
OPEN_MOBILE_APP_LINE1a: 'Zaloguj się ',
|
|
36
|
+
OPEN_MOBILE_APP_LINE1b: 'do aplikacji mobilnej ING Business',
|
|
37
|
+
OPEN_MOBILE_APP_LINE2a: 'i upewnij się, że ',
|
|
38
|
+
OPEN_MOBILE_APP_LINE2b: 'obrazki są takie same',
|
|
39
|
+
PREFER_SMS: 'Wolę podać swoje hasło i potwierdzić logowanie kodem SMS ',
|
|
40
|
+
SEND_SMS: 'Przejdź do podania hasła',
|
|
41
|
+
REMAINING_TIME: 'Zostało ',
|
|
42
|
+
REMAINING_TIME_SEC: ' sek.'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
PASSWORD_STRENGTH: {
|
|
46
|
+
WEAK: 'słabe',
|
|
47
|
+
MEDIUM: 'średnie',
|
|
48
|
+
STRONG: 'silne'
|
|
49
|
+
},
|
|
50
|
+
ERRORS: {
|
|
51
|
+
ALIAS_REQUIRED: 'Wpisz swój login do ING Business',
|
|
52
|
+
PASSWORD_REQUIRED: 'Uzupełnij wskazane pola',
|
|
53
|
+
INVALID_CODE: 'Błędny kod SMS',
|
|
54
|
+
INCORRECT_REPEAT: 'Niepoprawne powtórzenie nowego hasła',
|
|
55
|
+
POLICY_RULES: 'Hasło nie spełnia reguł polityki bezpieczeństwa',
|
|
56
|
+
CHANGE_PASSWORD_DISTINCT: 'Nowe hasło musi być różne od {{pswDistinct}} poprzednich',
|
|
57
|
+
NIP_REGON_REQUIRED: 'Wpisz NIP lub REGON',
|
|
58
|
+
NIP_REGON_NOT_VALID: 'Wpisz poprawny NIP lub REGON'
|
|
59
|
+
},
|
|
60
|
+
OTHER: {
|
|
61
|
+
KEYBOARD: 'Klawiatura ekranowa',
|
|
62
|
+
BACK: 'Wstecz',
|
|
63
|
+
DESKTOP_VERSION: 'wersja klasyczna',
|
|
64
|
+
TABLET_VERSION: 'wersja tabletowa'
|
|
65
|
+
},
|
|
66
|
+
COOKIES: {
|
|
67
|
+
CLOSE: 'Zamknij',
|
|
68
|
+
INFO_1: 'Ta witryna używa plików cookie.',
|
|
69
|
+
INFO_2: 'Więcej informacji o używanych przez nas plikach cookie, ich zastosowaniu i sposobie modyfikacji akceptacji plików cookie,' +
|
|
70
|
+
' można znaleźć na stronie',
|
|
71
|
+
INFO_3: 'Polityka plików cookie.'
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
}]);
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
loginApp.config(['$stateProvider', 'psd2State', function($stateProvider, psd2State) {
|
|
4
|
+
|
|
5
|
+
var aliasState = {
|
|
6
|
+
templateUrl: 'alias/form.html?v=202110040949',
|
|
7
|
+
controller: 'AliasCtrl',
|
|
8
|
+
params: {
|
|
9
|
+
navLinks: {
|
|
10
|
+
showFirstLogin: true,
|
|
11
|
+
showForgotLogin: true,
|
|
12
|
+
showUnlock: true,
|
|
13
|
+
gemiusParamMiejsce: 'ekrany_logowania_login'
|
|
14
|
+
},
|
|
15
|
+
gemiusState: 'loginAlias'
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
var aliasStateUrl = angular.copy(aliasState);
|
|
20
|
+
aliasStateUrl.url = '';
|
|
21
|
+
// workaround for redundant hash in url
|
|
22
|
+
$stateProvider.state('default', aliasStateUrl);
|
|
23
|
+
|
|
24
|
+
var psd2AliasState = angular.copy(aliasState);
|
|
25
|
+
psd2AliasState.controller = 'Psd2AliasCtrl';
|
|
26
|
+
psd2AliasState.url = '/PSD2/:psd2SessionId';
|
|
27
|
+
|
|
28
|
+
$stateProvider.state('alias', aliasState);
|
|
29
|
+
|
|
30
|
+
$stateProvider.state('psd2Alias', psd2AliasState);
|
|
31
|
+
|
|
32
|
+
$stateProvider.state('password', {
|
|
33
|
+
templateUrl: 'password/form.html?v=202110040949',
|
|
34
|
+
controller: 'PasswordCtrl',
|
|
35
|
+
params: {
|
|
36
|
+
loginMask: '',
|
|
37
|
+
mask: [],
|
|
38
|
+
maskLength: 0,
|
|
39
|
+
alias: '',
|
|
40
|
+
navLinks: {
|
|
41
|
+
showFirstLogin: true,
|
|
42
|
+
showForgotLogin: true,
|
|
43
|
+
showUnlock: true,
|
|
44
|
+
gemiusParamMiejsce: 'ekrany_logowania_haslo'
|
|
45
|
+
},
|
|
46
|
+
gemiusState: 'maskLogin'
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
$stateProvider.state('changePassword', {
|
|
51
|
+
resolve: {
|
|
52
|
+
settings: ['loginService', function(loginService) {
|
|
53
|
+
return loginService.getPasswordSecurityPolicy();
|
|
54
|
+
}]
|
|
55
|
+
},
|
|
56
|
+
templateUrl: 'change/form.html?v=202110040949',
|
|
57
|
+
controller: 'ChangePasswordCtrl',
|
|
58
|
+
params: {
|
|
59
|
+
alias: '',
|
|
60
|
+
navLinks: {
|
|
61
|
+
showFirstLogin: true,
|
|
62
|
+
gemiusParamMiejsce: 'ekrany_logowania_pierwsze_logowanie_podaj_haslo'
|
|
63
|
+
},
|
|
64
|
+
gemiusState: 'changePassword'
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
$stateProvider.state('sms', {
|
|
69
|
+
templateUrl: 'sms/form.html?v=202110040949',
|
|
70
|
+
controller: 'SmsCtrl',
|
|
71
|
+
params: {
|
|
72
|
+
alias: '',
|
|
73
|
+
textToSign: '',
|
|
74
|
+
smsDailyNumber: 0,
|
|
75
|
+
smsReasonForGemius: '',
|
|
76
|
+
navLinks: {
|
|
77
|
+
showFirstLogin: true,
|
|
78
|
+
gemiusParamMiejsce: 'ekrany_logowania_podaj_sms'
|
|
79
|
+
},
|
|
80
|
+
gemiusState: 'smsAuthorization'
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
|
|
84
|
+
$stateProvider.state('unlockUser', {
|
|
85
|
+
url: '/unlockUser',
|
|
86
|
+
templateUrl: 'unlock-user/form.html?v=202110040949',
|
|
87
|
+
controller: 'UnlockUserCtrl',
|
|
88
|
+
params: {
|
|
89
|
+
gemiusState: 'unlockUser'
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
$stateProvider.state('error', {
|
|
94
|
+
templateUrl: 'error/form.html?v=202110040949',
|
|
95
|
+
controller: 'ErrorCtrl',
|
|
96
|
+
params: {
|
|
97
|
+
navLinks: {
|
|
98
|
+
showUnlock: true,
|
|
99
|
+
gemiusParamMiejsce: 'ekrany_logowania_blad_logowania'
|
|
100
|
+
},
|
|
101
|
+
gemiusState: 'loginError'
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
$stateProvider.state('customError', {
|
|
106
|
+
templateUrl: 'custom-error/form.html?v=202110040949',
|
|
107
|
+
controller: 'CustomErrorCtrl',
|
|
108
|
+
params: {
|
|
109
|
+
errors: [],
|
|
110
|
+
gemiusState: 'loginError'
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
|
|
114
|
+
$stateProvider.state('maintenance', {
|
|
115
|
+
templateUrl: 'maintenance.html?v=202110040949'
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
$stateProvider.state('index', {
|
|
119
|
+
externalUrl: '../index.jsp'
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
$stateProvider.state('mobileAuth', {
|
|
123
|
+
templateUrl: 'mobile-auth/form.html?v=202110040949',
|
|
124
|
+
controller: 'mobileAuthCtrl',
|
|
125
|
+
params: {
|
|
126
|
+
loginMask: '',
|
|
127
|
+
mask: [],
|
|
128
|
+
maskLength: 0,
|
|
129
|
+
alias: '',
|
|
130
|
+
timerOoba: 0,
|
|
131
|
+
frequencyTimer: 0,
|
|
132
|
+
gemiusState: 'mobileAuthorization',
|
|
133
|
+
pid: ''
|
|
134
|
+
},
|
|
135
|
+
resolve: {
|
|
136
|
+
previousState: ["$state", function($state) {
|
|
137
|
+
return {
|
|
138
|
+
name: $state.current.name,
|
|
139
|
+
params: $state.params,
|
|
140
|
+
URL: $state.href($state.current.name, $state.params)
|
|
141
|
+
};
|
|
142
|
+
}]
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
for (var property in psd2State) {
|
|
147
|
+
if (psd2State.hasOwnProperty(property)) {
|
|
148
|
+
var stateData = psd2State[property];
|
|
149
|
+
$stateProvider.state(stateData.state, {
|
|
150
|
+
externalUrl: stateData.externalUrl,
|
|
151
|
+
params: stateData.params
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
}]);
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
angular.module('commons').service('maskService', ['hashService', 'maskUtilService', function(hashService, maskUtilService) {
|
|
4
|
+
|
|
5
|
+
// liczba masek (parametr)
|
|
6
|
+
var maskCount;
|
|
7
|
+
// tablica masek (MASK w postaci heksadecymalnej)
|
|
8
|
+
var masks = [];
|
|
9
|
+
// tablica zamaskowanych hasel (PASSMASKED' w
|
|
10
|
+
// postaci heksadecymalnej)
|
|
11
|
+
var passwords = [];
|
|
12
|
+
// tablica sum kwadratow indeksow niezamaskowanych
|
|
13
|
+
// pol dla kazdej maski
|
|
14
|
+
var powers = [];
|
|
15
|
+
// tablica dlugosci masek
|
|
16
|
+
var lengths = [];
|
|
17
|
+
// tablica skrotow SHA1(PASS+ALIAS) dla kazdego
|
|
18
|
+
// aliasu w postaci heksadecymalnej (modyfikacja
|
|
19
|
+
// hasla)
|
|
20
|
+
var sha1Passwords = [];
|
|
21
|
+
var maskChar = 5;
|
|
22
|
+
|
|
23
|
+
this.init = function(parameters) {
|
|
24
|
+
maskCount = parameters.maskCount;
|
|
25
|
+
maskChar = parameters.maskChar;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
this.getMasks = function(newPassword, aliases) {
|
|
29
|
+
lengths.length = 0;
|
|
30
|
+
powers.length = 0;
|
|
31
|
+
masks.length = 0;
|
|
32
|
+
passwords.length = 0;
|
|
33
|
+
sha1Passwords.length = 0;
|
|
34
|
+
|
|
35
|
+
// wygenerowanie masek
|
|
36
|
+
for (var i = 0; i < maskCount; i++) {
|
|
37
|
+
var mask = this.createRandomMask(newPassword);
|
|
38
|
+
masks[i] = maskUtilService.arrayOfBytes2HexString(mask);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// wygenerowanie PASSMASKED' i HASH(PASS+ALIAS)
|
|
42
|
+
// dla kazdego aliasu
|
|
43
|
+
for (i = 0; i < aliases.length; i++) {
|
|
44
|
+
sha1Passwords[i] = hashService.calculateSHA1(newPassword + aliases[i]);
|
|
45
|
+
|
|
46
|
+
for (var j = 0; j < maskCount; j++) {
|
|
47
|
+
passwords[passwords.length] = maskUtilService.createPassMaskedBis(aliases[i], newPassword, maskUtilService.hexString2ArrayOfBytes(masks[j]));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return {
|
|
52
|
+
p_masks: masks.join(','),
|
|
53
|
+
p_passwords: passwords.join(','),
|
|
54
|
+
p_sha1_passwords: sha1Passwords.join(',')
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
// Funkcja na podstawie przekazanej maski tworzy
|
|
59
|
+
// tablice indeksow, ktore moga
|
|
60
|
+
// byc jeszcze wylosowane. Funkcja uwzglednia
|
|
61
|
+
// trywialnosc maski.
|
|
62
|
+
// Dopuszczalna liczba sasiadujacych pol
|
|
63
|
+
// niezamskowanych wynosi 3.
|
|
64
|
+
// Array mask1 - maska
|
|
65
|
+
this.createPossibleValueList = function(mask1) {
|
|
66
|
+
var mask2 = [];
|
|
67
|
+
maskUtilService.copyArray(mask1, mask2);
|
|
68
|
+
|
|
69
|
+
for (var i = 0; i < mask1.length - 3; i++) {
|
|
70
|
+
// pole zamaskowane
|
|
71
|
+
if (mask1[i] !== 0xFF) {
|
|
72
|
+
// trzy kolejne pola sa jedynkami
|
|
73
|
+
if (mask1[i + 1] === 0xFF && mask1[i + 2] === 0xFF && mask1[i + 3] === 0xFF) {
|
|
74
|
+
mask2[i] = -1;
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
// pole niezamaskowane
|
|
78
|
+
if (mask1[i + 1] === 0xFF && mask1[i + 2] === 0xFF && mask1[i + 3] !== 0xFF) {
|
|
79
|
+
mask2[i + 3] = -1;
|
|
80
|
+
} else if (mask1[i + 2] === 0xFF && mask1[i + 3] === 0xFF && mask1[i + 1] !== 0xFF) {
|
|
81
|
+
mask2[i + 1] = -1;
|
|
82
|
+
} else if (mask1[i + 1] === 0xFF && mask1[i + 3] === 0xFF && mask1[i + 2] !== 0xFF) {
|
|
83
|
+
mask2[i + 2] = -1;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
var possVal = [];
|
|
89
|
+
for (i = 0; i < mask2.length; i++) {
|
|
90
|
+
if (mask2[i] !== 0xFF && mask2[i] !== -1) {
|
|
91
|
+
possVal[possVal.length] = i;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (possVal.length === 0) {
|
|
96
|
+
return -1;
|
|
97
|
+
} else {
|
|
98
|
+
return possVal;
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// Funkcja sprawdza czy maska jest unikalna
|
|
103
|
+
// Integer length1 - liczba niezamaskowanych pol
|
|
104
|
+
// Integer sum1 - suma kwadratow indeksow
|
|
105
|
+
// niezamaskowanych pol
|
|
106
|
+
this.isUniqueMask = function(length1, sum1) {
|
|
107
|
+
for (var i = 0; i < masks.length; i++) {
|
|
108
|
+
if (length1 === lengths[i] && sum1 === powers[i]) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
return true;
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// Funkcja zwraca losowa, dopuszczalna liczbe
|
|
117
|
+
// niezamaskowanym pol w masce
|
|
118
|
+
// Liczba ta jest z przedzialu <4, pass.length - 5>
|
|
119
|
+
// String pass1 - haslo
|
|
120
|
+
this.getMaskFieldsCount = function() {
|
|
121
|
+
return maskChar;
|
|
122
|
+
};
|
|
123
|
+
|
|
124
|
+
// Funkcja tworzy tablice (maske) o rozmiarze rownym
|
|
125
|
+
// dlugosci hasla i wypelnia ja
|
|
126
|
+
// losowymi bajtami roznymi od 0xFF
|
|
127
|
+
// Integer len - dlugosc hasla
|
|
128
|
+
this.createEmptyMask = function(len) {
|
|
129
|
+
var emptyMask = [];
|
|
130
|
+
for (var i = 0; i < len; i++) {
|
|
131
|
+
emptyMask.push(maskUtilService.rand(254));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return emptyMask;
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
// Funkcja generuje pseudolosowa, niepowtarzalna i
|
|
138
|
+
// nietrywialna maske o pseudolosowej dlugosci.
|
|
139
|
+
// Obcina maske za ostatnim niezamaskowanym polem.
|
|
140
|
+
// String pass1 - haslo
|
|
141
|
+
this.createRandomMask = function(pass1) {
|
|
142
|
+
// maska
|
|
143
|
+
var mask = [];
|
|
144
|
+
// suma kwadratow indeksow
|
|
145
|
+
var sum = 0;
|
|
146
|
+
// liczba niezamaskowanych pol
|
|
147
|
+
var maskFieldsCount = 0;
|
|
148
|
+
|
|
149
|
+
// wygenerowanie niepowtarzalnej i nietrywialnej
|
|
150
|
+
// maski
|
|
151
|
+
do {
|
|
152
|
+
// utworzenie maski wypelnionej losowymi
|
|
153
|
+
// bajtami roznymi od 0xFF
|
|
154
|
+
mask = this.createEmptyMask(pass1.length);
|
|
155
|
+
// wylosowanie dlugosci maski
|
|
156
|
+
maskFieldsCount = this.getMaskFieldsCount(pass1);
|
|
157
|
+
// ustawienie tej zmiennej oznacza, ze nie
|
|
158
|
+
// da sie wygenerowac maski
|
|
159
|
+
var impas = false;
|
|
160
|
+
// wyzerowanie sumy kwadratow
|
|
161
|
+
sum = 0;
|
|
162
|
+
|
|
163
|
+
var possibleValues = this.createPossibleValueList(mask);
|
|
164
|
+
|
|
165
|
+
for (var i = 0; i < maskFieldsCount; i++) {
|
|
166
|
+
var randValue = maskUtilService.randArrayValue(possibleValues);
|
|
167
|
+
mask[randValue] = 0xFF;
|
|
168
|
+
possibleValues = this.createPossibleValueList(mask);
|
|
169
|
+
if (possibleValues === -1) {
|
|
170
|
+
impas = true;
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
sum += maskUtilService.power(randValue);
|
|
174
|
+
}
|
|
175
|
+
if (impas) {
|
|
176
|
+
continue;
|
|
177
|
+
}
|
|
178
|
+
} while (!this.isUniqueMask(maskFieldsCount, sum));
|
|
179
|
+
|
|
180
|
+
// obciecie maski za ostatnim niezamaskowanym
|
|
181
|
+
// polem
|
|
182
|
+
while (mask[mask.length - 1] !== 0xFF) {
|
|
183
|
+
mask.length = mask.length - 1;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
// wstawienie dlugosci i sumy do tablic
|
|
187
|
+
// globalnych
|
|
188
|
+
lengths[lengths.length] = maskFieldsCount;
|
|
189
|
+
powers[powers.length] = sum;
|
|
190
|
+
|
|
191
|
+
return mask;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
}]);
|