springmvc登录拦截器

来源:互联网 发布:格斗术软件 编辑:程序博客网 时间:2024/05/29 05:06

1、代码部分

package com.fly.handler;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.apache.shiro.SecurityUtils;import org.apache.shiro.session.Session;import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;import com.fly.common.contant.Constants;import com.fly.model.User;public class LoginHandlerInterceptor extends HandlerInterceptorAdapter {/** * @author:fly * session无效验证(shiroSession方式) *  */@Overridepublic boolean preHandle(HttpServletRequest request,HttpServletResponse response, Object handler) throws Exception {String path = request.getServletPath();if(path.matches(Constants.NO_INTERCEPTOR_PATH)){return true;}else{Session shiroSession = SecurityUtils.getSubject().getSession();User user = (User) shiroSession.getAttribute(Constants.CURRENT_USER);if(user==null){response.sendRedirect(request.getContextPath()+"/login");return false;}return true;}}}


 public static final String NO_INTERCEPTOR_PATH = ".*/((login)|(logout)|(code)).*";//不对匹配该值的访问路径拦截(正则)


二、配置文件部分


 <!-- 拦截器配置 -->    <mvc:interceptors>    <mvc:interceptor><mvc:mapping path="/*"/><bean class="com.fly.handler.LoginHandlerInterceptor"></bean></mvc:interceptor>    </mvc:interceptors>


0 0