Hello,
We have an Angular 5 application deployed at a client's network at http://10.x.y.z/my-app running fine when accessed directly (using hash in Url). Now the client wants to allow access to this application from external users. They configured SSL VPN in Fortigate (Web Mode) and added a bookmark to this internal app. The traffic from external users reaches the app. Resources such as images, css etc. are retrieved correctly. It's when the application itself starts up the problems begin.
Below is the console output. I'm clueless as I have no experience with Fortigate and have no access to the client infrastructure. Is this a Fortigate configuration issue or should I be looking at the application code? Any pointers?
Console output:
sslvpn.js:formatted:646 [Deprecation] Synchronous XMLHttpRequest on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.
XMLHttpRequest.open @ sslvpn.js:formatted:646
(anonymous) @ polyfills.f49c53c5e5719087df48.bundle.js:formatted:2972
o.(anonymous function) @ polyfills.f49c53c5e5719087df48.bundle.js:formatted:1332
open_func @ sslvpn.js:formatted:502
(anonymous) @ main.1b6318b698ef209032cf.bundle.js:formatted:53868
...
window.webpackJsonp @ inline.f8b796da0c03c9b36b0b.bundle.js:formatted:25
(anonymous) @ main.1b6318b698ef209032cf.bundle.js:formatted:1
14:53:31.141 main.1b6318b698ef209032cf.bundle.js:formatted:54139 DOMException: Failed to set the 'responseType' property on 'XMLHttpRequest': The response type cannot be changed for synchronous requests made from a document.
at l._subscribe (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2224057)
at l._trySubscribe (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:146031)
at l.subscribe (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:145860)
at l.call (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2477489)
at l.subscribe (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:145798)
at l.call (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2476297)
at l.subscribe (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:145798)
at n.a (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2645998)
at n._innerSub (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2665193)
at n._tryNext (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:2665117)
14:53:31.156 main.1b6318b698ef209032cf.bundle.js:formatted:49196 ERROR DOMException: Failed to execute 'setAttribute' on 'Element': '' is not a valid attribute name.
at Object.set_attr (https://some-domain.com:10443/sslvpn/js/sslvpn.js:1:20146)
at l.setAttribute (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:405810)
at Object.set_attr (https://some-domain.com:10443/sslvpn/js/sslvpn.js:1:20329)
at l.setAttribute (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:332056)
at Object.set_attr (https://some-domain.com:10443/sslvpn/js/sslvpn.js:1:20329)
at pn (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:232325)
at me (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:248003)
at Se (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:255747)
at Me (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:254954)
at me (https://some-domain.com:10443/proxy/1d335b11/http/10.x.y.z/my-app/main.1b6318b698ef209032cf.bundle.js:1:248677)
14:53:31.159 main.1b6318b698ef209032cf.bundle.js:formatted:12375 ERROR Error: Uncaught (in promise): InvalidCharacterError: Failed to execute 'setAttribute' on 'Element': '' is not a valid attribute name.
Error: Failed to execute 'setAttribute' on 'Element': '' is not a valid attribute name.
at Object.set_attr (sslvpn.js:formatted:558)
at l.setAttribute (main.1b6318b698ef209032cf.bundle.js:formatted:18265)
at Object.set_attr (sslvpn.js:formatted:563)
at l.setAttribute (main.1b6318b698ef209032cf.bundle.js:formatted:15297)
at Object.set_attr (sslvpn.js:formatted:563)
at pn (main.1b6318b698ef209032cf.bundle.js:formatted:9892)
===============
in sslvpn.js:
===============
set_attr: function() {
var s, i, v;
if ("object" == typeof arguments[0]) {
if (3 == arguments.length)
s = this.is_url_attributes(arguments[1]) ? this.url_rewrite(arguments[2]) : arguments[2],
arguments[0].setAttribute(arguments[1], s); // <<< ERROR HERE
else
for (i = 2; i < arguments.length; i += 2)
v = i + 1 < arguments.length ? arguments[i + 1] : null,
s = this.is_url_attributes(arguments) ? this.url_rewrite(v) : v,
arguments[0].setAttribute(arguments[1], arguments, s);
return arguments[0]
}
"function" == typeof arguments[0] && 3 == arguments.length && (s = this.is_url_attributes(arguments[1]) ? this.url_rewrite(arguments[2]) : arguments[2],
arguments[0].setAttribute(arguments[1], s))
},
Nominating a forum post submits a request to create a new Knowledge Article based on the forum post topic. Please ensure your nomination includes a solution within the reply.
Hi Jblanco,
What is the version of FOS? 6.0, 5.6, or 5.4? As I saw a similar bug and it will be fixed in 5.6.5 and 6.0.1.
Thanks
The version is 5.4.6. The latest version out is 6.0.1? And do you think this bug with angularjs is fix in this latest version?
v6.0.1 is next coming version but not released yet. I found an existing bug with similar symptom and it will be fixed in 6.0.1. We are working to make sure if they share the same cause, if not, then probably will open another bug to track.
BTW what is the model/platform with 5.4.6? I am trying to reproduce in lab, so better with the same model. Thanks.
I try to give as much information as I can to reproduce the issues...
FortiGate 5.4.x I think that was the version, where I got the issues with Angular 1.3.18. The solution was my patch: https://github.com/d-trat.../forti_sslvpn_patch.js
FortiGate 5.6.2 This is the current version and I solved the issues in Angular 5.x (as seen in the previous posts). BUT, my patch for Angular 1.3.18 did not work anymore.
I then obfuscated the Angular 1.3.18 core file, what seems to work here too.
For A1 to reproduce, you would need a simple app with a route (using $location).
For A5 to reproduce, you would need an app with a server call, can be a fake server call (http-interceptor).
BR, Dan
Select Forum Responses to become Knowledge Articles!
Select the “Nominate to Knowledge Base” button to recommend a forum post to become a knowledge article.
User | Count |
---|---|
1733 | |
1106 | |
752 | |
447 | |
240 |
The Fortinet Security Fabric brings together the concepts of convergence and consolidation to provide comprehensive cybersecurity protection for all users, devices, and applications and across all network edges.
Copyright 2024 Fortinet, Inc. All Rights Reserved.