学习jpetstore的SignonInterceptor类
2011年07月01日
public class SignonInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
UserSession userSession = (UserSession) WebUtils.getSessionAttribute(request, "userSession");
if (userSession == null) {
String url = request.getServletPath();
String query = request.getQueryString();
ModelAndView modelAndView = new ModelAndView("SignonForm");
if (query != null) {
modelAndView.addObject("signonForwardAction", url+"?"+query);
}
else {
modelAndView.addObject("signonForwardAction", url);
}
throw new ModelAndViewDefiningException(modelAndView);
}
else {
return true;
}
}
}
通过WebUtils.getSessionAttribute(request, "userSession");得到session中的用户信息,if (userSession == null)为空则取得用户的url和query一起转到SignonForm页面 短短的几行代码就解决了简单的安全访问问题 防止用户不通过登录访问安全性较高的页面 同时保存用户请求的url信息 以便登录后直接跳到用户需要访问的url
2011年07月01日
public class SignonInterceptor extends HandlerInterceptorAdapter {
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
UserSession userSession = (UserSession) WebUtils.getSessionAttribute(request, "userSession");
if (userSession == null) {
String url = request.getServletPath();
String query = request.getQueryString();
ModelAndView modelAndView = new ModelAndView("SignonForm");
if (query != null) {
modelAndView.addObject("signonForwardAction", url+"?"+query);
}
else {
modelAndView.addObject("signonForwardAction", url);
}
throw new ModelAndViewDefiningException(modelAndView);
}
else {
return true;
}
}
}
通过WebUtils.getSessionAttribute(request, "userSession");得到session中的用户信息,if (userSession == null)为空则取得用户的url和query一起转到SignonForm页面 短短的几行代码就解决了简单的安全访问问题 防止用户不通过登录访问安全性较高的页面 同时保存用户请求的url信息 以便登录后直接跳到用户需要访问的url
本文详细解读了jpetstore框架中用于实现安全访问的SignonInterceptor类,通过检查session中用户信息,确保只有登录用户才能访问受保护页面,并记录未登录用户请求的URL,便于登录后直接跳转。

被折叠的 条评论
为什么被折叠?



