自定义Referer拦截器

public class RefererInterceptor extends HandlerInterceptorAdapter {// URL匹配器private AntPathMatcher matcher = new AntPathMatcher();@Autowiredprivate RefererProperties properties;@Overridepublic boolean preHandle(HttpServletRequest req, HttpServletResponse resp, Object handler) throws Exception {String referer = req.getHeader("referer");String host = req.getServerName();// 只验证POST请求if ("POST".equals(req.getMethod())) {if (referer == null) {// 状态置为404resp.setStatus(HttpServletResponse.SC_NOT_FOUND);return false;} java.net.URL url = null;try {url = new java.net.URL(referer);} catch (MalformedURLException e) {// URL解析异常,也置为404resp.setStatus(HttpServletResponse.SC_NOT_FOUND);return false;}// 首先判断请求域名和referer域名是否相同if (!host.equals(url.getHost())) {// 如果不等,判断是否在白名单中if (properties.getRefererDomain() != null) {for (String s : properties.getRefererDomain()) {if (s.equals(url.getHost())) {return true;}}}return false;}}return true;}
}

配置白名单Referer域名

@Component
@ConfigurationProperties(prefix = "referer")
public class RefererProperties {// 白名单域名private List<String> refererDomain;//setter,getter方法
}

yml配置

referer:refererDomain:- baidu.com- pibigstar.com- mxspvip.cn

SpringBoot安全验证之Referer拦截器相关推荐

  1. springboot中的过滤器、拦截器、监听器整合使用

    文章目录 controller层 过滤器 拦截器 拦截器介绍 使用拦截器 监听器 监听器介绍 使用监听器 修改启动类 controller层 用于测试 @RestController public c ...

  2. springboot二:过滤器、拦截器、静态资源访问

    一:springboot中的过滤器 过滤器是什么? 它是基于Servlet 技术实现的, 简单的来说,过滤器就是起到过滤的作用,在web项目开发中帮我们过滤一些指定的 url做一些特殊的 处理. 过滤 ...

  3. springBoot 2.x过滤器--监听器--拦截器

    springboot 2.x过滤器 1.什么是 springboot 2.x过滤器 类似于检票员,检验游客的门票 2.springboot里的过滤器 ApplicationContextHeaderF ...

  4. springboot _配置过滤器、拦截器、使用原生servlet

    配置过滤器.拦截器.使用原生servlet 过滤器和拦截器的根本区别 过滤器是servlet规范规定的,只能用于web程序中,而拦截器是在spring容器中,它不依赖servlet容器. 拦截器属于S ...

  5. 【springboot 踩坑记录】拦截器中无法注入bean

    原因: 注册拦截器的时候是new出来的,spring没有管理.所以无法注入对象 @Beanpublic AgentInterceptor agentInterceptor(){return new A ...

  6. SpringBoot指南(五)——拦截器、原生组件

    文章目录 1 拦截器 2 Filter 3 Servlet 4 Listener 5 使用RegistrationBean配置 1 拦截器 实现HandlerInterceptor,写拦截器 实现We ...

  7. 【SpringBoot】十八、拦截器 interceptor

    拦截器的特性 拦截器可以拦截controller请求 拦截器可以中断请求轨迹 请求之前如果该请求配置了拦截器,则请求会先经过拦截器,拦截器放行之后执行请求的controller,controller执 ...

  8. SpringBoot整合Swagger2/Swagger3之拦截器配置,无token放行swagger路径

    1. swagger2.0 1.1 POM依赖 <dependency><groupId>io.springfox</groupId><artifactId& ...

  9. SpringBoot整合Swagger2/Swagger3之拦截器配置

    1. swagger2.0 1.1 POM依赖 <dependency><groupId>io.springfox</groupId><artifactId& ...

最新文章

  1. MySQL下备份和恢复简单介绍
  2. Design Pattern - Factory Method(C#)
  3. Web 设计中的 5 个最具争议性的话题
  4. 015:字符串:格式化
  5. [蛋蛋の插画日记]囧...居然漏了一期《可爱100》!
  6. 经常需要在开发中使用Excel COM,为简化使用写了这个类,感觉还是不太方便
  7. 【ZOJ - 2955】Interesting Dart Game(背包,结论,裴蜀定理,数论)
  8. 首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了
  9. 亚马逊云基础架构:一场从未停歇的技术创新革命
  10. PHP 8 中确认支持 JIT!
  11. 数学与编程——概率论与数理统计
  12. 单片机音乐倒数计时器c语言,基于单片机音乐倒数计时器设计.doc
  13. C语言:快速排序(详解)
  14. java中apache和tomcat的区别和联系
  15. 计算机恢复出场设置,小白教你电脑恢复出厂设置
  16. 算法—青蛙跳台阶问题汇总
  17. PageRank实践-博客园用户PageRank排名
  18. Hadoop系列之什么是Hadoop(1)
  19. HTML 与HTML5 常用标签
  20. android x86占比,不输主流安卓机 Android x86系统体验分享(附性能对比)

热门文章

  1. 22届滴滴校招礼盒开箱记录~
  2. 股债收益模型 量化实战篇(一)
  3. 复合辛普森公式求解定积分 matlab
  4. AtCoder Beginner Contest 172 E - NEQ(二项式反演)
  5. Windows平台下 C++注册表项重命名实现
  6. apicloud访问mysql_APICloud db组件
  7. [常微分方程的数值解法系列五] 龙格-库塔(RK4)法
  8. 建网站怎么选合适的网站模版
  9. 案例分析 | 优衣库DTC模式之全渠道零售
  10. 本地安装MySQL详细步骤