application.yml

jwt:
  # 这里只写一个方便
  tokenHeader: Authorization

JwtInterceptor

public class JwtInterceptor implements HandlerInterceptor {
	// 这里获取值,获取不到
    @Value("${jwt.tokenHeader}")
    private String tokenHeader;
	
    @Value("${jwt.tokenHead}")
    private String tokenHead;

InterceptorConfig

/**
 * 拦截器配置
 */
@Configuration
public InterceptorConfig implements WebMvcConfigurer {
	
	/**
	 * 解决方法在这里:
	 *	需要将JwtInterceptor 交给Spring管理
	 */
	@Bean
    public JwtInterceptor jwtInterceptor() {
        return new JwtInterceptor();
    }

	/**
     * 配置拦截路径,并放行登录及swagger
     * @param registry
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
    	// 这里不要直接写成 new JwtInterceprot()
    	// 因为JwtInterceptor() 没有交给Spring
        registry.addInterceptor(jwtInterceptor())
                .excludePathPatterns("/login/**")
                .addPathPatterns("/**");
    }
}
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐