Cisco ASA uses plus signs in their login URL (that is, /+webvpn+/index.html).
The am_integration.js script for RSA Authentication Manager 8.1 SP1 mistakenly interprets the + signs as spaces and then redirects to /%20webvpn%20/index.html or / webvpn index.html instead of /+webvpn+/index.html.
// add new input containing the original action URL var origActionURL = document.createElement('input'); origActionURL.setAttribute('type', 'hidden'); origActionURL.setAttribute('name', 'ORIG_ACTION_URL'); origActionURL.setAttribute('value', toAbsolutePath(logonForm.action)); logonForm.appendChild(origActionURL);
// add new input containing the original action URL var origActionURL = document.createElement('input'); origActionURL.setAttribute('type', 'hidden'); oorigActionURL.setAttribute('name', 'ORIG_ACTION_URL'); oorigActionURL.setAttribute('value', 'https://<Cisco_ASA>.<Domain>.com/%2Bwebvpn%2B/index.html'); logonForm.appendChild(origActionURL);
function toAbsolutePath(url) { if (url.search('://') != -1) { return url; } if (url.indexOf('/') == 0) { var loc = location.href + "/"; return loc.replace(/(.*?:\/\/[^\/]*?)\/.*/, '$1' + url); } return location.href.replace(/(.*\/).*/, '$1' + url); } Which you can look at in your browser too, <html> <head> <script> <!-- function getActionURL() { var protocol = 'https'; var shortHostname = '192'; var domainName = '168.60.99'; var port = 444; var path = '/ webvpn /index.html'; return protocol + '://' + shortHostname+ '.' + domainName+':'+port+ path; } function submitLogonForm() { document.getElementById('logon_form').action=getActionURL(); document.getElementById('logon_form').submit(); } //--> </script> </head> <body onLoad='submitLogonForm()'> <form name='logon_form' id='logon_form' method='post' action='https%3A%2F%2F149.63.60.99%3A444%2F+webvpn +%2Findex.html'> <input type='hidden' name='username' value='jguillette'/> <input type='hidden' name='next' value=''/> <input type='hidden' name='tgroup' value=''/> <input type='hidden' name='password' value='01jh7ka0f3x3ggaa'/> <input type='hidden' name='tgcookieset' value=''/> </form> </body> </html>