apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理
生活随笔
收集整理的這篇文章主要介紹了
apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
采用網(wǎng)關(guān)過(guò)濾器實(shí)現(xiàn)權(quán)限驗(yàn)證
1、創(chuàng)建 zuul 項(xiàng)目
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、創(chuàng)建過(guò)濾器類(lèi)
@Component public class LogFilter extends ZuulFilter{private static final Logger logger = LoggerFactory.getLogger(LogFilter.class);/*** 過(guò)濾內(nèi)容:在 run 方法編寫(xiě)過(guò)濾邏輯*/@Overridepublic Object run() {//獲取請(qǐng)求上下文RequestContext rc = RequestContext.getCurrentContext();HttpServletRequest request = rc.getRequest();//獲取表單 tokenString token = request.getParameter("token");if(token == null){logger.warn("token is null............"); rc.setSendZuulResponse(false);//代表請(qǐng)求結(jié)束。不在繼 續(xù)向下請(qǐng)求 rc.setResponseStatusCode(401);//設(shè)置狀態(tài)碼rc.setResponseBody("{"result":"token is null"}");//響應(yīng)內(nèi)容rc.getResponse().setContentType("text/html;charset=utf-8");//響應(yīng)類(lèi)型}logger.info("token not null");return null;}/*** 是否開(kāi)啟過(guò)濾器:默認(rèn)為 false 不開(kāi)啟*/@Overridepublic boolean shouldFilter() {return true;}/*** 過(guò)濾器的執(zhí)行順序:通過(guò)整數(shù)表示順序,數(shù)值越小,優(yōu)先級(jí)越高 */@Overridepublic int filterOrder() {return 0;}/*** 過(guò)濾器類(lèi)型:通過(guò)過(guò)濾器類(lèi)型決定了過(guò)濾器執(zhí)行的時(shí)間 */@Overridepublic String filterType() {return "pre";} }5、添加啟動(dòng)類(lèi)
@SpringBootApplication @EnableZuulProxy //開(kāi)啟網(wǎng)關(guān) public class ZuulApplication {public static void main(String[] args) {SpringApplication.run(ZuulApplication.class, args);} }測(cè)試:
未附帶 token
附帶 token
采用網(wǎng)關(guān)過(guò)濾器對(duì)系統(tǒng)異常同一處理
當(dāng)訪問(wèn)一個(gè)錯(cuò)誤頁(yè)面的時(shí)候,按照Z(yǔ)ull請(qǐng)求的生命周期順序進(jìn)行依次訪問(wèn)。
同類(lèi)型中,按照 FilterOrder 來(lái)決定執(zhí)行器的優(yōu)先級(jí)。接下來(lái)的就是按照生命周期順序來(lái)決定。
采用網(wǎng)關(guān)過(guò)濾器對(duì)系統(tǒng)異常同一處理
創(chuàng)建類(lèi)去實(shí)現(xiàn) ErrorController ,重寫(xiě)未實(shí)現(xiàn)的方法。
當(dāng)訪問(wèn)錯(cuò)誤頁(yè)面的時(shí)候,結(jié)果如下圖
總結(jié)
以上是生活随笔為你收集整理的apache过滤恶意频繁访问_采用网关过滤器实现权限验证及对异常统一处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 工商银行主账户已止付是什么意思
- 下一篇: 经济投资和金融投资的区别