AutenticazioneServiceImpl.java
package model.services;
import model.DAO.DAO;
import model.DAO.UtenteDAO;
import model.beans.Utente;
import javax.servlet.http.HttpSession;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class AutenticazioneServiceImpl implements AutenticazioneService {
/**
* Wrapper di UtenteDAO.
*/
private final DAO<Utente> dao;
/**
* Costruttore di AutenticazioneService.
* @param utenteDAO istanza di UtenteDAO
*/
public AutenticazioneServiceImpl(final DAO<Utente> utenteDAO) {
this.dao = utenteDAO;
}
/**
* Costruttore di AutenticazioneService.
*/
public AutenticazioneServiceImpl() {
this.dao = new UtenteDAO();
}
/**
* @param utente Istanza di Utente che desidera fare il login
* @return un'instanza della classe utente
*/
@Override
public Utente login(final Utente utente) {
if (utente == null) {
throw new IllegalArgumentException("Argument must be not null");
} else {
UtenteDAO userDao = (UtenteDAO) dao;
Utente ut = userDao.doLogin(utente);
if (ut == null) {
return null;
} else {
if (ut.getDataBan() != null) {
if (ut.getDataBan().isBefore(LocalDateTime.now()
.truncatedTo(ChronoUnit.MINUTES))) {
ut.setDataBan(null);
userDao.update(ut);
} else {
ut.setIdUtente(-1);
}
return ut;
} else {
return ut;
}
}
}
}
/**
* @param utente Istanza di Utente che desidera fare la registrazione
* @return true se l'operazione va a buon fine, false altrimenti
*/
@Override
public boolean registrazione(final Utente utente) {
if (utente == null) {
throw new IllegalArgumentException("Argument must be not null");
} else {
return dao.save(utente);
}
}
/**
* Esegue il logout dell'utente presente in sessione.
* @param session la sessione da invalidare
*/
@Override
public boolean logout(final HttpSession session) {
if (session == null) {
return false;
} else {
session.invalidate();
return true;
}
}
}