Conexion a pagina web con contraseña (java)

Iniciado por Mivi, 31 Mayo 2017, 10:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Mivi

Buenos días. Llevo un tiempo intentando acceder a una pagina web (requiere usuario y contraseña) desde java para obtener datos de su html.

He conseguido, acceder a la pagina y realizar la conexión con la misma. El problema es que guarda el html de la página de inicio (pagina en la que aparecen el usuario y la contraseña) en vez de la pagina que se obtiene tras validar la contraseña.

Adjunto el código para ver si alguien es capaz de resolver el problema. :-(

Muchisimas gracias!!
P.d: soy novata en java jeje


Código (java) [Seleccionar]
   public static void main(String[] args) {

       try {
           URL url = new URL (" ");
           String encoding = Base64.encode("username:password".getBytes(StandardCharsets.UTF_8));
           
           HttpURLConnection connection = (HttpURLConnection) url.openConnection();
           connection.setRequestMethod("POST");
           connection.setDoOutput(true);
           connection.setRequestProperty  ("Authorization", "Basic " + encoding);
           InputStream content = (InputStream)connection.getInputStream();
           BufferedReader in   =
               new BufferedReader (new InputStreamReader (content));
           String line;
           while ((line = in.readLine()) != null) {
               System.out.println(line);
           }
       } catch(Exception e) {
           e.printStackTrace();
       }
       JOptionPane.showMessageDialog(null,"Operación realizada correctamente");
   }



· Los códigos deben ir en etiquetas GeSHi
· No se debe hacer doble post
>aquí las reglas del foro
-Engel Lex

animanegra

Estas realizando la autenticacion basic que es un proceso de autenticacion del servidor, y tu quieres realizar un proceso de autenticacion del formulario de POST. Son cosas totalmente diferentes.

Tienes que mirar como rellenar las variables de POST, primero deberas coger el formulario de login y ver como se llaman esas variables, y despues meter en la paeticion dichas variables POST con los valores correctos.

Si estas utilizando un usuario y password importante, ten en cuenta que hasta ahora estabas haciendo peticiones que todo el mundo con un snifer podria haber visto dentro de tu red. Te recomendaria cambiar el usuario y password de tu sistema porque has podido exponer tu password.

No se si se ha entendido lo que he explicado, si hay duda me comentas.

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

Mivi

Gracias Animanegra!

No entiendo muy bien de qué me hablas... ¿Sería mucho pedir que me pusieras un ejemplo por favor? No estoy muy familiarizada con Java...

Muchas gracias!! :D

animanegra

Igual primero lo básico. No vaya a ser que el problema no sea solo el Java.
¿Sabes como funcionan los procesos de autenticación POST o GET, como saber las variables que utilizará el servidor para utilizar la información de usuario y como funcionan las sesiones en servidores web?

42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.

Mivi

Sí, he visto la teoría pero no sé implementarlo...