Estou com uma seguinte dúvida eu trabalho no ambiente que utiliza primefaces e liferay, estou tentando fazer que o java fique verificando se a sessão do usuário ainda está aberta ou não.
E antes que a sessão acabe preciso setar algo no banco que está relacionado com o usuário e a atividade que ele está fazendo no momento no portlet.
Eu já vi que da para pegar a sessão com o seguinte código
FacesContext facesContext = FacesContext.getCurrentInstance();
PortletRequest request = (PortletRequest) facesContext.getExternalContext().getRequest();
PortletSession session = request.getPortletSession();
e consigo acessar aos seguintes métodos
session.getMaxInactiveInterval();
session.getLastAccessedTime();
session.getId();
e eu faço um calculo para verificar se o tempo passado desde que logou já passou do tempo maximo que uma sessão pode durar
if(((Calendar.getInstance().getTimeInMillis() - session.getLastAccessedTime())/1000) > session.getMaxInactiveInterval())
{
//aqui eu teria que executar os comandos para alterar os itens do banco de dados
}
Alguém saberia uma maneira de me ajudar ?