es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cliente REST de Groovy sin bibliotecas con autenticación básica.

Hola, necesito conectarme a una URL utilizando una autenticación básica con Groovy. Preferiría lograr esto sin utilizar ninguna biblioteca, ya que en nuestro proyecto escaneamos en busca de vulnerabilidades y a veces enfrentamos problemas cuando incluimos una nueva biblioteca. Estaba siguiendo los siguientes ejemplos:

def connection = new URL("https://jsonplaceholder.typicode.com/posts")
    .openConnection() as HttpURLConnection

// establecer algunos encabezados
connection.setRequestProperty('User-Agent', 'groovy-2.4.4')
connection.setRequestProperty('Accept', 'application/json')

// obtener el código de respuesta: envía automáticamente la solicitud
println connection.responseCode + ": " + connection.inputStream.text

Funcionó, pero en mi caso necesito conectarme con una autenticación básica (nombre de usuario y contraseña). No he visto ejemplos relacionados.

¿Alguna idea?

¡Gracias!

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para conectarse a una URL con Autenticación Básica utilizando Groovy, puedes utilizar el siguiente fragmento de código:

    def url = new URL("https://example.com")
    String user = "nombre de usuario"
    String password = "contraseña"
    String authString = "${user}:${password}".getBytes().encodeBase64().toString()
    URLConnection connection = url.openConnection()
    connection.setRequestProperty("Authorization", "Basic " + authString)
    connection.connect()
    

    Este código primero crea un objeto URL utilizando la clase URL, luego establece las variables user y password con las credenciales adecuadas. La variable authString se establece utilizando los métodos getBytes(), encodeBase64() y toString() en el arreglo de bytes.

    Finalmente, se crea una URLConnection utilizando el método openConnection() en el objeto URL. Se establece la cabecera Authorization utilizando setRequestProperty() y se llama al método connect() para establecer la conexión.

    Ten en cuenta que esta implementación utiliza el método encodeBase64() en un arreglo de bytes, el cual está disponible en GDK (Groovy Development Kit) de Groovy, por lo que no se requieren bibliotecas externas.

Comments are closed.