1. 程式人生 > 實用技巧 >通俗易懂的Web前端培訓資料

通俗易懂的Web前端培訓資料

技術標籤:java

spring-boot中filter配置,放行swagger。

swagger配置:

1.匯入swagger2依賴:

 <!--swagger依賴-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        <
/dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!--解決swagger2版本大於2.7的相容性問題--> <dependency>
<groupId>com.google.guava</groupId> <artifactId>guava</artifactId> <version>20.0</version> </dependency>

2.配置swagger2:

package com.my.emplogin.swagger2;

import io.swagger.annotations.Api;
import org.springframework.context.
annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; /** * @author : tanghuai * @date : 2021/1/8 14:41 */ @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //是否開啟 (true 開啟 false隱藏。生產環境建議隱藏) //.enable(false) .select() //掃描的路徑包,設定basePackage會將包下的所有被@Api標記類的所有方法作為api .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) //指定路徑處理PathSelectors.any()代表所有的路徑 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() //設定文件標題(API名稱) .title("登入案列") //文件描述 .description("介面說明") .contact(new Contact("tangsir","https://www.baidu.com","[email protected]")) //服務條款URL .termsOfServiceUrl("http://localhost:8080/") //版本號 .version("1.0.0") .build(); } }

3 配置過濾器

package com.my.emplogin.fiter;

import org.springframework.stereotype.Component;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 過濾器
 * @author : tanghuai
 * @date : 2021/1/11 14:01
 */
@Component
@WebFilter(value = "MyFilter",urlPatterns = "/*")
public class MyFilter implements Filter {
    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        HttpServletRequest request = (HttpServletRequest) servletRequest;
        HttpServletResponse response = (HttpServletResponse) servletResponse;
        // 獲取請求路徑
        String uriPath = request.getRequestURI();
        // 放行驗證碼 和 swagger文件
        if (uriPath.contains("/getVerify") || uriPath.contains("/api-docs") || uriPath.contains("swagger")){
            filterChain.doFilter(request,response);
            return;
        }
    }
}

其中urlPatterns,是配置過濾路徑,要放行swagger,我這裡在doFilter裡面配置了兩個放行路徑,"/api-docs",“swagger”。