Foros del Web » Programación para mayores de 30 ;) » Java »

Loguear en foro Foroactivo desde Java

Estas en el tema de Loguear en foro Foroactivo desde Java en el foro de Java en Foros del Web. Hola, El hecho está que estoy desarrollando una aplicación en Java para los usuarios de mi foro de foroactivo y hasta ahora, había creado una ...
  #1 (permalink)  
Antiguo 04/08/2011, 12:47
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta Loguear en foro Foroactivo desde Java

Hola,

El hecho está que estoy desarrollando una aplicación en Java para los usuarios de mi foro de foroactivo y hasta ahora, había creado una base de datos (externa a foroactivo) donde almacenaba los nombres/contraseñas de ellos para poder entrar en un loguin previo antes de ejecutar la aplicación principal.

La idea actual seria cambiar esto: No es conveniente que los usuarios tengan 2 cuentas (una en el foro y otra en la base de datos externa) además que cuando quieres ponerte en contacto con ellos, el trámite se puede hacer más largo. Por lo tanto, lo que quisiera hacer seria simplemente que con la aplicación en Java me comprobase si el username/password introducidos por el usuario son correctos en el foro de foroactivo y seguidamente pudieran utilizar la aplicación con normalidad.

Si alguien supiera resolver el problema y me ayudara, se lo agradecería muchísimo!
La información que he acabado encontrando (la adjunto al final) no me ha resuelto el problema.

Muchas Gracias por avanzado!

Links [ Información ]:

http://www.forodejava.com/showthread.php/4067-Acceder-a-p%C3%A1ginas-web-con-Java-que-tengan-login-y-password

http://www.java2s.com/Code/Jar/ABC/Downloadcommonshttpclient301jar.htm

http://svn.apache.org/viewvc/httpcomponents/oac.hc3x/trunk/src/examples/BasicAuthenticationExample.java?revision=608014&vi ew=markup

http://www.dreamincode.net/forums/topic/81970-login-to-site-with-java-code/

http://www.coderanch.com/t/524061/open-source/Java-program-Login-website-url

http://www.dreamincode.net/forums/blog/114/entry-2715-login-to-a-website-from-java/
  #2 (permalink)  
Antiguo 04/08/2011, 18:36
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Exclamación Respuesta: Loguear en foro Foroactivo desde Java

Siento insistir, pero me interesaría tener una respuesta lo antes posible.

Muchísimas gracias de nuevo!
  #3 (permalink)  
Antiguo 05/08/2011, 08:22
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 1 mes
Puntos: 188
Respuesta: Loguear en foro Foroactivo desde Java

¿Estas usando MySQL como motor de bases de datos?

>>> has una interfaz gráfica que conecte a mysql de forma remota (por ejemplo)
> Te haces tus metodos para validar que el username y password sea correcto
> Das entrada a tu programa.

Hay otra forma para validar que el username y password sin usar tu base de datos ni la base de datos de foroactivo, esto ultimo imposible.

Supongamos que obtienes el código fuente de tu propio foro pero desde el navegador del usuario (le pides al usuario que tenga su sesion iniciada), exploras el código fuente en busca de su nombre de usuario. Si lo encuentras, le das entrada a tu programa.

Ovbiamente si el usuario inicio sesion en el foro, previamente a la exploracion del código fuente, es porque tiene el password.

Experiencia propia, yo así lo hice hace varios años usando PHP. Con java tambien es posible, buscale un poquito por google.

Por ejemplo, encontre esto:

http://nopaste.info/9c746308bf.html

Hay muchas formas en la que puedes leer el codigo fuente de una pagina web.

Hasta luego.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #4 (permalink)  
Antiguo 05/08/2011, 08:48
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Loguear en foro Foroactivo desde Java

Y conectarte a la página del foro inicial (internamente, sin que lo vea el usuario), loguear y comprobar la respuesta del servidor del foro, ¿no es posible en Java?

Por ejemplo, he creado una cuenta con los siguientes datos:
Username: prueba
Password: foro123

Web de un foro de foroactivo: http://lineage2fenix-tk.foroactivo.com/login

Mi objetivo es: conectarme (de la misma forma como lo hacían en los links que adjunté en el primer post) y entonces verificar si realmente el nombre de usuario y password son correctos.

Foroactivo no me permite obtener la base de datos ni saber nada al respecto más que el nombre de usuario de los miembros del foro, por lo tanto, lo que pensé que seria una solución (aunque llevo ya tiempo en ello y no lo resuelvo) seria "simular el mismo procedimiento que un usuario logueando en el foro" y entonces a partir de la respuesta del foro (con los cookies o lo desconozco cómo...) saber si el usuario introdujo correctamente o incorrectamente la contraseña.

Puedes usar la cuenta de usuario que dije, la cree para testear, si quieres.


Muchísimas gracias por la ayuda!

Última edición por Sheyk; 05/08/2011 a las 08:54
  #5 (permalink)  
Antiguo 05/08/2011, 10:01
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 1 mes
Puntos: 188
Respuesta: Loguear en foro Foroactivo desde Java

Varás, De que se puede se puede.

Sin embargo, no necesitas obtener el username y password con un JFORM, además que ésto genera desconfianza en los usuarios como yo, por ejemplo, que sabemos que foroactivo no te presta el control de ningun tipo de coneccion a la DB ni ofrece ninguna API para verificar conexiones validas, --- yo podría pensar que hay malas intenciones en el software, por ejemplo.

Entonces, yo haría lo siguiente.

>>>En mi foro pongo: Conectate para descargar el programa
>>> Con una sencilla validacion utilizando las etiquetas de templante de Foroactivo por ejemplo: {USERNAME}

Si existe un {USERNAME} diferente de invitado muestro el link, esta una opcion tambien esta el bbcode llamado [hidden] Que solo muestra el contenido a usuarios que comentan un tema, podrias con los permisos de los temas - restringir que solo usuarios conectados hagan un comentario. Y LISTO.

>>>El usuario ejecuta el .jar, y le aparece un boton que dice "Validar cuenta". Con esto realizo el metodo de buscar en el código fuente de mi foro de foroactivo algun nombre de usuario explorando en el. Si obtengo un nombre de usuario diferente a "Invitado" entonces le doy entrada al programa, creas un archivo en el ordenador del usuario con una llave para que la proxima vez que abra el programa desde esa cuenta de usuario del SO, ya no tenga que hacer este proceso de validación.

Esta claro que el usuario no va conocer éste proceso, ya que se conecto al foro para descargar su aplicacion entonces la sesion seguirá iniciada y no tendras problemas para obtener el código fuente de una de las paginas del foro en donde se muestre el nombre de usuario.

Esto es una forma.

* De la misma manera, puedes solicitar usuario y contraseña desde tu aplicacion, como te comentaba arriba. Aqui es un poco mas de código, necesitarás enviar por POST estos 2 datos mas la key que genera automaticamente tu foro de foroactivo cada cierto tiempo (La encuentras en un campo hidden del formulario login) y tan solo manejar las redirecciones. Con explorar el codigo fuente puedes deteptar si se hizo la sesion o no.

Esta última es poquito mas laboriosa en codificar y creo que es ilegal.

Bueno, un saludo.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.
  #6 (permalink)  
Antiguo 05/08/2011, 10:26
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Loguear en foro Foroactivo desde Java

[NOTA: he mandado este post y después he visto lo que acababas de enviar, ahora lo leo. No obstante, creo que continua siendo válida]

Hola New,

Otra duda, he intentado lo que me comentaste, lo que pasa es que aunque me conecte "manualmente" al foro con el Firefox, después al descargar la página principal me trata como si no estuviese conectado (es decir, que no me guarda los cookies conforme estoy conectado con la cuenta o bien no tienen el mismo directorio de cookies Firefox y Java)

He utilizado el código que me pasaste esta vez:
Cita:
import java.net.*;
import java.io.*;


public class Main {

public static void main(String[] args) {
String nextLine;
URL url = null;
URLConnection urlConn = null;
InputStreamReader inStream = null;
BufferedReader buff = null;

try{
// Create the URL obect that points
// at the default file index.html
url = new URL("http://lineage2fenix-tk.foroactivo.com/login");
urlConn = url.openConnection();
inStream = new InputStreamReader(
urlConn.getInputStream());
buff= new BufferedReader(inStream);

// Read and print the lines from index.html
while (true){
nextLine =buff.readLine();
if (nextLine !=null){
System.out.println(nextLine);
}
else{
break;
}
}
}

catch(MalformedURLException e){
System.out.println("Please check the URL:" +e.toString() );
}

catch(IOException e1){
System.out.println("Can't read from the Internet: "+e1.toString() );
}
}

}
Muchas gracias por la atención.

Última edición por Sheyk; 05/08/2011 a las 10:36
  #7 (permalink)  
Antiguo 05/08/2011, 13:11
 
Fecha de Ingreso: agosto-2011
Mensajes: 5
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Loguear en foro Foroactivo desde Java

Cita:
Si existe un {USERNAME} diferente de invitado muestro el link, esta una opcion tambien esta el bbcode llamado [hidden] Que solo muestra el contenido a usuarios que comentan un tema, podrias con los permisos de los temas - restringir que solo usuarios conectados hagan un comentario. Y LISTO.
¿Cómo lo haces entonces para ver qué usuario está conectado si cuando te conectas vía Java parece que uses otro explorador web?

(El código que estoy usando es el de encima)

Gracias de nuevo
  #8 (permalink)  
Antiguo 05/08/2011, 13:37
 
Fecha de Ingreso: septiembre-2007
Ubicación: PyRoot
Mensajes: 1.515
Antigüedad: 17 años, 1 mes
Puntos: 188
Respuesta: Loguear en foro Foroactivo desde Java

Hola que extraño crei que te habia respondido, creo que te respondi en el tema de otro usuario haha como abro todas las nuevas notificaciones en pestañas haha.

Bueno ahi te va de nuevo.

Lo que pasa es que no se obtiene acceso a las cookies o sesiones del navegador, porque el código java no se está ejecutando en el navegador.

Yo creo que lo mas conveniente será hacer la segunda opcion, la que marque con un asterisco

Sobre el código que te he dado, yo lo hice pensando en un ejemplo no pensando en que lo fueras a usar, bueno tan solo es para darte una idea de como puedes leer el código fuente una vez obtenido todo el proceso. Te recomiendo lo codifiques tu desde el principio conciderando tus necesidades

Te dire la metodología que yo usaría para resolver éste problema.

>>> Nivel de complejidad : media.

1.- Creas tu formulario en tu aplicacion Java y solicitas username y password.
2.- Vas (desde InputStreamReader) a la direccion de tu foro que contiene el formulario del login para obtener el valor de las llaves de los campos ocultos del formulario que realiza el login (SOLO en caso de que existan estas llaves, esto depende de la version del foro y tipo, por ejemplo si es version PHPbb2 no usa estas llaves y por lo tanto has caso omiso de este punto.)

3.- Comienzas a utilizar este nombre de usuario y password para mandarlo por post a la direccion que indica el formulario del login, controlando las posibles redirecciones,

Esto es la parte de mayor complejidad, ya que deverás observar el flujo para identificar las redirecciones para que al momento de obtener el código fuente lo obtengas del documento final y no de uno anterior.

Te comentaré con más detalle esto mas abajo.

4.- Por ultimo, deberás leer el código fuente y valerte de las funciones para extraer cadenas en java, y encontrar una linea que muestre el nombre de usuario o el mensaje de error.

Depende de lo que recibas podrás ver si se ha hecho sesion o no.
---------------------------------------------

Te platico, yo esto lo había hecho en PHP como te comento hace varios años, En php es facilisimo utilizando la funcion gets_file_open y las redirecciones que esta funcion ofrece.

En java, esto de las redirecciones no se si existan, si es posible o no. Pero supongo que si.

Si no es así, hay 1 forma que se me ocurren para darles control a las redirecciones aunque sería algo bastante rebuscado y codificarlo... tan interesante como desactivar una bomba.

Habrás notado la exageración y el drama en esto último, solo es una pequeña broma no hay de que asustarse.

Si se puede hacer, de una o de otra forma - Asi que tampoco hay problema.

Ciertamente es un proyecto entretenido, en la investigación te podrías llevar semanas.

Pero bueno, adelante.

P.D: Si lo haces en PHP huy, te tardas menos de 15 minutos, al rededor de 5 lineas de código para el motor y bueno el resto para buscar la cadena que intereza como por ejemplo: la que da en HTML la bienvenida al usuario con sesión iniciada.

Código PHP:
Ver original
  1. <p> Bienvenido <b>Usuario</b></p>

Si sabes PHP y tienes la posibilidad de comunicarte desde tu aplicacion Java a un script de PHP te aseguro que facilitas las cosas en un gran porcentaje.
__________________
Si quieres agradecer el triangulo obscuro de la parte derecha debes presionar +.

Etiquetas: foroactivo, loguearse, website
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:09.