比较将用户身份保存到会话并使用拦截器进行授权。
像:
@RequestMapping("/checkLogin.do")
public String checkLogin(Map map, HttpSession httpSession, String username, String password) {
JSONObject userJson = userService.checkLogin(username, password);
if ((Integer) userJson.get("success") == 0) {
httpSession.setAttribute("userinfo", userJson);
return "redirect:/index.do";
} else {
map.put("error", -1);
return "login";
}
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse arg1, Object arg2) throws Exception {
String requestURI = request.getRequestURI();
HttpSession session = request.getSession();
String userinfo= (String) session.getAttribute("userinfo");
if (userinfo!= null) {
return true;
} else {
arg1.sendRedirect("/login.do");
return false;
}
}
使用shiro或spring-security等安全框架的好处是什么?
答案 0 :(得分:0)
简而言之,好处是您可以以多快的速度将与安全相关的需求合并到项目中;基本的安全要求可能是权限管理和基于角色的授权,而更复杂的要求可能是跨平台会话管理。