您当前的位置: 首页 > 

java持续实践

暂无认证

  • 2浏览

    0关注

    746博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

黑马十次方项目day06-14之拦截器的配置

java持续实践 发布时间:2019-02-16 14:16:23 ,浏览量:2

文章目录
      • 配置JwtInterceptor
      • InterceptorConfig的配置
      • 测试

配置JwtInterceptor

在com.tensquare.user.interceptor包下,创建JwtInterceptor拦截器 内容如下 该拦截器实现了HandlerInterceptor 接口. 重写了preHandle方法,代表在请求的之前进行一些操作. 如果preHandle方法返回true,代表放行该接口,如果返回false,代表该请求被拦截了. 并在该方法类,写了一段输出语句,如果经过了拦截器,那么就会打印这段话

package com.tensquare.user.interceptor;

import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 类名称:JwtInterceptor
 * 类描述:jwt的全局拦截器
 *
 * @author: taohongchao
 * 创建时间:2019/2/16 13:56
 * Version 1.0
 */
@Component
public class JwtInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        System.out.println("经过了拦截器");

        //return true代表放行, return false 代表不放行
        return true;
    }
}

InterceptorConfig的配置

在com.tensquare.user.config包写,编写拦截器的配置类 该配置类,继承了WebMvcConfigurationSupport 类,重写了addInterceptors方法. 在addInterceptors方法内, 拦截所有的请求,但是放行登录的请求.

package com.tensquare.user.config;

import com.tensquare.user.interceptor.JwtInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

/**
 * 类名称:InterceptorConfig
 * 类描述: 拦截器的配置类
 *
 * @author: taohongchao
 * 创建时间:2019/2/16 14:00
 * Version 1.0
 */
@Configuration
public class InterceptorConfig extends WebMvcConfigurationSupport {

    @Autowired
    private JwtInterceptor jwtInterceptor;

    /**
     * 方法名: addInterceptors
     * 方法描述: 添加拦截器的规则
     * 修改日期: 2019/2/16 14:02
      * @param registry
     * @return void
     * @author taohongchao
     * @throws
     */
    @Override
    protected void addInterceptors(InterceptorRegistry registry) {
        //添加jwt的拦截器
        registry.addInterceptor(jwtInterceptor)
                //拦截所有的请求
                .addPathPatterns("/**")
                //放行登录的请求
                .excludePathPatterns("/**/login/**");
    }
}


测试

启动tensquare_user项目. 发送一个该项目任意的请求, 例如查询所有的管理员 http://localhost:9008/admin 控制台打印如下,代表经过了拦截器,配置成功

关注
打赏
1658054974
查看更多评论
立即登录/注册

微信扫码登录

0.0401s