【发布时间】:2016-05-12 13:56:31
【问题描述】:
我正在开发一个 spring web 项目并创建了 HttpSession 来验证登录和访问 jsp 页面。我没有使用标准的安全弹簧技术。但是,我在登录时设置会话并在每个 webService 调用上匹配此会话。 现在在注销时,我想在登录屏幕上重新分配用户并销毁会话,以便在没有重新登录的情况下无法访问任何内容。我不知道如何销毁会话。
// 这是设置会话的代码
StaffModel record1 = (StaffModel) data.get("records"); // separating records
if(record1 != null)
{
SessionData sessionData = new SessionData();
sessionData.setMobileNo(record1.getMobileNo());
sessionData.setCityName(record1.getCity());
sessionData.setUserName(record1.getFirstName());
sessionData.setUserRole(record1.getRole());
sessionData.setSessionID(UUID.randomUUID());
sessionObj.setAttribute("SessionData" , sessionData); // setting session Data
}
// 在 jsp 中我正在访问这些会话
<script>
var sessionData;
var sUserName;
var sMobileNo;
var sUserRole;
var sCityName;
var sSessionId;
function sessionCall()
{
sUserName = '<% SessionData obj = (SessionData)session.getAttribute("SessionData");
out.print(obj.getUserName());
%>';
sMobileNo = <% out.print(obj.getMobileNo()); %>;
sUserRole = '<% out.print(obj.getUserRole()); %>';
sSessionId = '<% out.print(obj.getSessionID()); %>'
sCityName = '<% out.print(obj.getCityName()); %>';
sessionData =
{
"mobileNo" : sMobileNo,
"cityName" : sCityName,
"userName" : sUserName,
"userRole" : sUserRole,
"sessionID": sSessionId
};
document.getElementById("staffName").innerHTML=sUserName;
document.getElementById("staffRole").innerHTML=sUserRole;
}
</script>
问题:单击注销按钮会破坏 HttpSession
请帮忙
【问题讨论】: