1.在spring boot配置文件application.properties中添加要攔截的連接java
com.url.interceptor=/user/test
2.編寫攔截器代碼 ,建立UrlInterceptorUtil 類web
1 import org.springframework.core.io.ClassPathResource; 2 import org.springframework.core.io.Resource; 3 import org.springframework.core.io.support.PropertiesLoaderUtils; 4 import org.springframework.stereotype.Component; 5 import org.springframework.web.servlet.ModelAndView; 6 import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; 7 8 9 import javax.servlet.http.HttpServletRequest; 10 import javax.servlet.http.HttpServletResponse; 11 import javax.servlet.http.HttpSession; 12 import java.util.Properties; 13 14 @Component 15 public class UrlInterceptorUtil extends HandlerInterceptorAdapter { 16 17 private String noCheckUrls; 18 private static Properties props ; 19 20 @Override 21 public boolean preHandle(HttpServletRequest request, 22 HttpServletResponse response, Object handler) throws Exception { 23 String url=request.getRequestURI(); 24 Resource resource = new ClassPathResource("/application.properties");// 25 props = PropertiesLoaderUtils.loadProperties(resource); 26 noCheckUrls=props.getProperty("com.url.interceptor",""); 27 if(!noCheckUrls.contains(url)){ 28 return true; 29 } 30 HttpSession session=request.getSession(); 31 //業務邏輯處理 32 if (session.getAttribute("User")==null){ 33 34 response.sendRedirect("/index"); 35 return false; 36 } 37 return true; 38 } 39 40 @Override 41 public void postHandle(HttpServletRequest request, 42 HttpServletResponse response, Object o, ModelAndView mav) 43 throws Exception { 44 // System.out.println("postHandle"); 45 } 46 47 @Override 48 public void afterCompletion(HttpServletRequest request, 49 HttpServletResponse response, Object o, Exception excptn) 50 throws Exception { 51 // System.out.println("afterCompletion"); 52 } 53 }
3.配置spring boot攔截spring
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; //標註此文件爲一個配置項,spring boot纔會掃描到該配置。該註解相似於以前使用xml進行配置 @Configuration public class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter { @Override public void addInterceptors(InterceptorRegistry registry) { //對全部的請求進行攔截 registry.addInterceptor(new UrlInterceptorUtil()).addPathPatterns("/**"); } }