springmvc基于拦截器的身份验证

请求执行如下图:

020253086387177.jpg

需求:拦截未登录的用户访问订单模块。

1.新建LoginInterceptor实现HandlerInterceptor接口(org.springframework.web.servlet.HandlerInterceptor)

package com.kye.Interceptors;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import com.kye.java.User;
import com.kye.utils.Utils;

public class LoginInterceptor implements HandlerInterceptor {

	public boolean preHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler) throws Exception {

		String token = request.getParameter("token");
		User user = Utils.getUserByToken(token);
		if (user == null) {
			response.sendRedirect("/unlogin");
			return false;
		}
		return false;
	}

	public void postHandle(HttpServletRequest request,
			HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
		// TODO Auto-generated method stub

	}

	public void afterCompletion(HttpServletRequest request,
			HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
		// TODO Auto-generated method stub

	}

}

2.在springmvc.xml中配置

<mvc:interceptors>
		<mvc:interceptor>
			<mvc:mapping path="/order/*" />
			<bean class="com.kye.Interceptors.LoginInterceptor"></bean>
		</mvc:interceptor>
	</mvc:interceptors>

 

原文地址:https://www.cnblogs.com/wugang/p/14232337.html