系统安全性提升:统一api接口前缀

系统安全性提升:统一api接口前缀

为了增强系统的安全性,我决定为所有接口添加一个统一的API前缀。这种做法不仅提高了接口的安全性,还便于管理。以下是具体的实现步骤:

拦截器配置调整

  1. @RestController注解的类自动添加/HomestayAPI前缀。
  2. 调整所有拦截器的拦截规则,确保它们都包含/HomestayAPI前缀。

WebConfig.java:

@Configuration
public class WebConfig implements WebMvcConfigurer {
    @Resource
    private JwtInterceptor jwtInterceptor;
    // 为所有@RestController类的URL自动添加/HomestayAPI前缀
    @Override
    public void configurePathMatch(PathMatchConfigurer configurer) {
        configurer.addPathPrefix("/HomestayAPI", clazz -> clazz.isAnnotationPresent(RestController.class));
    }
    // 添加自定义拦截器JwtInterceptor,并设置拦截规则
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(jwtInterceptor)
                .addPathPatterns("/HomestayAPI/**")
                .excludePathPatterns("/HomestayAPI/")
                .excludePathPatterns("/HomestayAPI/login")
                .excludePathPatterns("/HomestayAPI/register")
                .excludePathPatterns("/HomestayAPI/files/**")
                .excludePathPatterns("/files/**")
                .excludePathPatterns("/HomestayAPI/type/**")
                .excludePathPatterns("/HomestayAPI/getValidateCode")
                .excludePathPatterns("/HomestayAPI/notice/selectAll")
                .excludePathPatterns("/HomestayAPI/homestay/selectById")
                .excludePathPatterns("/HomestayAPI/homestay/selectByName")
                .excludePathPatterns("/HomestayAPI/comment/selectByTypeId");
    }
}

RateLimiterConfig.java:

@Configuration
@Component
public class RateLimiterConfig implements WebMvcConfigurer {
    @Resource
    RateLimiterInterceptor rateLimiterInterceptor;
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(rateLimiterInterceptor)
                .addPathPatterns("/HomestayAPI/**");
    }
}

前端脚本baseUrl调整

main.js

Vue.prototype.$baseUrl = process.env.VUE_APP_BASEURL + '/HomestayAPI'   //所有URL都加上了‘/api’前缀

request.js

// 创建可一个新的axios对象
const request = axios.create({
    //所有URL都加上了‘/api’前缀
    baseURL: process.env.VUE_APP_BASEURL+ '/HomestayAPI'  ,  // 后端的接口地址  ip:port/HomestayAPI
    timeout: 30000,                          // 30s请求超时
})

在这里插入图片描述

图片上传路径调整

Constants.java

    //图片上传路径
    String imageUploadEndpoint =  "http://localhost:9090/HomestayAPI/files/";

在这里插入图片描述

数据库中图片URL的调整

导出数据库数据

在这里插入图片描述

使用正则表达式更新URL

正则表达式:(?<!HomestayAPI\/)files

  • (?<!HomestayAPI\/): 负向零宽断言,表示确保files前面不包含HomestayAPI/
  • files: 匹配files

替换为:HomestayAPI/files

在这里插入图片描述

导入数据库数据

在这里插入图片描述

通过这些操作,给所有的接口都统一添加了/HomestayAPI前缀,这不仅增强了安全性,还便于管理和维护。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值