Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection works only with sessionID #38

Open
karlitos opened this issue Nov 11, 2021 · 9 comments
Open

Connection works only with sessionID #38

karlitos opened this issue Nov 11, 2021 · 9 comments

Comments

@karlitos
Copy link

Hello,

first - many thanks for this marvelous software allowing me to connect to company VPN on linux. It works well when I use the sessionID but fails with with username and password

2021/11/11 22:53:31 gof5 v0.1.4 compiled with go1.17.2 for linux/amd64
Enter server address: secure-gateway.tui.com
2021/11/11 22:53:38 Cannot read config file: open /home/karlitos/.gof5/config.yaml: no such file or directory
2021/11/11 22:53:38 Reusing saved HTTPS VPN session for secure-gateway.tui.com
Enter VPN username: my.username
Enter VPN password: 
2021/11/11 22:53:48 Logging in...
2021/11/11 22:53:48 wrong response code on profiles get: 404

When I open the URL in the browser and submit my credentials the browser tries to open something called Endpoint Inspector Application and after aborting this it shows

Browser is waiting for status from Endpoint Inspector Application.
Please confirm that this application is launched and is not waiting for your input. This application may be behind other windows on your desktop.

I can skip it by clicking on

Skip Endpoint inspection. Access may be denied or some resources may not be available depending on how your administrator has configured access.

and then get the right cookie and log in via gof5

Here is a debug output:
sudo ./gof5 -debug
2021/11/11 22:54:19 gof5 v0.1.4 compiled with go1.17.2 for linux/amd64
Enter server address: secure-gateway.tui.com
2021/11/11 22:54:22 Cannot read config file: open /home/karlitos/.gof5/config.yaml: no such file or directory
2021/11/11 22:54:22 Reusing saved HTTPS VPN session for secure-gateway.tui.com
2021/11/11 22:54:22 -> URL: GET https://secure-gateway.tui.com/vdesk/vpn/index.php3?outform=xml&client_version=2.0
2021/11/11 22:54:22 -> Headers:
2021/11/11 22:54:22 -> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8
2021/11/11 22:54:22 -> Cookie: MRHSession=8162bb486b0c3c66a4454c2a1d08fe53
2021/11/11 22:54:22 <- Code: 302
2021/11/11 22:54:22 <- Headers:
2021/11/11 22:54:22 <- Server: secure-gateway.tui.com
2021/11/11 22:54:22 <- Cache-Control: no-cache, no-store
2021/11/11 22:54:22 <- Content-Length: 0
2021/11/11 22:54:22 <- Location: /my.logout.php3?errorcode=20
2021/11/11 22:54:22 <- Set-Cookie: LastMRH_Session=1d08fe53;path=/;secure MRHSession=8162bb486b0c3c66a4454c2a1d08fe53;path=/;secure
2021/11/11 22:54:22 <- Connection: close
2021/11/11 22:54:22 <- Body: 
Enter VPN username: my.username
Enter VPN password: 
2021/11/11 22:54:40 Logging in...
2021/11/11 22:54:40 -> URL: GET https://secure-gateway.tui.com
2021/11/11 22:54:40 -> Headers:
2021/11/11 22:54:40 -> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8
2021/11/11 22:54:40 <- Code: 302
2021/11/11 22:54:40 <- Headers:
2021/11/11 22:54:40 <- Location: /my.policy
2021/11/11 22:54:40 <- Set-Cookie: LastMRH_Session=c3a9abc0;path=/;secure MRHSession=fdb4db9b2a1e5afa71de1004c3a9abc0;path=/;secure MRHSHint=deleted; expires=Thu, 01-Jan-1970 00:00:01 GMT; path=/;secure
2021/11/11 22:54:40 <- Connection: close
2021/11/11 22:54:40 <- Server: secure-gateway.tui.com
2021/11/11 22:54:40 <- Content-Length: 0
2021/11/11 22:54:40 <- Body: 
2021/11/11 22:54:40 -> URL: GET https://secure-gateway.tui.com/my.policy
2021/11/11 22:54:40 -> Headers:
2021/11/11 22:54:40 -> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8
2021/11/11 22:54:40 -> Referer: https://secure-gateway.tui.com
2021/11/11 22:54:40 -> Cookie: LastMRH_Session=c3a9abc0; MRHSession=fdb4db9b2a1e5afa71de1004c3a9abc0
2021/11/11 22:54:40 <- Code: 200
2021/11/11 22:54:40 <- Headers:
2021/11/11 22:54:40 <- Server: secure-gateway.tui.com
2021/11/11 22:54:40 <- Content-Type: text/html; charset=utf-8
2021/11/11 22:54:40 <- Date: Thu, 11 Nov 2021 21:54:41 GMT
2021/11/11 22:54:40 <- Age: 35483
2021/11/11 22:54:40 <- X-Frame-Options: DENY
2021/11/11 22:54:40 <- Set-Cookie: LastMRH_Session=c3a9abc0;path=/;secure MRHSession=b59386c2a42cdc8415b4a236c3a9abc0;path=/;secure
2021/11/11 22:54:40 <- Accept-Ranges: bytes
2021/11/11 22:54:40 <- Content-Length: 28030
2021/11/11 22:54:40 <- Pragma: no-cache
2021/11/11 22:54:40 <- Cache-Control: no-cache, must-revalidate
2021/11/11 22:54:40 <- Body: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2021/11/11 22:54:40 <- <html>
2021/11/11 22:54:40 <- <head>
2021/11/11 22:54:40 <- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
2021/11/11 22:54:40 <- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
2021/11/11 22:54:40 <- <meta http-equiv="pragma" content="no-cache">
2021/11/11 22:54:40 <- <meta http-equiv="cache-control" content="no-cache">
2021/11/11 22:54:40 <- <title>secure-gateway.tui.com</title>
2021/11/11 22:54:40 <- <link rel="stylesheet" type="text/css" HREF="/public/include/css/apm.css">
2021/11/11 22:54:40 <- <script language="JavaScript" src="/public/include/js/session_check.js?v=13" ></script>
2021/11/11 22:54:40 <- <script language="JavaScript" src="/public/include/js/agent_common.js" ></script>
2021/11/11 22:54:40 <- <script language="JavaScript" src="/public/include/js/web_host.js" ></script>
2021/11/11 22:54:40 <- <script language="javascript">
2021/11/11 22:54:40 <- <!--
2021/11/11 22:54:40 <- if(!String.prototype.trim){ String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- /////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:40 <- // function to return the customized screen when session expiration
2021/11/11 22:54:40 <- // is detected on the client-side
2021/11/11 22:54:40 <- /////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:40 <- function SessionExpired_CustomizedScreenGet()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-   return '<br><h3>Session Expired/Timeout</h3><br>Due to user inactivity, your session expired. Click the following link to start a new session.<br><br><table id="IHoptions"><tr><td><a href="[SESSION_RESTART_URL]" class="option"><img src="/public/images/sq-positive.gif" ></a><a href="[SESSION_RESTART_URL]">Start a new session</a></td></tr></table>';
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- var globalRestartOnSubmit = false;
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function sessionTimedOut()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     // restart session automatically upon "submit" for edge-like clients if logon form is compatibile
2021/11/11 22:54:40 <-     if (externalWebHost.hasWebLogonResetSession() && logonFormCompatible) {
2021/11/11 22:54:40 <-        globalRestartOnSubmit = true;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     else {
2021/11/11 22:54:40 <-        // display session expired msg for non-edge clients
2021/11/11 22:54:40 <-        if (externalWebHost.hasWebLogonResetSession()) {
2021/11/11 22:54:40 <- 		externalWebHost.webLogonResetSession();
2021/11/11 22:54:40 <-        }
2021/11/11 22:54:40 <-        sessionTimeout.showSplashLayer("MessageDIV", SessionExpired_CustomizedScreenGet());
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- /**
2021/11/11 22:54:40 <-  * Place the focus and init the form fields
2021/11/11 22:54:40 <-  */
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- if(self != top) { top.location = self.location; }
2021/11/11 22:54:40 <- window.onerror=function(){ return function(){ return; } }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- //--------------------------------------------------------------------
2021/11/11 22:54:40 <- var doAutoSubmit = true;
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- var globalFormId = 'auth_form';
2021/11/11 22:54:40 <- var globalTableId = 'credentials_table';
2021/11/11 22:54:40 <- var globalSubmitTrId = 'submit_row';
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- var globalSavePasswordCheckbox = null;
2021/11/11 22:54:40 <- var logonFormCompatible = false;
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- var softTokenInput = null;
2021/11/11 22:54:40 <- var softTokenFieldId = "";
2021/11/11 22:54:40 <- var softTokenState = "";
2021/11/11 22:54:40 <- var softTokenNewPIN = "";
2021/11/11 22:54:40 <- var softTokenPINAutoPopulate = false;
2021/11/11 22:54:40 <- if( !softTokenState ) {
2021/11/11 22:54:40 <-     softTokenState = "SECURID_AUTH_STATE_START";}
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var challengeMode = false;
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function getInputField(fieldId)
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return null;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     if(fieldId == null || fieldId == ""){
2021/11/11 22:54:40 <-         return null;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var inputs = form.getElementsByTagName("input");
2021/11/11 22:54:40 <-     for( var i=0; i<inputs.length; i++ ){
2021/11/11 22:54:40 <-         if(  inputs[i].name == fieldId){
2021/11/11 22:54:40 <-             return inputs[i];
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     return null;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function getSoftTokenInput()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     return getInputField(softTokenFieldId);
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function getUsernameInput()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     return getInputField("username");
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function getPasswordInput()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     return getInputField("password");
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function edgeClientSoftTokenSupport()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     try {
2021/11/11 22:54:40 <-         return externalWebHost.hasWebLogonSoftTokenSupport();
2021/11/11 22:54:40 <-     } catch(e) {}
2021/11/11 22:54:40 <-     return false;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function getSoftTokenPrompt()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     if ( softTokenFieldId != "" && edgeClientSoftTokenSupport()) {
2021/11/11 22:54:40 <-         var div = document.getElementById("formHeaderSoftToken");
2021/11/11 22:54:40 <-         if (div)  {
2021/11/11 22:54:40 <-             return div.innerHTML;
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     return  null;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function setSoftTokenChallengeResponse(challengeResponse)
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var challengeElements = document.getElementsByName('_F5_challenge');
2021/11/11 22:54:40 <-     if((challengeElements.length == 0) || (null == challengeElements[0])) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var challengeElement = challengeElements[0];
2021/11/11 22:54:40 <-     if(challengeElement.tagName.toLowerCase() == 'select') {
2021/11/11 22:54:40 <-         var challengeOptions = challengeElement.options;
2021/11/11 22:54:40 <-         if(null == challengeOptions){
2021/11/11 22:54:40 <-             return;
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-         for (var i = 0, optionsLength = challengeOptions.length; i < optionsLength; i++) {
2021/11/11 22:54:40 <-             if (challengeOptions[i].value == challengeResponse) {
2021/11/11 22:54:40 <-                 challengeElement.selectedIndex = i;
2021/11/11 22:54:40 <-                 break;
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }else if(challengeElement.tagName.toLowerCase() == 'input') {
2021/11/11 22:54:40 <-         challengeElement.value = challengeResponse;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function OnSubmitEdgeRSASoftToken()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var support = edgeClientSoftTokenSupport();
2021/11/11 22:54:40 <-     if( true != support ) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     var inputs = form.getElementsByTagName("input");
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var hiddenInput = document.createElement("input");
2021/11/11 22:54:40 <-     hiddenInput.setAttribute("type", "hidden");
2021/11/11 22:54:40 <-         hiddenInput.setAttribute("name", "softTokenError");
2021/11/11 22:54:40 <-     //append to form element that you want .
2021/11/11 22:54:40 <-     form.appendChild(hiddenInput);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     try{
2021/11/11 22:54:40 <-         if(softTokenInput != null) { //normal mode
2021/11/11 22:54:40 <-             // if the client cannot request soft-token PIN,
2021/11/11 22:54:40 <-             // ask user to enter it in the logon page and pass the value to the client
2021/11/11 22:54:40 <-             // Otherwise, the client already has the PIN
2021/11/11 22:54:40 <-             if(!softTokenPINAutoPopulate) {
2021/11/11 22:54:40 <-                 externalWebHost.setWebLogonSoftTokenPIN(softTokenInput.value);
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-             var passcode = externalWebHost.getWebLogonSoftTokenPasscode();
2021/11/11 22:54:40 <-             if( passcode ) {
2021/11/11 22:54:40 <-                 softTokenInput.value = passcode;
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         } else if( challengeMode ) { //challenge mode
2021/11/11 22:54:40 <-             // If the client can provide response to the challenge, use it instead of user input
2021/11/11 22:54:40 <-             if(externalWebHost.hasWeblogonSoftTokenChallengeResponse()){
2021/11/11 22:54:40 <-                 var challengeResponse = externalWebHost.getWeblogonSoftTokenChallengeResponse();
2021/11/11 22:54:40 <-                 if(null != challengeResponse){
2021/11/11 22:54:40 <-                      setSoftTokenChallengeResponse(challengeResponse);
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }else{
2021/11/11 22:54:40 <-                 // Request user input by default
2021/11/11 22:54:40 <-                 externalWebHost.setWebLogonSoftTokenPIN(inputs[0].value);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-                 var passcode = externalWebHost.getWebLogonSoftTokenPasscode();
2021/11/11 22:54:40 <-                 if( passcode ) {
2021/11/11 22:54:40 <-                     inputs[0].value = passcode;
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-         hiddenInput.value = externalWebHost.getWebLogonSoftTokenError();
2021/11/11 22:54:40 <-     } catch(e) { }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     return;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- // check whether logon form is compatible with the client for auto-population and auto-submission
2021/11/11 22:54:40 <- // only "username", "password" and soft token field (the name is stored in softTokenFieldId ) are supported
2021/11/11 22:54:40 <- // fields can be configured in either order, but can only be text, password or checkbox types
2021/11/11 22:54:40 <- // form is not considered compatible if it contains any additional fields not supported by the client
2021/11/11 22:54:40 <- // The form is compatible even if it contains a subset of the supported fields
2021/11/11 22:54:40 <- // In this case the client will auto-populate only those fields
2021/11/11 22:54:40 <- function getFormCompatibility()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return false;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     // check if form suites
2021/11/11 22:54:40 <-     var inputs = [];
2021/11/11 22:54:40 <-     var inputsTemp = form.getElementsByTagName("input");
2021/11/11 22:54:40 <-     // filter submit, reset, hidden and little green men
2021/11/11 22:54:40 <-     for( var i=0; i<inputsTemp.length; i++ ){
2021/11/11 22:54:40 <-         if( inputsTemp[i].type == "text" || inputsTemp[i].type == "password"){
2021/11/11 22:54:40 <-             inputs[ inputs.length ] = inputsTemp[i];
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var softTokenSupported = edgeClientSoftTokenSupport() && (null != softTokenInput);
2021/11/11 22:54:40 <-     // Check if there are any custom fields that are not supported by Edge Client for auto-population and auto-submission
2021/11/11 22:54:40 <-     for( var i=0; i<inputs.length; i++ ){
2021/11/11 22:54:40 <-        if((inputs[i].type == "text" && inputs[i].name == "username") ||
2021/11/11 22:54:40 <-           (inputs[i].type == "password" && inputs[i].name == "password") ||
2021/11/11 22:54:40 <-           (softTokenSupported && inputs[i].type == "password" && inputs[i].name == softTokenInput.name)){
2021/11/11 22:54:40 <-                continue;
2021/11/11 22:54:40 <-        }else {
2021/11/11 22:54:40 <-           return false;
2021/11/11 22:54:40 <-        }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     return true;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function setOrigUriLink()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var params = parseQueryParams(window.location.search.substr(1));
2021/11/11 22:54:40 <-     if (!params.hasOwnProperty('ORIG_URI')) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     if (params['ORIG_URI'].length != 8) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var re = /[0-9a-fA-F]{8}/;
2021/11/11 22:54:40 <-     if (!re.test(params['ORIG_URI'])) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var credTable = document.getElementById('credentials_table');
2021/11/11 22:54:40 <-     if (credTable == null) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     var tBody = credTable.tBodies[0];
2021/11/11 22:54:40 <-     if (tBody == null) {
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var trTag = document.createElement("TR");
2021/11/11 22:54:40 <-     tBody.insertBefore(trTag, tBody.children[tBody.children.length - 1]);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var tdTag = document.createElement("TD");
2021/11/11 22:54:40 <-     tdTag.setAttribute("class", "credentials_table_unified_cell");
2021/11/11 22:54:40 <-     tdTag.setAttribute("colspan", "2");
2021/11/11 22:54:40 <-     trTag.appendChild(tdTag);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var tdText = document.createElement("A");
2021/11/11 22:54:40 <-     tdText.innerHTML = "Click here if already logged in ";
2021/11/11 22:54:40 <-     tdText.setAttribute("href", "/vdesk/policy_done.php3?ORIG_URI=" + params['ORIG_URI']);
2021/11/11 22:54:40 <-     tdTag.appendChild(tdText);
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function OnLoad()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var header = document.getElementById("credentials_table_header");
2021/11/11 22:54:40 <-     var softTokenHeaderStr = getSoftTokenPrompt();
2021/11/11 22:54:40 <-     if ( softTokenHeaderStr ) {
2021/11/11 22:54:40 <-         header.innerHTML = softTokenHeaderStr;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     setFormAttributeByQueryParams("auth_form", "action", "/subsession_logon_submit.php3");
2021/11/11 22:54:40 <-     setFormAttributeByQueryParams("v2_original_url", "href", "/subsession_logon_submit.php3");
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     // check if form suites
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     // check if form suites
2021/11/11 22:54:40 <-     var inputs = form.getElementsByTagName("input");
2021/11/11 22:54:40 <-     // filter submit, reset, hidden and little green men
2021/11/11 22:54:40 <-     for( var i=0; i<inputs.length; i++ ){
2021/11/11 22:54:40 <-         if( ( inputs[i].type == "text" || inputs[i].type == "password" ) && inputs[i].value == "" ){
2021/11/11 22:54:40 <-             inputs[i].focus();
2021/11/11 22:54:40 <-             if (inputs[i].type == "password") {
2021/11/11 22:54:40 <-                 window.setTimeout( function(elem){ return function(){ elem.blur(); elem.focus(); } }(inputs[i]) , 266 );
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-             return;
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function disableSubmit(form)
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     // disable!
2021/11/11 22:54:40 <-     var inputs = form.getElementsByTagName( "input" );
2021/11/11 22:54:40 <-     for( var i=0; i<inputs.length; i++ ){
2021/11/11 22:54:40 <-         if( inputs[i].type == "submit" || inputs[i].type == "reset" ){
2021/11/11 22:54:40 <-             inputs[i].disabled = true;
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     return true;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- //This function is called from Edge Client. Update setWeblogonCallbacks call if renamed
2021/11/11 22:54:40 <- function challengeAutoSubmit()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     if(!challengeMode) {
2021/11/11 22:54:40 <-        return false;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-        return false;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     disableSubmit(form);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     form.onsubmit();
2021/11/11 22:54:40 <-     form.submit();
2021/11/11 22:54:40 <-     return true;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- //This function is called from Edge Client. Update setWeblogonCallbacks call if renamed
2021/11/11 22:54:40 <- function weblogonAutoSubmit()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-       if(!logonFormCompatible){
2021/11/11 22:54:40 <-           return false;
2021/11/11 22:54:40 <-       }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-       var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-       if( form == null ){
2021/11/11 22:54:40 <-           return false;
2021/11/11 22:54:40 <-       }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-       // autosubmit check
2021/11/11 22:54:40 <-       if(externalWebHost.hasWebLogonAutoLogon() && externalWebHost.getWebLogonAutoLogon() && doAutoSubmit){
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-          disableSubmit(form);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-          form.onsubmit();
2021/11/11 22:54:40 <-          form.submit();
2021/11/11 22:54:40 <-          return true;
2021/11/11 22:54:40 <-       }else{
2021/11/11 22:54:40 <-         return false;
2021/11/11 22:54:40 <-       }
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- // support for autologon from Client API
2021/11/11 22:54:40 <- function checkExternalAddCheckbox()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var checkbox_txt = 'Save Password';
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     if( !logonFormCompatible ){
2021/11/11 22:54:40 <-         try {
2021/11/11 22:54:40 <-             if (externalWebHost.hasWebLogonNotifyUser()){
2021/11/11 22:54:40 <-                 externalWebHost.WebLogonNotifyUser();
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         } catch(e){};
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     // find form
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     // find table
2021/11/11 22:54:40 <-     var table = document.getElementById( globalTableId );
2021/11/11 22:54:40 <-     if( table == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     // find tr
2021/11/11 22:54:40 <-     var submitTr = document.getElementById( globalSubmitTrId );
2021/11/11 22:54:40 <-     if( submitTr == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     try {
2021/11/11 22:54:40 <-         if(externalWebHost.isAvailable()){
2021/11/11 22:54:40 <-             // push values
2021/11/11 22:54:40 <-             var usernameInput = getUsernameInput();
2021/11/11 22:54:40 <-             if( null != usernameInput && externalWebHost.hasWebLogonUserName() && usernameInput.value == ""){
2021/11/11 22:54:40 <-                 usernameInput.value = externalWebHost.getWebLogonUserName();
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-             var passwordInput = getPasswordInput();
2021/11/11 22:54:40 <-                         var allowSavingPassword = ((null != passwordInput) && (passwordInput.name != softTokenFieldId));
2021/11/11 22:54:40 <-             //don't populate RSA SecurID token field with the cached password
2021/11/11 22:54:40 <-             if(allowSavingPassword) {
2021/11/11 22:54:40 <-                 if( externalWebHost.hasWebLogonPassword() && (passwordInput.value == "")){
2021/11/11 22:54:40 <-                      passwordInput.value =  externalWebHost.getWebLogonPassword();
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }else{
2021/11/11 22:54:40 <-                 doAutoSubmit = false;
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-             // push data to cells
2021/11/11 22:54:40 <-             if(allowSavingPassword && externalWebHost.isWebLogonSavePasswordAvailable()){
2021/11/11 22:54:40 <-                 // right - text
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-                 // create cells
2021/11/11 22:54:40 <-                 var newTr = table.insertRow( submitTr.rowIndex );
2021/11/11 22:54:40 <-                 var leftTd = newTr.insertCell( 0 );
2021/11/11 22:54:40 <-                 var rightTd = newTr.insertCell( 1 );
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-                 leftTd.className = "credentials_table_label_cell";
2021/11/11 22:54:40 <-                 rightTd.className = "credentials_table_field_cell credentials_table_field_checkbox_fix";
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-                 rightTd.innerHTML = checkbox_txt;
2021/11/11 22:54:40 <-                 // left - checkbox
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox = document.createElement("input");
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox.type = "checkbox";
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox.className = "credentials_input_checkbox";
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox.value = 1;
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox = leftTd.appendChild( globalSavePasswordCheckbox );
2021/11/11 22:54:40 <-                 globalSavePasswordCheckbox.checked = externalWebHost.getWebLogonSavePasswordChecked();
2021/11/11 22:54:40 <-                 if( globalSavePasswordCheckbox.autocomplete ) {
2021/11/11 22:54:40 <-                     globalSavePasswordCheckbox.autocomplete = "off";
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-             // autosubmit if possible
2021/11/11 22:54:40 <-             if(weblogonAutoSubmit()){
2021/11/11 22:54:40 <-                return;
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     } catch (e) { }
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function OnSubmit()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     // find form
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     try{
2021/11/11 22:54:40 <-       if( externalWebHost.isAvailable() ){
2021/11/11 22:54:40 <-          // pass weblogon credentials back to the client
2021/11/11 22:54:40 <-          if( logonFormCompatible ){
2021/11/11 22:54:40 <-               var usernameInput = getUsernameInput();
2021/11/11 22:54:40 <-               if( null != usernameInput && externalWebHost.hasWebLogonUserName() ){
2021/11/11 22:54:40 <-                   externalWebHost.setWebLogonUserName(usernameInput.value);
2021/11/11 22:54:40 <-               }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-               var passwordInput = getPasswordInput();
2021/11/11 22:54:40 <-               if( null != passwordInput && externalWebHost.hasWebLogonPassword() ){
2021/11/11 22:54:40 <-                   externalWebHost.setWebLogonPassword(passwordInput.value);
2021/11/11 22:54:40 <-               }
2021/11/11 22:54:40 <-               // pass user decision to save the password back to the client
2021/11/11 22:54:40 <-               if( externalWebHost.hasWebLogonSavePasswordChecked() ){
2021/11/11 22:54:40 <-                   externalWebHost.setWebLogonSavePasswordChecked((null != globalSavePasswordCheckbox) && globalSavePasswordCheckbox.checked);
2021/11/11 22:54:40 <-               }
2021/11/11 22:54:40 <-           }
2021/11/11 22:54:40 <-           if (softTokenFieldId != "") {
2021/11/11 22:54:40 <-               OnSubmitEdgeRSASoftToken();
2021/11/11 22:54:40 <-           }
2021/11/11 22:54:40 <-       }
2021/11/11 22:54:40 <-     } catch(e) { }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     return;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function verifyNewPassword()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     var form = document.getElementById( globalFormId );
2021/11/11 22:54:40 <-     if( form == null ){
2021/11/11 22:54:40 <-         return true;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     var inputs = form.getElementsByTagName("input");
2021/11/11 22:54:40 <-     if( inputs.length >= 2 && inputs[0].name == "_F5_challenge" && inputs[0].type == "password" && inputs[1].name == "_F5_verify_password" && inputs[1].type == "password" ){
2021/11/11 22:54:40 <-         if( inputs[0].value != inputs[1].value ){
2021/11/11 22:54:40 <-             alert("Password and confirmation do not match.");
2021/11/11 22:54:40 <-             inputs[0].focus();
2021/11/11 22:54:40 <-             return false;
2021/11/11 22:54:40 <-         } else {
2021/11/11 22:54:40 <-             // Not sending the second field.
2021/11/11 22:54:40 <-             inputs[1].disabled = true;
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-             try{
2021/11/11 22:54:40 <-                   if( externalWebHost.hasWebLogonPassword() ){
2021/11/11 22:54:40 <-                       externalWebHost.setWebLogonPassword(inputs[0].value);
2021/11/11 22:54:40 <-                   }
2021/11/11 22:54:40 <-             } catch(e) { }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <-     return true;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function masterSubmit(form)
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-     if( !verifyNewPassword() /* || ... */){
2021/11/11 22:54:40 <-         return false;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     OnSubmit(); // this required by edge
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     if (globalRestartOnSubmit) {
2021/11/11 22:54:40 <-         try {
2021/11/11 22:54:40 <-             var usernameInput = getUsernameInput();
2021/11/11 22:54:40 <-             var passwordInput = getPasswordInput();
2021/11/11 22:54:40 <-             externalWebHost.setWebLogonAutoLogon((usernameInput != null ) && ("" != usernameInput.value) && (null != passwordInput) && ("" != passwordInput.value));
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-         catch (e) {}
2021/11/11 22:54:40 <-         // restart session
2021/11/11 22:54:40 <-         externalWebHost.webLogonResetSession();
2021/11/11 22:54:40 <-         return false;
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     disableSubmit(form);
2021/11/11 22:54:40 <-     return true;
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- //-->
2021/11/11 22:54:40 <- </script>
2021/11/11 22:54:40 <- </head>
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- <body onload="OnLoad()">
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
2021/11/11 22:54:40 <- <meta name="viewport" id="viewport" content="initial-scale=1.0" />
2021/11/11 22:54:40 <- <meta name="robots" context="noindex,nofollow">
2021/11/11 22:54:40 <- <script language="javascript">
2021/11/11 22:54:40 <- //orientation toolbox
2021/11/11 22:54:40 <- function setViewport(){
2021/11/11 22:54:40 <-     document.getElementById("viewport").setAttribute('content', Math.abs(window.orientation) == 90 ? 'width=device-height, initial-scale=1' : 'width=device-width, initial-scale=1.0' );
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- setViewport();
2021/11/11 22:54:40 <- window.onorientationchange = function() {
2021/11/11 22:54:40 <-     setViewport();
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- </script>
2021/11/11 22:54:40 <- <table id="page_header">
2021/11/11 22:54:40 <-   <tr >
2021/11/11 22:54:40 <-     <td id="header_leftcell"><img src='/public/images/customization/Common/secure-gateway.tui.com-apm_general_ui/logo_image_en.png'/></td>
2021/11/11 22:54:40 <-     <td id="header_rightcell"></td>
2021/11/11 22:54:40 <-   </tr>
2021/11/11 22:54:40 <-   <tr>
2021/11/11 22:54:40 <-      <td></td>
2021/11/11 22:54:40 <-      <td id="maxTimeoutTd"><span id="maxTimeoutTag" title=""></span></td>
2021/11/11 22:54:40 <-   </tr>
2021/11/11 22:54:40 <- </table>
2021/11/11 22:54:40 <- <noscript>
2021/11/11 22:54:40 <- <div id="noscript_warning_red">JavaScript is not enabled. Please enable JavaScript in your browser or contact your system administrator for assistance.</div>
2021/11/11 22:54:40 <- <div id="noscript_warning_newsession">To open a new session, please  <A href="/">click here.</A></div>
2021/11/11 22:54:40 <- </noscript>
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- <table id="main_table" class="logon_page">
2021/11/11 22:54:40 <- <tr>
2021/11/11 22:54:40 <-         <td id="main_table_info_cell">
2021/11/11 22:54:40 <-     <form id="auth_form" name="e1" method="post" onsubmit="javascript: return masterSubmit(this);" autocomplete="off">
2021/11/11 22:54:40 <-     <table id="credentials_table">
2021/11/11 22:54:40 <-     <tr>
2021/11/11 22:54:40 <-         <td colspan=2 id="credentials_table_header" >TUI Group<br>Secure Remote Access</td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     <tr>
2021/11/11 22:54:40 <-         <td colspan=2 id="credentials_table_postheader" ></td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     <tr>
2021/11/11 22:54:40 <-         <td colspan=2 class="credentials_table_unified_cell" ><label for='input_1' id='label_input_1'>Username</label><input type='text' name='username' class='credentials_input_text' value='' id='input_1' autocomplete='off' autocapitalize='off' /></td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     <tr>
2021/11/11 22:54:40 <-         <td colspan=2 class="credentials_table_unified_cell" ><label for='input_2' id='label_input_2'>Password</label><input type='password' name='password' class='credentials_input_password' value='' id='input_2' autocomplete='off' autocapitalize='off' /></td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     <tr id="submit_row">
2021/11/11 22:54:40 <-         <td class="credentials_table_unified_cell"><input type=submit class="credentials_input_submit" value="Logon"></td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     <tr>
2021/11/11 22:54:40 <-         <td colspan=2 id="credentials_table_footer" ></td>
2021/11/11 22:54:40 <-     </tr>
2021/11/11 22:54:40 <-     </table>
2021/11/11 22:54:40 <-     <input type=hidden name="vhost" value="standard">
2021/11/11 22:54:40 <-     </form>
2021/11/11 22:54:40 <-     <script language="javascript"><!--//
2021/11/11 22:54:40 <-         softTokenInput = getSoftTokenInput();
2021/11/11 22:54:40 <-         logonFormCompatible = getFormCompatibility();
2021/11/11 22:54:40 <-         // Pass method names to the client for auto-submit triggered by the client
2021/11/11 22:54:40 <-         externalWebHost.setWeblogonCallbacks(
2021/11/11 22:54:40 <-              "weblogonAutoSubmit();",
2021/11/11 22:54:40 <-              "challengeAutoSubmit();"
2021/11/11 22:54:40 <-         );
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         // Check if the softTokenInput exists or in case of RSA challenge mode
2021/11/11 22:54:40 <-         if((softTokenFieldId != "") && (null != softTokenInput || challengeMode ) && edgeClientSoftTokenSupport()){
2021/11/11 22:54:40 <-             externalWebHost.setWebLogonSoftTokenPrompt(getSoftTokenPrompt());
2021/11/11 22:54:40 <-             externalWebHost.setWebLogonSoftTokenState(softTokenState);
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         // Check if the client can ask user for soft-token PIN
2021/11/11 22:54:40 <-         if((softTokenFieldId != "") && (softTokenInput != null)
2021/11/11 22:54:40 <-                && edgeClientSoftTokenSupport()
2021/11/11 22:54:40 <-                && externalWebHost.canRequestWeblogonSoftTokenPIN()){
2021/11/11 22:54:40 <-             softTokenInput.readOnly = true;
2021/11/11 22:54:40 <-             softTokenPINAutoPopulate = true;
2021/11/11 22:54:40 <-             // No need to request input of RSA PIN, as the client can show PIN input UI if needed,
2021/11/11 22:54:40 <-             // make the field read-only
2021/11/11 22:54:40 <-             // set bogus value to display
2021/11/11 22:54:40 <-             softTokenInput.value = "********";
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         checkExternalAddCheckbox();
2021/11/11 22:54:40 <-         setTimeout(function(){ window.sessionTimeout = new APMSessionTimeout(sessionTimedOut); }, 200);
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- 	function dontChangePasswordClick(){
2021/11/11 22:54:40 <-             var checkbox = document.getElementById("dont_change_password_checkbox");
2021/11/11 22:54:40 <-             var password = document.getElementById("input_1");
2021/11/11 22:54:40 <-             var verify = document.getElementById("input_2");
2021/11/11 22:54:40 <-             if( checkbox.checked ){
2021/11/11 22:54:40 <-                 password.value = "";
2021/11/11 22:54:40 <-                 password.disabled = true;
2021/11/11 22:54:40 <-                 verify.value = "";
2021/11/11 22:54:40 <-                 verify.disabled = true;
2021/11/11 22:54:40 <-             }else{
2021/11/11 22:54:40 <-                 password.disabled = false;
2021/11/11 22:54:40 <-                 verify.disabled = false;
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         var finitvalues=['','','','',''];
2021/11/11 22:54:40 <-         var sessionLogonCustomizations = ["","","","",""];
2021/11/11 22:54:40 <-         var sessionLogonCustomizationPairs = [[], [], [], [], []];
2021/11/11 22:54:40 <-         for( var i=0; i<sessionLogonCustomizations.length; i++ ){
2021/11/11 22:54:40 <-             var pairs = ( sessionLogonCustomizations[i].indexOf(";") == -1 ? [ sessionLogonCustomizations[i] ] : sessionLogonCustomizations[i].trim().split(";") );
2021/11/11 22:54:40 <-             for( var j=0; j<pairs.length; j++ ){
2021/11/11 22:54:40 <-                 if( pairs[j].indexOf("=>") != -1 ){
2021/11/11 22:54:40 <-                     var pair = pairs[j].split("=>");
2021/11/11 22:54:40 <-                     sessionLogonCustomizationPairs[i][pair[0]] = pair[1];
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         var sessionLogonValuesets = [ "", "", "", "", "" ];
2021/11/11 22:54:40 <-         for( var i=0; i<sessionLogonValuesets.length; i++ ){
2021/11/11 22:54:40 <-             var inpx = document.getElementById("input_" + (i+1) );
2021/11/11 22:54:40 <-             if( inpx !== null && inpx.tagName.toUpperCase() == "SELECT" ){
2021/11/11 22:54:40 <-                 if( sessionLogonValuesets[i].trim() != "" ){
2021/11/11 22:54:40 <-                     inpx.options.length = 0;
2021/11/11 22:54:40 <-                     var options = sessionLogonValuesets[i].trim().split(";");
2021/11/11 22:54:40 <-                     for( var j=0; j<options.length; j++ ){
2021/11/11 22:54:40 <-                         inpx.options.add( new Option( options[j], options[j] ) );
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-                 if( sessionLogonCustomizations[i].trim() != "" ){
2021/11/11 22:54:40 <-                     for( var j=0; j<inpx.options.length; j++ ){
2021/11/11 22:54:40 <-                         if( typeof sessionLogonCustomizationPairs[i][ inpx.options[j].value ] != "undefined" ){
2021/11/11 22:54:40 <-                             inpx.options[j].text = sessionLogonCustomizationPairs[i][ inpx.options[j].value ];
2021/11/11 22:54:40 <-                         }
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-                 // set value
2021/11/11 22:54:40 <-                 for( var j=0; j<inpx.options.length; j++ ){
2021/11/11 22:54:40 <-                     if( inpx.options[j].value == finitvalues[i] ){
2021/11/11 22:54:40 <-                         inpx.value = finitvalues[i];
2021/11/11 22:54:40 <-                         break;
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }else if( document.getElementById("input_" + (i+1) + "_0" ) ){ // RADIO
2021/11/11 22:54:40 <-                 var initValue = finitvalues[i];
2021/11/11 22:54:40 <-                 var radio = null;
2021/11/11 22:54:40 <-                 var name = document.getElementById("input_" + (i+1) + "_0" ).name;
2021/11/11 22:54:40 <-                 if( sessionLogonValuesets[i].trim() != "" ){
2021/11/11 22:54:40 <-                     var parent = document.getElementById( "label_input_" + (i+1) ).parentNode;
2021/11/11 22:54:40 <-                     while( parent.childNodes.length > 1 ){
2021/11/11 22:54:40 <-                         parent.removeChild( parent.lastChild );
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                     var options = sessionLogonValuesets[i].trim().split(";");
2021/11/11 22:54:40 <-                     for( var j=0; j<options.length; j++ ){
2021/11/11 22:54:40 <-                         var div = parent.appendChild( document.createElement( "div" ) );
2021/11/11 22:54:40 <-                         var elmdef = document.all && navigator.userAgent.match(/MSIE (\d+)/)[1] < 9 ? "<input type='radio'>" : "input";
2021/11/11 22:54:40 <-                         var input = div.appendChild( document.createElement( elmdef ) );
2021/11/11 22:54:40 <-                         if( input.type != 'radio' ){ input.type = 'radio'; }
2021/11/11 22:54:40 <-                         input.id = "input_" + (i+1) + "_" + j;
2021/11/11 22:54:40 <-                         input.name = "name";
2021/11/11 22:54:40 <-                         input.value = options[j];
2021/11/11 22:54:40 <-                         var label = div.appendChild( document.createElement( "label" ) );
2021/11/11 22:54:40 <-                         label.htmlFor = input.id;
2021/11/11 22:54:40 <-                         label.id = "label_" + input.id;
2021/11/11 22:54:40 <-                         label.className = "radio-label";
2021/11/11 22:54:40 <-                         label.style.display = "inline";
2021/11/11 22:54:40 <-                         label.innerHTML = options[j];
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-                 if( sessionLogonCustomizations[i].trim() != "" ){
2021/11/11 22:54:40 <-                     var j = 0;
2021/11/11 22:54:40 <-                     while( ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){ // what number
2021/11/11 22:54:40 <-                         if( typeof sessionLogonCustomizationPairs[i][ radio.value ] != "undefined" ){
2021/11/11 22:54:40 <-                             document.getElementById("label_input_" + (i+1) + "_" + (j-1) ).innerHTML = sessionLogonCustomizationPairs[i][ radio.value ];
2021/11/11 22:54:40 <-                         }
2021/11/11 22:54:40 <-                     }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-                 var anyChecked = false, j = 0;
2021/11/11 22:54:40 <-                 while( initValue != "" && ( radio = document.getElementById("input_" + (i+1) + "_" + j++ ) ) !== null ){
2021/11/11 22:54:40 <-                     radio.checked = ( radio.value == initValue );
2021/11/11 22:54:40 <-                     if( radio.checked ){ anyChecked = true; }
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-                 if( !anyChecked && ( radio = document.getElementById("input_" + (i+1) + "_" + 0 ) ) !== null ){
2021/11/11 22:54:40 <-                     radio.checked = true;
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }else if( inpx !== null && inpx.tagName.toUpperCase() == "INPUT" && inpx.type.toUpperCase() == "CHECKBOX" ){
2021/11/11 22:54:40 <-                 if( inpx.disabled && finitvalues[i] != "" ){
2021/11/11 22:54:40 <-                     inpx.checked = true;
2021/11/11 22:54:40 <-                 }else if( !inpx.disabled && inpx.value == "" ){
2021/11/11 22:54:40 <-                     inpx.value = "1";
2021/11/11 22:54:40 <-                 }
2021/11/11 22:54:40 <-             }
2021/11/11 22:54:40 <-         }
2021/11/11 22:54:40 <-     --></script>
2021/11/11 22:54:40 <-     </td>
2021/11/11 22:54:40 <-     <td id="main_table_image_cell"><img src="/public/images/my/tr.gif"></td></tr>
2021/11/11 22:54:40 <- </table>
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- <div id="page_footer"><div>© 2020 TUI Group. All rights reserved.</div></div>
2021/11/11 22:54:40 <- <script type="text/javascript">
2021/11/11 22:54:40 <-     function F5_include_JS(jsFile)
2021/11/11 22:54:40 <-     {
2021/11/11 22:54:40 <-         document.write('<script type="text/javascript" src="'
2021/11/11 22:54:40 <-                          + jsFile + '"></scr' + 'ipt>'); // <-- IE7 workaround
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-     if ("" == "1") {
2021/11/11 22:54:40 <-         var f5VirtualKeyboardMove = ( "" == 1 ? "1" : "0" );
2021/11/11 22:54:40 <-         var f5VirtualKeyboardForceBlur = ( "" == 1 ? "0" : "1" );
2021/11/11 22:54:40 <-         function VirtualKeyboard_CustomizedMessageTextGet()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-   return 'Virtual Keyboard';
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <- function VirtualKeyboard_CustomizedHideTextGet()
2021/11/11 22:54:40 <- {
2021/11/11 22:54:40 <-   return 'Hide Keyboard';
2021/11/11 22:54:40 <- }
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 <-         var f5VirtualKeyboardMessageText =  VirtualKeyboard_CustomizedMessageTextGet();
2021/11/11 22:54:40 <-         var f5VirtualKeyboardHideText =  VirtualKeyboard_CustomizedHideTextGet();
2021/11/11 22:54:40 <-         F5_include_JS('/public/include/js/vk/f5_vk.js');
2021/11/11 22:54:40 <-     }
2021/11/11 22:54:40 <- </script>
2021/11/11 22:54:40 <- <div id="MessageDIV" class="inspectionHostDIVSmall"></div>
2021/11/11 22:54:40 <- <div id="formHeaderSoftToken" style="overflow: hidden; visibility: hidden; height: 0; width: 0;"></div>
2021/11/11 22:54:40 <- </body>
2021/11/11 22:54:40 <- </html>
2021/11/11 22:54:40 <- 
2021/11/11 22:54:40 -> URL: POST https://secure-gateway.tui.com/my.policy?outform=xml
2021/11/11 22:54:40 -> Headers:
2021/11/11 22:54:40 -> Referer: https://secure-gateway.tui.com/my.policy
2021/11/11 22:54:40 -> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8
2021/11/11 22:54:40 -> Cookie: LastMRH_Session=c3a9abc0; MRHSession=b59386c2a42cdc8415b4a236c3a9abc0
2021/11/11 22:54:40 -> Body: password=0774794Kresilko&username=karel.macha&vhost=standard
2021/11/11 22:54:41 <- Code: 200
2021/11/11 22:54:41 <- Headers:
2021/11/11 22:54:41 <- Date: Thu, 11 Nov 2021 21:54:41 GMT
2021/11/11 22:54:41 <- Content-Length: 26796
2021/11/11 22:54:41 <- X-Frame-Options: DENY
2021/11/11 22:54:41 <- Accept-Ranges: bytes
2021/11/11 22:54:41 <- Content-Type: text/html; charset=utf-8
2021/11/11 22:54:41 <- Age: 35482
2021/11/11 22:54:41 <- Pragma: no-cache
2021/11/11 22:54:41 <- Cache-Control: no-cache, must-revalidate
2021/11/11 22:54:41 <- Set-Cookie: LastMRH_Session=c3a9abc0;path=/;secure MRHSession=ec5dadbebf40bb54d48793dec3a9abc0;path=/;secure
2021/11/11 22:54:41 <- Server: secure-gateway.tui.com
2021/11/11 22:54:41 <- Body: 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2021/11/11 22:54:41 <- <html>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <head>
2021/11/11 22:54:41 <- <meta http-equiv="pragma" content="no-cache">
2021/11/11 22:54:41 <- <meta http-equiv="cache-control" content="no-cache">
2021/11/11 22:54:41 <- <meta http-equiv="cache-control" content="must-revalidate">
2021/11/11 22:54:41 <- <link rel="stylesheet" type="text/css" HREF="/public/include/css/apm.css">
2021/11/11 22:54:41 <- <script src="/public/include/js/pluginless/status_check.js" language="javascript"></script>
2021/11/11 22:54:41 <- <script src="/public/include/js/pluginless/expirable_status_check.js" language="javascript"></script>
2021/11/11 22:54:41 <- <script src="/public/include/js/pluginless/custom_protocol_handler.js" language="javascript"></script>
2021/11/11 22:54:41 <- <script src="/public/include/js/protocol_handler.js" language="javascript"></script>
2021/11/11 22:54:41 <- <script>
2021/11/11 22:54:41 <- function expandInspectionHostDIV( div, state )
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     div.className = ( state ? 'inspectionHostDIVBig' : 'inspectionHostDIVSmall' );
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <script src="/public/include/js/common.js" language="javascript"></script>
2021/11/11 22:54:41 <- <script src="/public/include/js/u_debug.js" language="javascript"></script>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <script type="text/javascript">
2021/11/11 22:54:41 <- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function UInstaller_InstallScreenGet()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return '<h3>A new browser component is required</h3>Please click on the Information Bar if it is displayed, and choose Install ActiveX control.<br>If your browser security settings prevent the installation, please select an option below.<br><br><table id="IHoptions"><tr><td><a href="[INSTALLER_CONTROL_URL]" onClick="[INSTALL_EVENT]" class="option"><img src="/public/images/sq-positive.gif" ></a><a href="[INSTALLER_CONTROL_URL]" onClick="[INSTALL_EVENT]">Install the new browser component and continue</a></td></tr><tr><td><a href="[SKIP_EVENT]" class="option"><img src="/public/images/sq-negative.gif"></a><a href="[SKIP_EVENT]">Continue, but do not install the new browser component</a></td></tr></table>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- var g_agent_caption = {};
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- g_agent_caption['obtaining_status'] = 'Obtaining status from server...';
2021/11/11 22:54:41 <- g_agent_caption['awaiting_connection'] = 'Awaiting connection...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_file'] = 'Checking files...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_software'] = 'Checking for security software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_av'] = 'Checking for antivirus software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_pm'] = 'Checking for patch management software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_as'] = 'Checking for antispyware software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_p2p'] = 'Checking for peer-to-peer software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_hd'] = 'Checking for hard disk encryption software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_ha'] = 'Checking for health agent software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_fw'] = 'Checking for firewall software...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_process'] = 'Checking running processes...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_check_machinecert'] = 'Checking machine certificate...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_windows_check_registry'] = 'Checking registry...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_windows_info_os'] = 'Collecting Windows information...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_machine_info'] = 'Collecting machine information...';
2021/11/11 22:54:41 <- g_agent_caption['agent_endpoint_windows_protected_workspace'] = 'Entering Protected Workspace...';
2021/11/11 22:54:41 <- g_agent_caption['token_value'] = '';
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_GetPopupBlockedIE() {
2021/11/11 22:54:41 <-     return '<div id="EPPopupsBlockedPopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Endpoint Inspection</td></tr></table></div><div class="cphPopupBodyDiv"><h3>Popups are blocked for this site</h3><p>Enable popups for this site to detect whether required components are installed on your system. Click the information bar (if displayed) and choose <b>Always allow</b> or <b>Allow once</b> from the <b>Options for this site</b> menu.</p><p>If client components are not yet installed, download and run the installer.</p><p>Select an option to continue.</p><div class="cphPopupBodyDiv"><table><tr><td><a id="epDownloadBtn" href="javascript:void(0)" onClick="[INSTALLER_CONTROL_URL]" class="cphBtnA"><div class="cphDownloadBtnDiv">Download</div></a></td><td>Download and run the installer.<p><a id="epRetryBtn" href="[RUN_INSPECTION]">Click here</a> when installation completes.</p></td></tr><tr><td><a id="epSkipBtn" href="[SKIP_EVENT]" class="cphBtnA"><div class="cphSkipBtnDiv">Skip Inspection</div></a></td><td>Skip the endpoint inspection. Access may be denied or some resources may not be available.</td></tr></table></div></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_GetAutomaticStartNotSupported() {
2021/11/11 22:54:41 <-     return '<div id="EPNoAutoStartPopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Endpoint Inspection</td></tr></table></div><div class="cphPopupBodyDiv"><h3>Browser needs permission to start endpoint checks</h3> Select an option to continue. <table><tr><td><a id="epRetryBtn" href="[RUN_INSPECTION]" class="cphBtnA"><div class="cphDownloadBtnDiv">Start inspection</div></a></td><td>Start endpoint inspection client components, and allow them to check your computer.</td></tr><tr><td><a id="epSkipBtn" href="[SKIP_EVENT]" class="cphBtnA"><div class="cphSkipBtnDiv">Skip Inspection</div></a></td><td>Skip the endpoint inspection. Access may be denied or some resources may not be available.</td></tr></table></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_InstallScreenGet() {
2021/11/11 22:54:41 <-     return '<div id="EPInstallPopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Endpoint Inspection</td></tr></table></div><div id="Body" class="cphPopupBodyDiv"><h3>Endpoint inspection client components required</h3><p>1. Download and run the installer package.</p><p>[INSTALLER_URL_LIST]</p><a id="epDownloadBtn" href="javascript:void(0)" onClick="[INSTALLER_CONTROL_URL]" class="cphBtnA"><div class="cphDownloadBtnDiv">Download</div></a><p>2. <a id="epRetryBtn" href="[RUN_INSPECTION]">Click here</a> when the installation completes.</p><div class="cphDivider"></div><a id="epSkipBtn" href="[SKIP_EVENT]" class="cphSkipLink">Skip Endpoint inspection</a><div id="skipTooltip" class="cphSkipTooltip">Access may be denied or some resources may not be available.</div></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_ConnectionTimeoutGet() {
2021/11/11 22:54:41 <-     return '<div id="EPFailedPopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Waiting for Endpoint Inspection status</td></tr></table></div><div id="Body" class="cphPopupBodyDiv">    Browser is waiting for status from Endpoint Inspector Application.    <p>Please confirm that this application is launched and is not waiting for your input.     This application may be behind other windows on your desktop.</p><a href="#options" class="expander-link"> More options </a><div id="options" class="cphPopupExpandDiv"><p><a id="epRetryBtn" href="[RUN_INSPECTION]">Try to launch endpoint inspection again.</a> Please make sure another instance of the application is not running.</p>       <p><a id="epDownloadBtn" href="[SHOW_DOWNLOAD_SCREEN_EVENT]">Install/Reinstall Endpoint Inspector.</a> Select this option if Endpoint Inspector was never installed on this machine or if there was a problem with installation.</p><p><a id="epSkipBtn" href="[SKIP_EVENT]" class="cphSkipLink">Skip Endpoint inspection.</a> Access may be denied or some resources may not be available depending on how your administrator has configured access.</p></div></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_StatusParseFailureGet() {
2021/11/11 22:54:41 <-     return '<div id="EPInvalidStatusUpdatePopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Endpoint Inspection</td></tr></table></div><div class="cphPopupBodyDiv"><h3>Invalid server response.</h3><p>Your session may have expired. Refresh the current page. If the problem persists, contact your system administrator. </p><a id="epRetryBtn" href="[RELOAD_EVENT]" class="cphBtnA"><div class="cphDownloadBtnDiv">Reload</div></a></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_StatusRetrievalFailureGet() {
2021/11/11 22:54:41 <-     return '<div id="EPStatusUpdateFailedPopup" class="cphDownloadDialogDIV"><div id="Header" class="cphPopupHeaderDiv"><table><tr><td>Endpoint Inspection</td></tr></table></div><div class="cphPopupBodyDiv"><h3>Unable to retrieve a response from the server.</h3><p>Your session may have expired. Refresh the current page. If the problem persists, contact your system administrator. </p><a id="epRetryBtn" href="[RELOAD_EVENT]" class="cphBtnA"><div class="cphDownloadBtnDiv">Reload</div></a></div><div class="cphCopyrightDiv"/></div>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function SEPC_GetScheme() {
2021/11/11 22:54:41 <-     return 'f5-epi';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- var g_CustomProtocolHandler = null;
2021/11/11 22:54:41 <- var g_bNeedRestart = false;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGetInstallerUrlList()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return "        <form id='urlList'> \
2021/11/11 22:54:41 <-         <label><input type='radio' name='url' value='/public/download/linux_f5epi.x86_64.rpm' checked>64 bit .rpm (Fedora/openSUSE)</label><br>\
2021/11/11 22:54:41 <-         <label><input type='radio' name='url' value='/public/download/linux_f5epi.x86_64.deb'>64 bit .deb (Ubuntu/Debian)</label><br>\
2021/11/11 22:54:41 <-         </form>";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- function sepcGetInstallerURL()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return "/public/download/linux_f5epi.tgz";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- function sepcGetPacakgeUpdateList()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return [];
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGetLocalizedStatus(msgId)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if (msgId in g_agent_caption) {
2021/11/11 22:54:41 <-         return g_agent_caption[msgId];
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     // since msgId is agent id, it may contain platform identifier
2021/11/11 22:54:41 <-     // but message id not always contains it, let's strip platform out
2021/11/11 22:54:41 <-     var modifiedMsgId = msgId.replace('mac_', '');
2021/11/11 22:54:41 <-     modifiedMsgId = modifiedMsgId.replace('windows_', '');
2021/11/11 22:54:41 <-     modifiedMsgId = modifiedMsgId.replace('linux_', '');
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (modifiedMsgId in g_agent_caption) {
2021/11/11 22:54:41 <-         return g_agent_caption[modifiedMsgId];
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     addToLog("Failed to localize:" + msgId);
2021/11/11 22:54:41 <-     return msgId;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcDebug(line)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     addToLog(line);
2021/11/11 22:54:41 <-     var currentDate = '[' + new Date().toUTCString() + '] ';
2021/11/11 22:54:41 <-     console.log(currentDate, line);
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGoToNextPage(path)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var url = GetServerUrl() + path;
2021/11/11 22:54:41 <-     // Mozila browser can not be redirected through javascript
2021/11/11 22:54:41 <-     // set up a 3 sec watchdog and ask user to click on a link to continue
2021/11/11 22:54:41 <-     setTimeout('continue_link_show("'+url+'")', 3000);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     window.location.href = url;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGetHangupUrl(errorcode)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var defaultHangUpUrl = '/vdesk/hangup.php3';
2021/11/11 22:54:41 <-     if (errorcode) {
2021/11/11 22:54:41 <-         return defaultHangUpUrl + '?errorcode=' + errorcode;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     return defaultHangUpUrl;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcReloadPage()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     location.reload(true);
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcSkipInspection()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     g_CustomProtocolHandler.Abort();
2021/11/11 22:54:41 <-     skip_inspection();
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGetInspLink()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var dict = {};
2021/11/11 22:54:41 <-     dict['server'] = window.location.hostname;
2021/11/11 22:54:41 <-     var updates = sepcGetPacakgeUpdateList();
2021/11/11 22:54:41 <-     var len = updates.length;
2021/11/11 22:54:41 <-     for (var i = 0; i < len; i++) {
2021/11/11 22:54:41 <-         dict['version' + i] = updates[i].version;
2021/11/11 22:54:41 <-         dict['id' + i] = updates[i].id;
2021/11/11 22:54:41 <-         dict['package' + i] = updates[i].package;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     return getCustomProtocolLink(SEPC_GetScheme(), dict);
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcOnCheckComplete()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     sepcDebug("sepcOnCheckComplete");
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if(g_bNeedRestart) {
2021/11/11 22:54:41 <-         setTimeout(function() {
2021/11/11 22:54:41 <-                 restart_new_browser_link_show("/");
2021/11/11 22:54:41 <-             }, 1000);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     } else {
2021/11/11 22:54:41 <-         setTimeout(function() {
2021/11/11 22:54:41 <-                 sepcGoToNextPage("/my.policy?p=" + Math.floor((Math.random() * 1000000)));
2021/11/11 22:54:41 <-             }, 1000);
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcOnCheckProgress(eventName)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     sepcDebug("onCheckProgress:" + eventName);
2021/11/11 22:54:41 <-     if (eventName && eventName.length > 0) {
2021/11/11 22:54:41 <-         caption_set(sepcGetLocalizedStatus(eventName));
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     // show additional instructions for Edge Browser
2021/11/11 22:54:41 <-     // localize it later
2021/11/11 22:54:41 <-     var browser = getBrowser();
2021/11/11 22:54:41 <-     if(browser_id.edge === browser) {
2021/11/11 22:54:41 <-         var text = (eventName == progressStatus.awaiting_connection) ?
2021/11/11 22:54:41 <-             "<p align='left'>If you see a prompt to look for an app in Store, press 'Esc' key<br><br>If you see a prompt to switch apps, click 'Yes' button</p>":
2021/11/11 22:54:41 <-             "";
2021/11/11 22:54:41 <-         aux_text_show(text);
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     // custom protocol handler application will send a token only in one case as of now -
2021/11/11 22:54:41 <-     // when security zone for the server has changed on client side, through adding it to Trusted Site list.
2021/11/11 22:54:41 <-     // The actual value of the token can be ignored for now
2021/11/11 22:54:41 <-     if (eventName === progressStatus.token_value)
2021/11/11 22:54:41 <-     {
2021/11/11 22:54:41 <-         if(browser_id.edge === browser) {
2021/11/11 22:54:41 <-             g_bNeedRestart = true;
2021/11/11 22:54:41 <-         }
2021/11/11 22:54:41 <-         return false;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     // two first updates are always "obtaining_status" and "awaiting_connection"
2021/11/11 22:54:41 <-     // ignoring them because they don't indicate connected EPCheck module
2021/11/11 22:54:41 <-     if ((eventName === progressStatus.obtaining_status) ||
2021/11/11 22:54:41 <-         (eventName === progressStatus.awaiting_connection))
2021/11/11 22:54:41 <-     {
2021/11/11 22:54:41 <-         return false;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     return true;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcOnCheckFailure(httpError, apmError, retriesLeft)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if (!apmError) {
2021/11/11 22:54:41 <-         apmError = 0;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     if (!httpError) {
2021/11/11 22:54:41 <-         httpError = 0;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     var text = "sepcOnCheckFailure httpError=" + httpError + ", apmError=" + apmError;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     sepcDebug(text);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (apmError == scError_sessionExpired || httpError == 404) {
2021/11/11 22:54:41 <-         sepcGoToNextPage(sepcGetHangupUrl(20)); // 20 - expired
2021/11/11 22:54:41 <-         return;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (retriesLeft > 0) {
2021/11/11 22:54:41 <-         return;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     text = SEPC_StatusRetrievalFailureGet();
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (apmError = scError_failedToParse) {
2021/11/11 22:54:41 <-         text = SEPC_StatusParseFailureGet();
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (g_CustomProtocolHandler) {
2021/11/11 22:54:41 <-         g_CustomProtocolHandler.ShowMessage(text);
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcRestart()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if (g_CustomProtocolHandler) {
2021/11/11 22:54:41 <-         g_CustomProtocolHandler.Run(true);
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcGetDownloadUrl()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var btnForm = document.getElementById("epDownloadBtn");
2021/11/11 22:54:41 <-     if(!btnForm) {
2021/11/11 22:54:41 <-         return false;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     var forms = document.getElementById("urlList");
2021/11/11 22:54:41 <-     if(forms) {
2021/11/11 22:54:41 <-         var radioButtons = forms.url;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-         for (var i = 0; i < radioButtons.length; i++) {
2021/11/11 22:54:41 <-             if (radioButtons[i].checked) {
2021/11/11 22:54:41 <-                  btnForm.href = radioButtons[i].value;
2021/11/11 22:54:41 <-                  return true;
2021/11/11 22:54:41 <-             }
2021/11/11 22:54:41 <-         }
2021/11/11 22:54:41 <-         btnForm.href = forms.elements["url"].value;
2021/11/11 22:54:41 <-     }else{
2021/11/11 22:54:41 <-         btnForm.href = sepcGetInstallerURL();
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     return true;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcShowDownloadPage()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if (g_CustomProtocolHandler) {
2021/11/11 22:54:41 <-         g_CustomProtocolHandler.ShowMessage(SEPC_InstallScreenGet());
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcProcessText(text)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var _onclickSkip = "javascript:sepcSkipInspection();";
2021/11/11 22:54:41 <-     var _installerControlURL = "return sepcGetDownloadUrl();";
2021/11/11 22:54:41 <-     var _installerUrlList = sepcGetInstallerUrlList();
2021/11/11 22:54:41 <-     var _startInspection = "javascript:sepcRestart();";
2021/11/11 22:54:41 <-     var _sepcReloadPage = "javascript:sepcReloadPage();";
2021/11/11 22:54:41 <-     var _onShowDownloadClick = "javascript:sepcShowDownloadPage();";
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     text = text.replace(/\[INSTALLER_URL_LIST\]/g, _installerUrlList);
2021/11/11 22:54:41 <-     text = text.replace(/\[INSTALLER_CONTROL_URL\]/g, _installerControlURL);
2021/11/11 22:54:41 <-     text = text.replace(/\[SKIP_EVENT\]/g, _onclickSkip);
2021/11/11 22:54:41 <-     text = text.replace(/\[RUN_INSPECTION\]/g, _startInspection);
2021/11/11 22:54:41 <-     text = text.replace(/\[RELOAD_EVENT\]/g, _sepcReloadPage);
2021/11/11 22:54:41 <-     text = text.replace(/\[SHOW_DOWNLOAD_SCREEN_EVENT\]/g, _onShowDownloadClick);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     return text;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcStartInspectionAndCheck()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if (!g_CustomProtocolHandler) {
2021/11/11 22:54:41 <-         return;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     if (g_CustomProtocolHandler.Run(false)) {
2021/11/11 22:54:41 <-         progress_bar_show();
2021/11/11 22:54:41 <-         animation_start();
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcInspectionLinkShow()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function sepcMain(uiOptions)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     sepcInspectionLinkShow();
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     var options = {
2021/11/11 22:54:41 <-         onLoadStartNotSupportedMsg : SEPC_GetAutomaticStartNotSupported(),
2021/11/11 22:54:41 <-         popupBlockedIEMsg : SEPC_GetPopupBlockedIE(),
2021/11/11 22:54:41 <-         notInstalledMsg : SEPC_InstallScreenGet(),
2021/11/11 22:54:41 <-         browser : getBrowser(),
2021/11/11 22:54:41 <-         link : sepcGetInspLink(),
2021/11/11 22:54:41 <-         token : "eps",
2021/11/11 22:54:41 <-         onProcessMessage : sepcProcessText,
2021/11/11 22:54:41 <-         pollingEnabled : true,
2021/11/11 22:54:41 <-         timeoutEnabled : true,
2021/11/11 22:54:41 <-         overlayDivName : uiOptions.divName,
2021/11/11 22:54:41 <-         expandedStyle : uiOptions.divExpandedStyle,
2021/11/11 22:54:41 <-         hiddenStyle: uiOptions.divHiddenStyle,
2021/11/11 22:54:41 <-         onHandlerDetected : function () {},
2021/11/11 22:54:41 <-         onUserDeclinedMsg : SEPC_ConnectionTimeoutGet(),
2021/11/11 22:54:41 <-         onDebugMsg : sepcDebug,
2021/11/11 22:54:41 <-         statusCheckOptions : {
2021/11/11 22:54:41 <-             connectionTimeout : isCustomProtocolDetectionSupported() ? 4000 : 100,
2021/11/11 22:54:41 <-             connectionTimeoutMsg : SEPC_ConnectionTimeoutGet(),
2021/11/11 22:54:41 <-             onComplete: sepcOnCheckComplete,
2021/11/11 22:54:41 <-             onProgress: sepcOnCheckProgress,
2021/11/11 22:54:41 <-             onError: sepcOnCheckFailure,
2021/11/11 22:54:41 <-             uri: "/my.status.eps"
2021/11/11 22:54:41 <-         }
2021/11/11 22:54:41 <-     };
2021/11/11 22:54:41 <-     g_CustomProtocolHandler = new CustomProtocolHandler(options);
2021/11/11 22:54:41 <-     sepcStartInspectionAndCheck();
2021/11/11 22:54:41 <-     window.onunload = function() { g_CustomProtocolHandler.Abort() };
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- <script>
2021/11/11 22:54:41 <- function main()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   var uiOptions = {
2021/11/11 22:54:41 <-     divName : "InspectionHostDIV",
2021/11/11 22:54:41 <-     divExpandedStyle : "cphBackgroundDimmed",
2021/11/11 22:54:41 <-     divHiddenStyle : "inspectionHostDIVSmall",
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <-   sepcMain(uiOptions);
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- function skip_inspection()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     document.getElementById("no_inspection_host_form").submit();
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function GetServerUrl()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return window.location.protocol + "//" + window.location.host;
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- // InspectionHost 'fExit' event handler
2021/11/11 22:54:41 <- // This event is fired, by an agent inside Inspection host
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- function settext(a_str)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   addToLogEnter("settext() - enter, a_str=\""+a_str+"\"");
2021/11/11 22:54:41 <-   caption_set(a_str)
2021/11/11 22:54:41 <-   addToLogExit("settext() - exit");
2021/11/11 22:54:41 <-   return "0";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- // InspectionHost 'install_control_event' event handler
2021/11/11 22:54:41 <- // This event is fired, by an agent inside Inspection host
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- function install_control_event(a, b)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   addToLogEnter("install_control_event('" + a + "','" + b + "') - enter");
2021/11/11 22:54:41 <-   caption_progress_set(a);
2021/11/11 22:54:41 <-   addToLogExit("install_control_event() - exit");
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- // InspectionHost 'fExit' event handler
2021/11/11 22:54:41 <- // This event is fired, when InspectionHost is done with processing and needs to be deleted
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- function fExit(a_url)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   addToLogEnter("fExit() - enter, a_url=\""+a_url+"\"");
2021/11/11 22:54:41 <-   fGoToURL(a_url);
2021/11/11 22:54:41 <-   addToLogExit("fExit() - exit");
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- // InspectionHost 'fGoToURL' event handler
2021/11/11 22:54:41 <- // This is a general purpose event
2021/11/11 22:54:41 <- //-----------------------------------------
2021/11/11 22:54:41 <- function fGoToURL(a_url, a_data)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   addToLogEnter("fGoToUrl() - enter, a_url=\""+a_url+"\"");
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   // generate redirection URL
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   if(a_url.indexOf("/redirect:") == 0) {
2021/11/11 22:54:41 <-     a_url = unescape(a_url.substring(10, a_url.length));
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   } else if(a_url.indexOf("/logon") == 0) {
2021/11/11 22:54:41 <-     a_url="/my.policy";
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   } else if(a_url.indexOf("/logout") == 0) {
2021/11/11 22:54:41 <-     a_url="/my.logout.php3";
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   } else if(a_url.indexOf("/policy/show_error.php3") >= 0) {
2021/11/11 22:54:41 <-   // we have an error
2021/11/11 22:54:41 <-     a_url = a_url.replace("/policy/show_error.php3", "/my.logout.php3");
2021/11/11 22:54:41 <-     a_url = a_url.replace("error_number=", "errorcode=");
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   a_url = unescape(a_url);
2021/11/11 22:54:41 <-   addToLog("fGoToUrl() - final a_url=\""+a_url+"\"");
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   if(a_url.indexOf("javascript:") != 0) {
2021/11/11 22:54:41 <-     // Mozila browser can not be redirected through javascript when plugin installation success dialog is shown (it is behind browser, so user does not see it, which is confusing)
2021/11/11 22:54:41 <-     // set up a 3 sec watchdog and ask user to click on a link to continue
2021/11/11 22:54:41 <-     setTimeout('continue_link_show("'+a_url+'")', 3000);
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   window.location.href = a_url;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   addToLogExit("fGoToUrl() - exit");
2021/11/11 22:54:41 <-   return "done";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- // end of Controls events handlers
2021/11/11 22:54:41 <- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- </head>
2021/11/11 22:54:41 <- <body onload="main()"
2021/11/11 22:54:41 <- >
2021/11/11 22:54:41 <- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
2021/11/11 22:54:41 <- <meta name="viewport" id="viewport" content="initial-scale=1.0" />
2021/11/11 22:54:41 <- <meta name="robots" context="noindex,nofollow">
2021/11/11 22:54:41 <- <script language="javascript">
2021/11/11 22:54:41 <- //orientation toolbox
2021/11/11 22:54:41 <- function setViewport(){
2021/11/11 22:54:41 <-     document.getElementById("viewport").setAttribute('content', Math.abs(window.orientation) == 90 ? 'width=device-height, initial-scale=1' : 'width=device-width, initial-scale=1.0' );
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- setViewport();
2021/11/11 22:54:41 <- window.onorientationchange = function() {
2021/11/11 22:54:41 <-     setViewport();
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- <table id="page_header">
2021/11/11 22:54:41 <-   <tr >
2021/11/11 22:54:41 <-     <td id="header_leftcell"><img src='/public/images/customization/Common/secure-gateway.tui.com-apm_general_ui/logo_image_en.png'/></td>
2021/11/11 22:54:41 <-     <td id="header_rightcell"></td>
2021/11/11 22:54:41 <-   </tr>
2021/11/11 22:54:41 <-   <tr>
2021/11/11 22:54:41 <-      <td></td>
2021/11/11 22:54:41 <-      <td id="maxTimeoutTd"><span id="maxTimeoutTag" title=""></span></td>
2021/11/11 22:54:41 <-   </tr>
2021/11/11 22:54:41 <- </table>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <table id="main_table" class="eps">
2021/11/11 22:54:41 <-     <tr>
2021/11/11 22:54:41 <-         <td id="main_table_info_cell">
2021/11/11 22:54:41 <- <noscript>
2021/11/11 22:54:41 <- <div id="noscript_warning_red">JavaScript is not enabled. Please enable JavaScript in your browser or contact your system administrator for assistance.</div>
2021/11/11 22:54:41 <- <div id="noscript_warning_newsession">To open a new session, please  <A href="/">click here.</A></div>
2021/11/11 22:54:41 <- </noscript>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <script>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- var _progress_bar_on_className = 'highlight';
2021/11/11 22:54:41 <- var _progress_bar_off_className = '';
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- // UI control functions
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function activex_host_get()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     return document.getElementById("InspectionHostDIV");
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function caption_set(text)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   try {
2021/11/11 22:54:41 <-     elm = document.getElementById("headertext");
2021/11/11 22:54:41 <-     elm.innerHTML = text;
2021/11/11 22:54:41 <-   } catch(e) { };
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function caption_progress_set(a)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   try {
2021/11/11 22:54:41 <-     elm = document.getElementById("headertext_progress");
2021/11/11 22:54:41 <-     var text = "";
2021/11/11 22:54:41 <-     switch(a) {
2021/11/11 22:54:41 <-       case '2' :
2021/11/11 22:54:41 <- 	// downloading progress
2021/11/11 22:54:41 <-         text = "(Downloading)";
2021/11/11 22:54:41 <-       break;
2021/11/11 22:54:41 <-       case '3' :
2021/11/11 22:54:41 <-         // downloading complete
2021/11/11 22:54:41 <-         text = "(Installing)";
2021/11/11 22:54:41 <-       break;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <-     elm.innerHTML = text;
2021/11/11 22:54:41 <-   } catch(e) { };
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function continue_link_show(a_url)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-      document.getElementById("ContinueDIV").innerHTML = '<br><br><a href="'+a_url+'">to continue, please, click here</a>';
2021/11/11 22:54:41 <-      document.getElementById("ContinueDIV").style.visibility = "visible";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function restart_new_browser_link_show(a_url)
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     var inspectionHostDIV = document.getElementById("InspectionHostDIV");
2021/11/11 22:54:41 <-     expandInspectionHostDIV( inspectionHostDIV, true );
2021/11/11 22:54:41 <-     inspectionHostDIV.innerHTML = 'Internet security settings changed for this site. A new instance of Internet Browser must be opened' + '<br><br>'+
2021/11/11 22:54:41 <-         '<a href="' + a_url + '"><img src="/public/images/sq-positive.gif" style="vertical-align: middle;" alt="" border="0">&nbsp;to continue, please, click here</a>';
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- /////////////////////////////////////////////////////////////////////////////////////////////////////////////
2021/11/11 22:54:41 <- // UI animation functions
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- var g_animationTimer = null;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- var position = 0;
2021/11/11 22:54:41 <- var size = 3;
2021/11/11 22:54:41 <- var lenght = 12;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function progress_bar_show()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   document.getElementById("ProgressBarDIV").style.visibility = "visible";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function progress_bar_hide()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   document.getElementById("ProgressBarDIV").style.visibility = "hidden";
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function animation_next()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   try {
2021/11/11 22:54:41 <-     var eid = "progress_item" + position;
2021/11/11 22:54:41 <-     var newone = "progress_item" + ((position + size) % lenght);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     var elm = document.getElementById(eid);
2021/11/11 22:54:41 <-     if(null != elm) {
2021/11/11 22:54:41 <-         elm.className = _progress_bar_off_className;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     elm = document.getElementById(newone);
2021/11/11 22:54:41 <-     if(null != elm) {
2021/11/11 22:54:41 <-         elm.className = _progress_bar_on_className;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-     position = (position + 1) % lenght;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   } catch (e) {}
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function animation_start()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   addToLogEnter("animation_start() - enter");
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   if(null == g_animationTimer) {
2021/11/11 22:54:41 <-     g_animationTimer = window.setTimeout("animation_do()", 100);
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   addToLogExit("animation_start() - exit");
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function animation_stop()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-   addToLogEnter("animation_stop() - enter, timer="+g_animationTimer);
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   if(null != g_animationTimer) {
2021/11/11 22:54:41 <-     window.clearTimeout(g_animationTimer);
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   g_animationTimer = null;
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   addToLogExit("animation_stop() - timer="+g_animationTimer);
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- function animation_do()
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <- //  addToLogEnter("animation_do() - enter, timer="+g_animationTimer+ "  "+typeof(g_animationTimer));
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <-   if(null != g_animationTimer) {
2021/11/11 22:54:41 <-     animation_next();
2021/11/11 22:54:41 <-     g_animationTimer = window.setTimeout("animation_do()", 350);
2021/11/11 22:54:41 <-   }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- //  addToLogExit("animation_do() - exit");
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <table id="interaction_table">
2021/11/11 22:54:41 <- <tr>
2021/11/11 22:54:41 <-     <td id="interaction_table_header"><span id="headertext">Checking client...</span></td>
2021/11/11 22:54:41 <- </tr>
2021/11/11 22:54:41 <- <tr>
2021/11/11 22:54:41 <-     <td class="interaction_table_text_cell">
2021/11/11 22:54:41 <-         <DIV ID="ProgressBarDIV" style="visibility:hidden">
2021/11/11 22:54:41 <-         <table width="100%">
2021/11/11 22:54:41 <-         <tr>
2021/11/11 22:54:41 <-             <td align="center"><span id="headertext_progress"></span></td>
2021/11/11 22:54:41 <-         </tr>
2021/11/11 22:54:41 <-         <tr>
2021/11/11 22:54:41 <-             <td id="sqs" align="center">
2021/11/11 22:54:41 <-             <table id="progress_bar_table" cellspacing="2">
2021/11/11 22:54:41 <-             <tr>
2021/11/11 22:54:41 <-                 <td id="progress_item0" class="highlight"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item1" class="highlight"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item2" class="highlight"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item3"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item4"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item5"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item6"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item7"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item8"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item9"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item10"></td>
2021/11/11 22:54:41 <-                 <td id="progress_item11"></td>
2021/11/11 22:54:41 <-             </tr>
2021/11/11 22:54:41 <-             </table>
2021/11/11 22:54:41 <-             </td>
2021/11/11 22:54:41 <-         </tr>
2021/11/11 22:54:41 <-         </table>
2021/11/11 22:54:41 <-         </DIV>
2021/11/11 22:54:41 <-         <DIV ID="ContinueDIV" style="visibility:visible;" align="center"></DIV>
2021/11/11 22:54:41 <-         </td>
2021/11/11 22:54:41 <-     </tr>
2021/11/11 22:54:41 <-     <tr>
2021/11/11 22:54:41 <-         <td class="interaction_table_footer"></td>
2021/11/11 22:54:41 <-     </tr>
2021/11/11 22:54:41 <- </table>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <BR><BR>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <table cellpadding='0' cellspacing='0' border='0' width='100%' class='main'>
2021/11/11 22:54:41 <- <tr valign="top">
2021/11/11 22:54:41 <-     <td id='main_area'></td>
2021/11/11 22:54:41 <- </tr>
2021/11/11 22:54:41 <- </table>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <DIV ID="pluginDIV" style="visibility:visible" align="center">
2021/11/11 22:54:41 <- </DIV>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <form id="no_inspection_host_form" style="height:0px;" method="POST" action="/my.policy">
2021/11/11 22:54:41 <- <input type="hidden" name="no-inspection-host" value="1" />
2021/11/11 22:54:41 <- </form>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- </td>
2021/11/11 22:54:41 <-     <td id="main_table_image_cell"><img src="/public/images/my/tr.gif"></td>    </tr>
2021/11/11 22:54:41 <- </table>
2021/11/11 22:54:41 <- <div id="page_footer"><div>© 2020 TUI Group. All rights reserved.</div></div><div id="InspectionHostDIV" class="inspectionHostDIVSmall"></DIV>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- </body>
2021/11/11 22:54:41 <- </html>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 -> URL: GET https://secure-gateway.tui.com/vdesk/vpn/index.php3?outform=xml&client_version=2.0
2021/11/11 22:54:41 -> Headers:
2021/11/11 22:54:41 -> Cookie: LastMRH_Session=c3a9abc0; MRHSession=ec5dadbebf40bb54d48793dec3a9abc0
2021/11/11 22:54:41 -> User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.1a2pre) Gecko/2008073000 Shredder/3.0a2pre ThunderBrowse/3.2.1.8
2021/11/11 22:54:41 <- Code: 404
2021/11/11 22:54:41 <- Headers:
2021/11/11 22:54:41 <- Server: secure-gateway.tui.com
2021/11/11 22:54:41 <- Age: 35482
2021/11/11 22:54:41 <- Pragma: no-cache
2021/11/11 22:54:41 <- Content-Length: 3151
2021/11/11 22:54:41 <- X-Frame-Options: DENY
2021/11/11 22:54:41 <- Cache-Control: no-cache, must-revalidate
2021/11/11 22:54:41 <- Content-Type: text/html; charset=utf-8
2021/11/11 22:54:41 <- Accept-Ranges: bytes
2021/11/11 22:54:41 <- Date: Thu, 11 Nov 2021 21:54:41 GMT
2021/11/11 22:54:41 <- Body: <html>
2021/11/11 22:54:41 <-   <head>
2021/11/11 22:54:41 <-     <title>BIG-IP - Error Page</title>
2021/11/11 22:54:41 <-     <link rel="stylesheet" type="text/css" HREF="/public/include/css/apm.css">
2021/11/11 22:54:41 <-     <script src="/public/include/js/common.js" language="javascript"></script>
2021/11/11 22:54:41 <-     <script src="/public/include/js/agent_common.js" language="javascript"></script>
2021/11/11 22:54:41 <-     <script language="javascript">
2021/11/11 22:54:41 <-     
2021/11/11 22:54:41 <-       function OnLoad() 
2021/11/11 22:54:41 <-       {
2021/11/11 22:54:41 <-         var display_session = get_cookie("LastMRH_Session");
2021/11/11 22:54:41 <-         if(null != display_session) {
2021/11/11 22:54:41 <-           document.getElementById("sessionDIV").innerHTML = '<BR>' + "The session reference number:" + '&nbsp;' + display_session + '<BR>';
2021/11/11 22:54:41 <-           document.getElementById("sessionDIV").style.visibility = "visible";
2021/11/11 22:54:41 <-         }
2021/11/11 22:54:41 <-       }
2021/11/11 22:54:41 <-       
2021/11/11 22:54:41 <-     </script>
2021/11/11 22:54:41 <-   </head>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <body
2021/11/11 22:54:41 <- 	onload="OnLoad();"
2021/11/11 22:54:41 <- >
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <script>
2021/11/11 22:54:41 <- try
2021/11/11 22:54:41 <- {
2021/11/11 22:54:41 <-     if(window.external && window.external.WebLogonOnAuthFailure) {
2021/11/11 22:54:41 <-         window.external.WebLogonOnAuthFailure();
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }catch(e){};
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- var landingURI = "/";
2021/11/11 22:54:41 <- var landingURI_base64 = "";
2021/11/11 22:54:41 <- var redirectURI = "/";
2021/11/11 22:54:41 <- var requestURI = "/vdesk/c_ses.php3?orig_uri=OcPFckMLAEXF5qWYuocPreQdGo7fcAXGdlsZQETu7yr%2ByAnREXfFNmfxKXBrTcKu6jDhTSFwCg2AAL5PfK8%2Fand3U4%2BY%2FmLVKCO0%2F3g%3D";
2021/11/11 22:54:41 <- function OnLoad() {
2021/11/11 22:54:41 <-     if (landingURI_base64 != "") {
2021/11/11 22:54:41 <-         redirectURI = landingURI_base64;
2021/11/11 22:54:41 <-     } else if (requestURI != "") {
2021/11/11 22:54:41 <-         redirectURI = requestURI;
2021/11/11 22:54:41 <-     } else if (landingURI != "") {
2021/11/11 22:54:41 <-         redirectURI = landingURI;
2021/11/11 22:54:41 <-     }
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- </script>	
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <meta http-equiv="X-UA-Compatible" content="IE=Edge">
2021/11/11 22:54:41 <- <meta name="viewport" id="viewport" content="initial-scale=1.0" />
2021/11/11 22:54:41 <- <meta name="robots" context="noindex,nofollow">
2021/11/11 22:54:41 <- <script language="javascript">
2021/11/11 22:54:41 <- //orientation toolbox
2021/11/11 22:54:41 <- function setViewport(){
2021/11/11 22:54:41 <-     document.getElementById("viewport").setAttribute('content', Math.abs(window.orientation) == 90 ? 'width=device-height, initial-scale=1' : 'width=device-width, initial-scale=1.0' );
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- setViewport();
2021/11/11 22:54:41 <- window.onorientationchange = function() {
2021/11/11 22:54:41 <-     setViewport();
2021/11/11 22:54:41 <- }
2021/11/11 22:54:41 <- </script>
2021/11/11 22:54:41 <- <table id="page_header">
2021/11/11 22:54:41 <-   <tr >
2021/11/11 22:54:41 <-     <td id="header_leftcell"><img src='/public/images/customization/Common/secure-gateway.tui.com-apm_general_ui/logo_image_en.png'/></td>
2021/11/11 22:54:41 <-     <td id="header_rightcell"></td>
2021/11/11 22:54:41 <-   </tr>
2021/11/11 22:54:41 <-   <tr>
2021/11/11 22:54:41 <-      <td></td>
2021/11/11 22:54:41 <-      <td id="maxTimeoutTd"><span id="maxTimeoutTag" title=""></span></td>
2021/11/11 22:54:41 <-   </tr>
2021/11/11 22:54:41 <- </table>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <table class='main_table'>
2021/11/11 22:54:41 <- 	<tr valign="top">
2021/11/11 22:54:41 <- 		<td>
2021/11/11 22:54:41 <- 			<table width="500px" cellpadding="10">
2021/11/11 22:54:41 <- 				<tr>
2021/11/11 22:54:41 <- 					<td>
2021/11/11 22:54:41 <- <h1>Access policy evaluation is already in progress for your current session. </h1><p><font size=4>You might see this message if you are on a different browser tab than the one where you started the access policy. Please continue to work in the previous browser tab and close this window immediately. </p><p><font size=4>If you have reached this message due to some other error, click <A href="javascript:document.location=redirectURI"><font size=4> here </font></A> to create a new session.</p>					</td>
2021/11/11 22:54:41 <- 				</tr>
2021/11/11 22:54:41 <- 				<tr>
2021/11/11 22:54:41 <- 					<td>
2021/11/11 22:54:41 <- 						<DIV ID="sessionDIV" style='visibility:hidden' align=left></DIV>
2021/11/11 22:54:41 <- 					</td>
2021/11/11 22:54:41 <- 				</tr>
2021/11/11 22:54:41 <- 				<tr>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- 			</table>	
2021/11/11 22:54:41 <- 			
2021/11/11 22:54:41 <- 		</td>
2021/11/11 22:54:41 <- 	</tr>
2021/11/11 22:54:41 <- </table>	
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 <- <div id="page_footer"><div>© 2020 TUI Group. All rights reserved.</div></div>
2021/11/11 22:54:41 <- </body>
2021/11/11 22:54:41 <- </html>
2021/11/11 22:54:41 <- 
2021/11/11 22:54:41 wrong response code on profiles get: 404
@ManuLinares
Copy link

Amazing app, yes it doesn't work with username and password. but at least a friend can do his work on Linux.

@karlitos
Copy link
Author

I can just confirm, that with the F5 CLI client (f5fpc) I can login with username and password on our company VPN. It was quite hard to get the binary - normally your VPN provider should be offering you one for download - not in my case - but the folks from Archlinux packaged the client and under sources there are is a .DEB package you can download.

@kayrus
Copy link
Owner

kayrus commented Nov 19, 2021

@karlitos Thanks for your feedback. Unfortunately I don't have enough time to work on gof5 right now. Unlike official F5 VPN client, gof5 is an open source project and you're free to improve it. I'd recommend you to take a look on the login logic and change it accordingly:

func login(c *http.Client, server string, username, password *string) error {

Feel free to submit a PR.

@cnpog
Copy link

cnpog commented Dec 1, 2021

I have the same problem. It is linked to a certificate check that happens after login. However it is only done on windows and macOS. So I wrote a little program that does the login automatically through a chrome browser and extracts the sessionID for me. Not sure I this is doable in gof5, because there is javascript that needs to run.

@Peter-Ries
Copy link

@karlitos - obviously we're in the same company? I'm using the tui.com server as well. It used to work fine until ~ mid of April. Then there was an update to f5fpc. Now I neither can login with current nor the previous f5fpc. Maybe it was with another update of arch/endeavur packages? I don't know. There were too many with arch ;)

I now tried to connect with gof5 - does not work, too...
I get:
2022/04/27 18:25:26 Logging in...
2022/04/27 18:25:27 wrong response code on profiles get: 404

Only windows f5 BIG IP client still works, but I don't wat to use the company's Wndows Laptop.

Can you confirm that you cannot connet to secure-gateway.tui.com anymore? Or does it work?

Thanks & Regards
Peter

@karlitos
Copy link
Author

@Peter-Ries You'r right, we work for the same company. I wrote you a message over the internal chat, let's continue there

@kayrus
Copy link
Owner

kayrus commented Apr 27, 2022

@Peter-Ries you're right, if login pattern was changed the session argument is the only solution for now.

@Rffrench
Copy link

Openconnect apparently supports f5:

echo MRHSession=0123456789abcdef0123456789abcdef | sudo openconnect --protocol=f5 --cookie-on-stdin SERVERNAME

@heavyimage
Copy link

This works great! Thanks @Rffrench

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants