在安全编码规范中,在Java后端controller层接口需要对调用者的身份进行确认,以防非法用户进行访问。若是在controller层的每个接口处都添加逻辑判断,那么代码重复度高,并且费力费时。此时,就需要在请求到达controller层时提前截取数据流,对相关数据进行校验。在这里将要提到的方式就是在后端添加http拦截器,这样每一次的http请求都需要经过拦截器的认证后才可以继续往下走。那么如何有效地添加拦截器呢?下面将会详细给告诉你怎么添加。
(1)为了方便代码管理,我们先创建一个文件夹,其名为interceptor,与controller文件夹处于同一级,该文件夹主要是用来存放拦截器相关的文件,如下图所示:
(2)在interceptor文件夹中创建以下几个文件:InterceptorConfig.java、InterceptorPathPatterns.java和AuthorityIntercepor.java
- InterceptorConfig.java文件:主要是用来配置拦截器的
- InterceptorPathPatterns.java文件:是一个拦截规则实体类
- AuthorityIntercepor.java文件:主要是拦截的具体实现
三个文件的大致内容具体如下:
1)InterceptorConfig.java文件内容如下:
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Configuration
public class InterceptorConfig implements WebMvcConfigurer {
// 这里通过配置文件来配置拦截规则,后续会提供配置文件内容
@Autowired
private InterceptorPathPatterns interceptorPathPatterns;
@Override
public void addInterceptors(InterceptorRegistry registry