spring 登录拦截器,springboot自定义拦截器拦截所有请求

  spring 登录拦截器,springboot自定义拦截器拦截所有请求

  可以对URL路径进行拦截,可以用于权限验证、解决乱码、操作日志记录、性能监控、异常处理等

  

实现代码

新建拦截机包

 

  添加拦截器代码

  包com。qcby。截击机;导入org。spring框架。豆子。工厂。注释。自动连线;导入org。spring框架。网络。方法。处理程序方法;导入org。spring框架。网络。servlet。处理者受体;导入org。spring框架。网络。servlet。模型和视图;导入javax。servlet。http。http servlet请求;导入javax。servlet。http。http servlet响应;导入javax。servlet。http。http会话;公共类登录接收器实现处理程序拦截器{ @ Autowired private http session http session;//控制器逻辑执行之前@ Override public boolean preHandle(http servlet请求请求、HttpServletResponse响应、对象处理程序)引发异常{ System.out.println(preHandle . );字符串uri=请求。get request uri();System.out.println(当前路径uri);/* * *处理程序方法=控制器中标注@RequestMapping的方法* 需要配置静态资源不拦截时,添加这块逻辑=前后端分离项目*/if(!(HandlerMethod方法的处理程序实例)){返回true} if(http会话。get属性( username )==null){//未登录跳转到登录界面抛出新的RuntimeException(no login!);}否则{返回true} }//控制器逻辑执行完毕但是视图解析器还未进行解析之前@ Override public void post handle(http servlet请求http servlet请求,http servlet响应http servlet响应,Object o,ModelAndView modelAndView)引发异常{系统。出去。println( post句柄.);}//控制器逻辑和视图解析器执行完毕@完成后覆盖public void(http servlet请求http servlet请求,http servlet响应http servlet响应,对象o,异常e)抛出异常{系统。出去。完成后打印.);}}注册,配置拦截路径和排除登录需访问路径

  包com。qcby。配置;导入com。qcby。截击机。登录拦截器;导入org。spring框架。语境。注释。豆;导入org。spring框架。语境。注释。配置;导入组织。spring框架。网络。servlet。配置。注释。拦截器注册表;导入org。spring框架。网络。servlet。配置。注释。webmvc配置器;@配置公共类WebMvcConfig实现WebMvcConfigurer { @ Override public void add interceptors(InterceptorRegistry){ registry。添加拦截器(登录拦截器()).addpath模式(/* *)//那些路径不拦截。excludePathPatterns(/user/log in ,/error );} @ Bean公共log in interceptor log in interceptor(){ return new log in interceptor();}}实现类

  @ rest控制器@请求映射(用户)公共类用户控制器{ @ auto wired private UserService UserService;@自动连线私有会话会话;@ApiOperation(用户登录接口)@RequestMapping(value=login ,method={RequestMethod .获取,请求方法. POST}) public MapString,Object log in(User User){ MapString,Object map=new HashMap();map.put(code ,0);if(字符串实用程序。isempty(用户。get username()) string utils。isempty(用户。get password()){ map。put( msg ,用户或密码为空!);返回地图;}查询包装器用户查询包装器=新查询包装器();queryWrapper.eq(username ,user.getUsername()).eq(密码,用户。get password());用户用户1=用户服务。获取一个(查询包装器);if(user1!=null){ map.put(cod ,1);map.put(数据,用户1);session.setAttribute(用户名,用户1。get username());}else { map.put(msg ,用户名或密码错误!);}返回图;}}当我们未登录时我们不能进入拦截的页面

  登录

  登录后,我们可以进入hello方法

  关于SpringBoot拦截器的登录拦截的样例代码的这篇文章就到这里了。关于SpringBoot Interceptor登录拦截的更多信息,请搜索Popular IT之前的文章或者继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: