单点登录:实质就是传一个登录id过来,到数据库中查出此id对应的用户信息,并将用户信息放入session中。
<span "><strong> </strong>/**
* 单点登录
*
* @param loginId
* @param session
* @return
*/
@Outer
@RequestMapping("/login")
public ModelAndView login(String loginId, HttpSession session) {
// 登录跳转页面
String view = "common/login";
// 单点登录信息
if (StringUtils.isBlank(loginId)) {
return new ModelAndView(view, "message", "用户信息丢失,请重新登录!");
}
// 获取当前登录用户信息
UserInfo userInfo = userService.getUserInfo(loginId);
if (userInfo == null) {
return new ModelAndView(view, "message", "用户信息不存在,请重新登录!");
}
// 当前系统只支持个体户用户和个人用户登录
// String userType = userInfo.getUserType();
// if (!GlobalConstants.USER_TYPE_PE.equals(userType) && !GlobalConstants.USER_TYPE_PERSONAL.equals(userType)) {
// return new ModelAndView(view, "message", "当前系统只支持个体户用户和个人用户登录!");
// }
// 将当前登录用户信息放入session
session.setAttribute(GlobalConstants.SESSION_USER, userInfo);
// 转至登录跳转页面
return new ModelAndView(view);
}
/**
* 注销登录
*
*/
@RequestMapping("/logout")
public String logout(HttpSession session) {
// 获取当前登录用户信息
UserInfo user = (UserInfo) session.getAttribute(GlobalConstants.SESSION_USER);
// 清除单点登录信息
try{
userService.deleteLoginInfo(user.getLoginId());
}catch(Exception e){
//
}
// 清除session中的用户数据
Enumeration<?> enu = session.getAttributeNames();
while (enu.hasMoreElements()) {
session.removeAttribute((String) enu.nextElement());
}
return "redirect:" + ConfigConstants.getInstance().get("logout.url");
}</span>
来源:CSDN
作者:Happywuw
链接:https://blog.csdn.net/Happy_wu/article/details/52673419