/**
* session工具类
*
*/
//FIXME 重点是解耦合
public class WebUtil {
/**
* 获取request
*/
public static HttpServletRequest getRequet() {
ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
final HttpServletRequest request = requestAttributes.getRequest();
return request;
}
/**
* 获得request中的session
* @return
*/
public static HttpSession getSession() {
return getRequet().getSession();
}
}
调用的时候接口controller
@RequestMapping("/login")
public ResoutObj login(String user, String pass) {
Subject subject = SecurityUtils.getSubject();
UsernamePasswordToken token = new UsernamePasswordToken(user, pass);
try {
subject.login(token);
//把用户信息存入session中
ActiveUser activeUser = (ActiveUser) subject.getPrincipal();
WebUtil.getSession().setAttribute("user",activeUser.getUser());
return ResoutObj.LOGIN_SUCCESS;
} catch (UnknownAccountException e) {
return ResoutObj.LOGIN_ERROR_PASS;
} catch (AuthenticationException e) {
return ResoutObj.LOGIN_ERROR_PASS;
}
}