Loguearse en un foro SMF

Librerias necesarias

  • commons-httpclient-3.0-rc4
  • commons-logging
  • commons-codec-1.3
  • import java.io.IOException;
    import org.apache.commons.httpclient.Cookie;
    import org.apache.commons.httpclient.HttpClient;
    import org.apache.commons.httpclient.HttpException;
    import org.apache.commons.httpclient.HttpStatus;
    import org.apache.commons.httpclient.methods.PostMethod;
    /**
     * @author Leyer
     */
    public class SMF {
    	        
    	protected  HttpClient client = new HttpClient();
    
    	public static final String USER ="user";
    	public static final String PASSWORD="passwrd";
    
    	public static final int REDIRECT = HttpStatus.SC_MOVED_TEMPORARILY;
    	
    	private boolean login = false;
    	
    	public boolean isLogin(){
    		return login;
    	}
    	/**
    	 * Inicia sesion
    	 * 
    	 * @param formAction Accion del formulario
    	 * @param user       Nombre de Usuario
    	 * @param password   Contrasena
    	 * @param minutes    Duracion de la sesion en minutos
    	 * 
    	 * @return boolean
    	 */
    	public boolean login(String formAction,String user,String password,int minutes){
    		PostMethod postMethod = new PostMethod(formAction);
    		if(user!=null&password!=null&&minutes>0){
    			postMethod.addParameter(USER, user);
    			postMethod.addParameter(PASSWORD,password);
    			postMethod.addParameter("cookielength",String.valueOf(minutes));
    			int statusCode = -1;
    			try {
    				statusCode = client.executeMethod( postMethod );
    				if(statusCode == REDIRECT){
    					postMethod.releaseConnection();
    					login = true;
    				   }
    			} catch (HttpException e) {e.printStackTrace();
    			} catch (IOException e)   {e.printStackTrace();
    			}
    		}else{
    			System.err.println("Datos no validos");
    		}
    		return login;
    	}
    	public Cookie[] getCookies(){
    		if(isLogin()){
    			return client.getState().getCookies();
    		}else{
    			System.err.println("No te has logueado");
    			return null;
    		}
    	}
     public static void main( String[] args ) {
      //<form action="http://foro.elhacker.net/login2.html" method="post" 
       String formAction = "http://foro.elhacker.net/login2.html";
       SMF smf=new SMF();
       boolean login=smf.login(formAction,"user", "password",90);
       if(login){
    	 System.out.println("Te has logueado correctamente!");  
       	 }else{
          System.err.println("usuario o contrasena incorrectos");
       	 }
       }
    }
    
    Anuncios

    Responder

    Introduce tus datos o haz clic en un icono para iniciar sesión:

    Logo de WordPress.com

    Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

    Imagen de Twitter

    Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

    Foto de Facebook

    Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

    Google+ photo

    Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

    Conectando a %s

    A %d blogueros les gusta esto: