springsecurity 配置swagger


最近在學習springsecurity 安全框架,具體是什么概念在這里不一一贅述了。下面呢,咱們一起搭建一下簡單的springsecurity swagger 項目感受一下。

  • 首先初始化spring initializer 項目。在項目中引入springsecurity starter。
  • 編寫測試類
  • 啟動項目。訪問項目地址 localhost:8080/test
  • 接着瀏覽器中出現了一個登錄頁面 如下

    ps:這個登錄頁面默認是springsecurity自帶的登錄頁面。 默認的登錄賬號是 ** user** 密碼 是控制台 打印的 一串字符串 例子:Using generated security password: 5334856d-1259-42e2-947b-435bdaa9faf1 每次重啟項目都會刷新這個密碼。
  • 登錄后才能訪問接口。

然后在來說一下在springsecurity 中如何配置swagger呢。
首先還是先引入 swagger的 pom配置。 如下

`

<io.springfox.version>2.9.2</io.springfox.version>

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>${io.springfox.version}</version>
        <exclusions>
            <exclusion>
                <groupId>org.mapstruct</groupId>   // 當然 這個東西可以去掉
                <artifactId>mapstruct</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- swagger -->
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>${io.springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-bean-validators</artifactId>
        <version>${io.springfox.version}</version>
    </dependency>
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-ui</artifactId>
        <version>2.0.9</version>
    </dependency>
    <dependency>
        <groupId>com.github.xiaoymin</groupId>
        <artifactId>knife4j-spring-boot-starter</artifactId>
        <version>2.0.1</version>
        <exclusions>
            <exclusion>
                <artifactId>guava</artifactId>
                <groupId>com.google.guava</groupId>
            </exclusion>
        </exclusions>
    </dependency>

`

  • 引入后開始編寫Swagger2Config 代碼如下

`

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;

@Configuration
@EnableSwagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//為當前包下的controller生成api文檔
.apis(RequestHandlerSelectors.basePackage("com.cloud.service.xxx.controller"))
.paths(PathSelectors.any())
.build();
}

private ApiInfo apiInfo() {
    //設置文檔信息
    return new ApiInfoBuilder()
            .title("XXX接口文檔")
            .description("XXX接口文檔")
            .contact(new Contact("xxxx", "http:localhost:8080/doc.html",
                    "xxxx@xxxx.com"))
            .version("1.0")
            .build();
}

}
`

  • 特別說明
    如果你的spring 的版本是最新版本,建議你把版本改成2.4.2以下或者是2.4.2 等等版本。啟動類不要加什么 @EnableWebMvc 等等注解。 也不要升級guava,它是和springfox 版本同步的。
    當然 你還要配置SpringSecurityConfig extends WebSecurityConfigurerAdapter
    重寫 WebSecurity 方法

`
@Override
public void configure(WebSecurity web) throws Exception {
//放行靜態資源
web.ignoring().antMatchers(
"/login",
"/logout",
"/css/",
"/js/
",
"/index.html",
"/favicon.ico",
"/doc.html",
"/swagger-ui.html",
"/webjars/",
"/swagger-resources/
",
"/v2/api-docs/**");

}

`


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM