mirror of
				https://github.com/itsdave-de/dockercompose-guacamole-for-msp-remoteadmin.git
				synced 2025-11-04 01:41:02 -03:00 
			
		
		
		
	better inject
This commit is contained in:
		
							parent
							
								
									373bfe13aa
								
							
						
					
					
						commit
						1460a9efd8
					
				@ -1,25 +1,60 @@
 | 
				
			|||||||
#!/bin/bash
 | 
					#!/bin/bash
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if [ -f /home/guacamole/tomcat/webapps/guacamole/templates.js ]; then
 | 
					if [ -f /home/guacamole/tomcat/webapps/guacamole/templates.js ]; then
 | 
				
			||||||
  cat <<EOF >> /home/guacamole/tomcat/webapps/guacamole/templates.js
 | 
					  cat <<'EOF' >> /home/guacamole/tomcat/webapps/guacamole/templates.js
 | 
				
			||||||
  \$(window).on('load', function() {
 | 
					$(window).on('load', function() {
 | 
				
			||||||
    function getHashParam(param) {
 | 
					  function getHashParam(param) {
 | 
				
			||||||
      var hash = window.location.hash.substr(1);
 | 
					    var hash = window.location.hash.substr(1);
 | 
				
			||||||
      var hashParams = new URLSearchParams(hash.split('?')[1]);
 | 
					    var hashParams = new URLSearchParams(hash.split('?')[1]);
 | 
				
			||||||
      return hashParams.get(param);
 | 
					    return hashParams.get(param);
 | 
				
			||||||
    }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setTimeout(function() {
 | 
					  setTimeout(function() {
 | 
				
			||||||
      var quickconnectValue = getHashParam('quickconnect');
 | 
					    var quickconnectValue = getHashParam('quickconnect');
 | 
				
			||||||
      if (quickconnectValue) {
 | 
					    if (quickconnectValue) {
 | 
				
			||||||
        var \$field = \$('.quickconnect-field');
 | 
					      // Extração dos componentes da URI sem decodificação completa
 | 
				
			||||||
        \$field.val(quickconnectValue);
 | 
					      var baseUri = quickconnectValue.split('?')[0];
 | 
				
			||||||
        \$field.trigger('input');
 | 
					      var queryParams = quickconnectValue.split('?')[1];
 | 
				
			||||||
        \$field.trigger('change');
 | 
					
 | 
				
			||||||
        \$('.quickconnect-button').click();
 | 
					      // Manuseio manual dos parâmetros devido a caracteres especiais
 | 
				
			||||||
 | 
					      var params = queryParams.split('&');
 | 
				
			||||||
 | 
					      var newParams = [];
 | 
				
			||||||
 | 
					      var password = '';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      for (var i = 0; i < params.length; i++) {
 | 
				
			||||||
 | 
					        var param = params[i];
 | 
				
			||||||
 | 
					        var [key, value] = param.split('=');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (key === 'password') {
 | 
				
			||||||
 | 
					          password = param.substring(param.indexOf('=') + 1);
 | 
				
			||||||
 | 
					          // Trata o restante da string como parte do password
 | 
				
			||||||
 | 
					          for (var j = i + 1; j < params.length; j++) {
 | 
				
			||||||
 | 
					            password += '&' + params[j];
 | 
				
			||||||
 | 
					          }
 | 
				
			||||||
 | 
					          break; // exit loop after password is captured
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					          newParams.push(param);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }, 500);
 | 
					
 | 
				
			||||||
  });
 | 
					      // Codificar novamente apenas o campo password
 | 
				
			||||||
 | 
					      if (password) {
 | 
				
			||||||
 | 
					        var encodedPassword = encodeURIComponent(password);
 | 
				
			||||||
 | 
					        newParams.push(`password=${encodedPassword}`);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // Construir a nova URI com o password codificado
 | 
				
			||||||
 | 
					      var formattedValue = `${baseUri}?${newParams.join('&')}`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // Preencher o campo do formulário e disparar eventos
 | 
				
			||||||
 | 
					      var $field = $('.quickconnect-field');
 | 
				
			||||||
 | 
					      $field.val(formattedValue);
 | 
				
			||||||
 | 
					      $field.trigger('input');
 | 
				
			||||||
 | 
					      $field.trigger('change');
 | 
				
			||||||
 | 
					      $('.quickconnect-button').click();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }, 500);
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
EOF
 | 
					EOF
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user