之前我们已经重写了springsecurity框架的认证的过滤器,还有验证的过滤器,但是只是写了个过滤器,还没有配置到项目里面,所以不起作用,那么如何将我们重写的过滤器配置到项目里面呢?

配置新的过滤器的流程



也就是在这个配置里面配置我们自定义的过滤器

    //SpringSecurity配置信息
    public void configure(HttpSecurity http) throws Exception {
   
        http.csrf()
            .disable()
            .authorizeRequests()
            .antMatchers("/product").hasAnyRole("USER")
            .anyRequest()
            .authenticated()
            .and()
            .addFilter(new JwtLoginFilter(super.authenticationManager(), prop))
            .addFilter(new JwtVerifyFilter(super.authenticationManager(), prop))
            这个就是禁用session
            .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
    }

总结

因为是分布式的项目,所以在后端进行验证和认证的时候,我们需要改为和token相关的,所以重写了过滤器,并且配置到了项目里面

前端用postman进行测试

1 启动服务端

2 在postman里面用json格式进行登录


以上说明登录成功,但是现在我们想要测试这个访问后端的其他的接口,是这个token起到作用了啊,这个咋测试。

测试是token起到作用

1 直接访问一个接口


返回403 禁止访问,这个原因是没有登录,没有权限访问这个接口

因为用户的登录信息是在请求头里面,所以在登录成功之后,返回的请求头是有token的,那么我们看之前的登录成功之后,看token的信息


以上我们看见,登录成功之后,这个token值是这些,现在我们直接拿上这个token的值,在访问其他的接口里面放上,看看能不能访问成功

还是访问之前禁止访问的那个接口,只是这次我们加上这个登录成功的token


看,返回成功了,就是我们在头里面加了登录成功的token,所以以后想要访问其他的接口,只要在访问的路径里面加上登录成功的token就可以了。