spring boot interceptor configuration

1. Add the link to be intercepted in the spring boot configuration file application.properties

com.url.interceptor=/user/test

2. Write the interceptor code and create the UrlInterceptorUtil class

 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. Configure spring boot interception

import org.springframework.context.annotation.Configuration;
 import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
 // Mark this file as a configuration item , spring boot will scan the configuration. This annotation is similar to the previous configuration using xml 
@Configuration
 public  class CustomWebMvcConfigurerAdapter extends WebMvcConfigurerAdapter {
    @Override
    public  void addInterceptors(InterceptorRegistry registry) {
         // Intercept all requests 
        registry.addInterceptor( new UrlInterceptorUtil()).addPathPatterns("/**" );
    }
}

 

 

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324812218&siteId=291194637