Springboot配置(登录拦截)
Springboot 配置(登录拦截)
注意这⾥环境为springboot为2.1版本
1.编写实现类,实现接⼝  HandlerInterceptor,
重写⾥⾯需要的三个⽐较常⽤的⽅法,实现⾃⼰的业务逻辑代码
(就是⾃⼰拦截时做什么处理)
package com.*.*.interceptor;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
import com.*.*.*.User;
springboot和过滤器/**
*
*
* @Package: com.*.*.interceptor
* @ClassName: AdminInterceptor
* @Description:
* @author: zk
* @date: 2019年9⽉19⽇下午2:20:57
*/
public class AdminInterceptor implements  HandlerInterceptor {
/**
* 在请求处理之前进⾏调⽤(Controller⽅法调⽤之前)
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
//        System.out.println("执⾏了TestInterceptor的preHandle⽅法");
try {
//统⼀拦截(查询当前session是否存在user)(这⾥user会在每次登陆成功后,写⼊session)
User user=(Session().getAttribute("USER");
if(user!=null){
return true;
}
response.ContextPath()+"你的登陆页地址");
} catch (IOException e) {
e.printStackTrace();
}
return false;//如果设置为false时,被请求时,执⾏到此处将不会继续操作
//如果设置为true时,请求将会继续执⾏后⾯的操作
}
/**
* 请求处理之后进⾏调⽤,但是在视图被渲染之前(Controller⽅法调⽤之后)
*/
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
//        System.out.println("执⾏了TestInterceptor的postHandle⽅法");
}
/**
* 在整个请求结束之后被调⽤,也就是在DispatcherServlet 渲染了对应的视图之后执⾏(主要是⽤于进⾏资源清理⼯作)
*/
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handl
er, Exception ex) {
//        System.out.println("执⾏了TestInterceptor的afterCompletion⽅法");
}
}
2.编写配置⽂件类并继承  WebMvcConfigurer类,并重写其中的⽅法  addInterceptors并且在主类上加上注解  @Configuration package com.*.*.config;
import t.annotation.Configuration;
import org.springframework.fig.annotation.InterceptorRegistration;
import org.springframework.fig.annotation.InterceptorRegistry;
import org.springframework.fig.annotation.WebMvcConfigurer;
import com.*.*.interceptor.AdminInterceptor;
/**
*
*
* @Package: com.*.*.config
* @ClassName: LoginConfig
* @Description:配置
* @author: zk
* @date: 2019年9⽉19⽇下午2:18:35
*/
@Configuration
public class LoginConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//注册TestInterceptor
InterceptorRegistration registration = registry.addInterceptor(new AdminInterceptor());
registration.addPathPatterns("/**");                      //所有路径都被拦截
"你的登陆路径",            //登录
"/**/*.html",            //html静态资源
"/**/*.js",              //js静态资源
"/**/*.css",            //css静态资源
"/**/*.woff",
"/**/*.ttf"
)
;
}
}
这⾥不被拦截的路径,根据⾃⼰需求进⾏添加,上述主要是关于静态资源⽅⾯的
到这⾥后端拦截已经完成
我的项⽬是前后端分离的,前端使⽤的LayuiAdmin,借助了LayuiAdmin的前端进⾏相关html页⾯的拦截结束

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。