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>


io.springfox
springfox-swagger2
${io.springfox.version}


org.mapstruct // 当然 这个东西可以去掉
mapstruct





io.springfox
springfox-swagger-ui
${io.springfox.version}


io.springfox
springfox-bean-validators
${io.springfox.version}


com.github.xiaoymin
knife4j-spring-ui
2.0.9


com.github.xiaoymin
knife4j-spring-boot-starter
2.0.1


guava
com.google.guava


`

  • 引入后开始编写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/**");

}
`

posted @ 2021-12-24 17:07  烫手的山芋  阅读(2243)  评论(0)    收藏  举报