拦截器
拦截器
先在运行之前拦截所有的程序,然后再放出一些白名单来,springboot中整合了springmvc,里面有HanderInterceptor
package com.cy.store.Interceptor; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class LoginIntercepter implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //有requset对象中提取session HttpSession session = request.getSession(); Object uid = session.getAttribute("uid"); if(uid == null) { //用户没有登录系统重定向回到 response.sendRedirect("/web/login.html"); return false; } return true; } }
还有注册过滤器,添加白黑名单。
package com.cy.store.config; import com.cy.store.Interceptor.LoginIntercepter; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; import java.util.ArrayList; import java.util.List; @Configuration public class LoginInterctptorConfig implements WebMvcConfigurer { @Override public void addInterceptors(InterceptorRegistry registry) { HandlerInterceptor handlerInterceptor = new LoginIntercepter(); List<String> patters = new ArrayList<>(); patters.add("/bootstrap3/**"); patters.add("/css/**"); patters.add("/images/**"); patters.add("/js/**"); patters.add("/web/login.html"); patters.add("/web/index.html"); patters.add("/web/product.html"); patters.add("/users/reg"); patters.add("/users/login"); registry.addInterceptor(handlerInterceptor).addPathPatterns("/**").excludePathPatterns(patters); } }
记住要加一个configuration来标识

浙公网安备 33010602011771号