0

我不知道标题是否说明了我在寻找什么。基本上我有一个显示当前登录会话的表。我希望能够更改他们的状态并将其注销。这是 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/sign-out.png" /></a></td>
                      </tr>
                   </c:forEach>
                </tbody>
                </table>
            </div>

目前我已经在 sessionId 中设置了一个 javascript 函数,但是可能还有另一种方法可以使用 spring security MVC 通过其 sessionId 注销选定的用户。

所以从控制器,我从所有用户那里得到不同的会话数据。IP、用户名、LastActivity 和它们的 SessionId(将它们注销)

有没有很好的方法来管理这个?

4

1 回答 1

2

这已经解决了。

以防万一其他人遇到同样的问题:

我刚刚使用从视图传递的 sessionId 在控制器中创建了另一个 @RequestMapping,如下所示:

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

然后在Controller中代码非常简单:

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

    return "activeusers";
}

和塔拉姆:D

希望它对其他人也有帮助。

于 2013-04-09T19:00:15.067 回答