Codice completo

Listato 4. Gestisce l'autenticazione degli utenti

//UserManagerConcrete.javapackage
it.html.user;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* @author Pasquale Congiustì
* Realizzazione di UserManager
*/

public class UserManagerConcrete implements UserManager {
    //La classe attraverso la quale gestiamo l'accesso al database
    private Connection conn;
    public UserManagerConcrete(Connection conn){
        this.conn=conn;
    }
    
    public User login(String user, String password) throws LoginException, SQLException {
        User toRet=null;
        String sql="SELECT * FROM user where uid='"+user+"' AND password='"+password+"'";
        Statement st=conn.createStatement();
        ResultSet rs=st.executeQuery(sql);
        if (rs.next()){
            //Se user e password coincidono, l'utente esiste
            String uid=rs.getString("uid");
            String pwd=rs.getString("password");
            String mail=rs.getString("email");
            double space=rs.getDouble("disk");
            toRet=new User(space,mail,pwd,uid);
        }
        
        //Chiusura dei flussi aperti
        rs.close();
        st.close();
        if (toRet==null){
            //Nessun utente è stato trovato!
            throw new LoginException("Autenticazione fallita.");
        }
        return toRet;
    }
}