采用网关过滤器实现权限验证

1、创建 zuul 项目

2、修改 pom.xml 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.sxt</groupId><artifactId>zuul-geteway-example</artifactId><version>0.0.1-SNAPSHOT</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.13.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Dalston.SR5</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-zuul</artifactId></dependency></dependencies>
</project>

3、修改全局配置文件

4、创建过滤器类

@Component
public class LogFilter extends ZuulFilter{private static final Logger logger = LoggerFactory.getLogger(LogFilter.class);/*** 过滤内容:在 run 方法编写过滤逻辑*/@Overridepublic Object run() {//获取请求上下文RequestContext rc = RequestContext.getCurrentContext();HttpServletRequest request = rc.getRequest();//获取表单 tokenString token = request.getParameter("token");if(token == null){logger.warn("token is null............"); rc.setSendZuulResponse(false);//代表请求结束。不在继 续向下请求 rc.setResponseStatusCode(401);//设置状态码rc.setResponseBody("{"result":"token is null"}");//响应内容rc.getResponse().setContentType("text/html;charset=utf-8");//响应类型}logger.info("token not null");return null;}/*** 是否开启过滤器:默认为 false 不开启*/@Overridepublic boolean shouldFilter() {return true;}/***  过滤器的执行顺序:通过整数表示顺序,数值越小,优先级越高 */@Overridepublic int filterOrder() {return 0;}/*** 过滤器类型:通过过滤器类型决定了过滤器执行的时间 */@Overridepublic String filterType() {return "pre";}
}

5、添加启动类

@SpringBootApplication
@EnableZuulProxy   //开启网关
public class ZuulApplication {public static void main(String[] args) {SpringApplication.run(ZuulApplication.class, args);}
}

测试:

未附带 token

附带 token

采用网关过滤器对系统异常同一处理

当访问一个错误页面的时候,按照Zull请求的生命周期顺序进行依次访问。

同类型中,按照 FilterOrder 来决定执行器的优先级。接下来的就是按照生命周期顺序来决定。

采用网关过滤器对系统异常同一处理

创建类去实现 ErrorController ,重写未实现的方法。

当访问错误页面的时候,结果如下图

apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理相关推荐

  1. python爬虫解决频繁访问_爬虫遇到IP访问频率限制的解决方案

    背景: 大多数情况下,我们遇到的是访问频率限制.如果你访问太快了,网站就会认为你不是一个人.这种情况下需要设定好频率的阈值,否则有可能误伤.如果大家考过托福,或者在12306上面买过火车票,你应该会有 ...

  2. C++_类和对象_对象特性_友元_全局函数做友元_在类中声明友元权限的全局函数来访问_类中的private权限的变量---C++语言工作笔记052

    然后我们再来看友元,友元,其实就类似于, 比如一个建筑类,这里面有,客厅有卧室, 那么客厅是public的,大家都能访问,但是卧室是private的,外人不能访问 但是,如果是我的朋友,.我想让他访问 ...

  3. 阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法

    阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法 参考文章: (1)阿里云虚拟主机针对恶意频繁攻击式访问造成CPU爆满的解决方法 (2)https://www.cnblogs.com/xi ...

  4. Springboot过滤器禁止ip频繁访问功能实现

    在开发 Web 项目的时候,经常需要过滤器来处理一些请求,包括字符集转换什么的,记录请求日志什么的等等.在之前的 Web 开发中,我们习惯把过滤器配置到 web.xml 中,但是在 SpringBoo ...

  5. Apache 防止恶意解析

    Apache 防止恶意解析 在用apache搭建的WEB服务器的时候,如何想只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有以下两种方法可以实现(当然肯定还会有其他方法可以实现),都是 ...

  6. php防止恶意频繁刷新页面或form提交

    php防止恶意频繁刷新页面或form提交 很多方法:(以下仅简单方法的简单思路,对于防止菜鸟"黑客"足矣): 1.检测referer来源地址是否为本站.($_SERVER['HTT ...

  7. 中过滤记录中时间_水肥一体化中如何选择过滤器

    #春耕进行时# 节水灌溉的水源主要有两种水源,分为地下水和地表水,地下水也就是井水.而地表水如江.河.湖泊.水塘.沟渠为水源的水水质差别非常大:井水水源单一.不同水源的过滤系统需求不同. 首先.滴灌过 ...

  8. 如何分析apache日志[access_log(访问日志)和error_log(错误日志)]

    如何分析apache日志[access_log(访问日志)和error_log(错误日志)] 发布时间: 2013-12-17 浏览次数:205 分类: 服务器 默认Apache运行会access_l ...

  9. 未声明spire。它可能因保护级别而不可访问_信息系统安全:访问控制技术概述...

    1.访问控制基本概念 身份认证技术解决了识别"用户是谁"的问题,那么认证通过的用户是不是可以无条件地使用所有资源呢?答案是否定的.访问控制(Access Control)技术就是用 ...

最新文章

  1. IP 公司与GPU IP
  2. SP4062电路接口芯片保护IC
  3. 【 MATLAB 】信号处理工具箱的信号产生函数之 square 函数简记
  4. python字符串类型str_python数据类型之字符串类型str
  5. 本地Git关联远程Git时遇到的一些问题
  6. (转载)Git使用教程:最详细、最傻瓜、最浅显、真正手把手教!
  7. const修饰是指针和常量
  8. 达摩院研发自动驾驶高精定位系统,无GPS信号也可实现厘米级定位
  9. 地图数据下载方法与商业地图下载器介绍
  10. 在vscode中使用opencv
  11. 2012考研数学二第(11)题——链式法则偏导数
  12. Python400集大型视频,无偿分享,从正确方向学习python,全套python入门完整视频
  13. Cisco SN查询工具
  14. NLP入门之综述阅读-基于深度学习的自然语言处理研究综述
  15. Android开发者福利之--------Android 6.0 API
  16. 计算机改显存会有啥影响,显卡显存越大越好吗?显存对电脑速度的影响有哪些?...
  17. 解决ssh连接经常掉线
  18. 面试时关于“工作可预见困难有哪些”应聘者如何巧妙回答
  19. 国家网络安全事件应急预案-出台
  20. 浏览器内核学习笔记二

热门文章

  1. php导出csv_原生PHP实现导出csv格式Excel文件的方法示例【附源码下载】
  2. 牛!这个省明确:科研人员平均薪酬水平 要高于企业管理人员!
  3. 印度首富之女大婚,贫穷限制了我的想象……
  4. 循环机换变速箱油教程_变速箱油用循环机换还是重力换更好?一次讲清楚,新手司机学学...
  5. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法
  6. 三次握手wireshark抓包分析,成功握手和失败握手
  7. java英文拼写检查并自动纠正
  8. Hbase 2.0 RegionObserver使用
  9. Flink 双流 Join 的3种操作示例
  10. 阿里科学家再获世界级荣誉,平头哥首席科学家谢源当选AAASFellow