64 lines
2.1 KiB
Plaintext
Executable File
64 lines
2.1 KiB
Plaintext
Executable File
package com.fp.general.security.rules;
|
|
|
|
import javax.persistence.EntityManager;
|
|
import javax.persistence.Query;
|
|
|
|
import com.fp.common.exception.ExceptionHandler;
|
|
import com.fp.common.logger.APPLogger;
|
|
import com.fp.persistence.commondb.PersistenceHelper;
|
|
import com.fp.persistence.commondb.helper.FormatDates;
|
|
|
|
/**
|
|
* Clase que cierra todas las conexiones abiertas en el servidor
|
|
* @author scastillo
|
|
*/
|
|
public class CloseAllSessions {
|
|
|
|
/**
|
|
* Almacena una instancia de CloseAllSessions.
|
|
*/
|
|
private static CloseAllSessions cache;
|
|
|
|
/**
|
|
* Entrega una instancia de CloseAllSessions.
|
|
* @return DataHelper
|
|
*/
|
|
public static CloseAllSessions getInstance() {
|
|
if (cache != null) {
|
|
return cache;
|
|
}
|
|
synchronized (CloseAllSessions.class) {
|
|
if (cache == null) {
|
|
cache = new CloseAllSessions();
|
|
}
|
|
}
|
|
return cache;
|
|
}
|
|
/**
|
|
* Sentencia SQL que caduca las sesiones
|
|
*/
|
|
private static final String SQL =
|
|
"update TsafeUserSession set pk.dateto = :dateto where pk.dateto = :datetofilter and webserverip = :webserverip";
|
|
|
|
/**
|
|
* Metodo que cierra las sesiones abiertas en el servidor
|
|
* @param host
|
|
* @throws Exception
|
|
*/
|
|
public void expireSessions(String host) throws Exception {
|
|
EntityManager em = PersistenceHelper.getEntityManager();
|
|
try {
|
|
Query query = em.createQuery(SQL);
|
|
query.setParameter("dateto", FormatDates.getInstance().getDataBaseTimestamp(em));
|
|
query.setParameter("datetofilter", FormatDates.getDefaultExpiryTimestamp());
|
|
query.setParameter("webserverip", host);
|
|
query.executeUpdate();
|
|
} catch (Exception e) {
|
|
ExceptionHandler eh = new ExceptionHandler(e, "es");
|
|
APPLogger.getLogger().error("User Message:==>\n" + eh.getUserMessage());
|
|
APPLogger.getLogger().error("Tech Message:==>\n" + eh.getTechnicalMessage());
|
|
APPLogger.getLogger().error("Stack Message:==>\n" + eh.getStackTrace());
|
|
}
|
|
}
|
|
}
|