/ / faça logout de um id de sessão selecionado de um View no spring mvc - java, spring, spring-mvc, spring-security, jstl

fazer o logout de um id de sessão selecionado de um View no spring mvc - java, spring, spring-mvc, spring-security, jstl

Não sei se os títulos dizem o que estou procurando. Basicamente eu tenho uma tabela que mostra as sessões atuais. Eu gostaria de poder alterar seu status e registrá-los. Este é o código JSTL:

<div id="users_table_div">
<table id="box-table" style="width: 690px">
<thead>
<tr>
<th>IP</th>
<th>USER NAME</th>
<th>LAST ACTIVITY</th>
<th>LOGIN STATUS</th>
</tr>
</thead>
<tbody>
<c:forEach var="userDetail" items="${userSessionData}">
<tr>
<td><c:out value="${userDetail.ip}"/></td>
<td><c:out value="${userDetail.username}"/></td>
<td><c:out value="${userDetail.lastActivity}"/></td>
<td><a href="logoutUser(<c:out value="${userDetail.sessionId}"/>)"><img src="/images/images/sign-out.png" /></a></td>
</tr>
</c:forEach>
</tbody>
</table>
</div>

Atualmente eu configurei uma função javascript no sessionId, mas pode haver outra maneira de efetuar logout de um usuário selecionado pelo seu sessionId usando o Spring Security MVC.

Então, a partir do controlador, recebo dados de sessão diferentes de todos os usuários. IP, nome de usuário, LastActivity e seu SessionId (para desconectá-los)

Existe uma maneira legal de gerenciar isso?

Respostas:

2 para resposta № 1

Isso já foi resolvido.

Apenas no caso de outro estar sob o mesmo problema:

Acabei de fazer outro @RequestMapping no Controller com o sessionId passado da view como o seguinte:

<a href="<c:url value="/endsession?sessionId=${userDetail.sessionId}" />">

Então, no Controller, o código era muito simples:

@RequestMapping(value="/endsession", method = RequestMethod.GET)
public String endSession(String sessionId, Principal principal) {
logger.info("Removing sessionID = " + sessionId);
sessionRegistry.getSessionInformation(sessionId).expireNow();

return "activeusers";
}

E taraam: D

Espero que ajude os outros também.