最近在学习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/**");

}

`

springsecurity 配置swagger的更多相关文章

  1. .net core在网关中统一配置Swagger

    最近在做微服务的时候,由于我们是采用前后端分离来开发的,提供给前端的直接是Swagger,如果Swagger分布在各个API中,前端查看Swagger的时候非常不便,因此,我们试着将Swagger集中 ...

  2. .net core在Ocelot网关中统一配置Swagger

    最近在做微服务的时候,由于我们是采用前后端分离来开发的,提供给前端的直接是Swagger,如果Swagger分布在各个API中,前端查看Swagger的时候非常不便,因此,我们试着将Swagger集中 ...

  3. asp.net core Api配置swagger

    这个很简单的一篇文章用来记录以下使用swagger的过程,以后有用. 1.nuget 下载install-package Swashbuckle.AspNetCore 2.startup里面confi ...

  4. .net core 配置swagger遇到的坑

    Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因: Swagger 可以生成一个具有互动性的API控制台,开发者可以用来快速学习和尝试API. Swagger 可以生成 ...

  5. SpringSecurity02 表单登录、SpringSecurity配置类

    1 功能需求 springSecuriy默认的登录窗口是一个弹出窗口,而且会默认对所有的请求都进行拦截:要求更改登录页面(使用表单登录).排除掉一些请求的拦截 2 编写一个springSecurity ...

  6. Swagger学习(二、配置swagger)

    基于上一篇 其实只是在SwaggerConfig.class中配置docket,apiInfo @Configuration //变成配置文件 @EnableSwagger2 //开启swagger2 ...

  7. SpringSecurity配置,简单梳理

    生活加油:摘一句子: “我希望自己能写这样的诗.我希望自己也是一颗星星.如果我会发光,就不必害怕黑暗.如果我自己是那么美好,那么一切恐惧就可以烟消云散.于是我开始存下了一点希望—如果我能做到,那么我就 ...

  8. MVC-WebApi配置 Swagger(Web Api可视化文档)

    一.从创建MVC WebApi开始 第一步创建MVC WebApi就创建好了,接下来就进入正题,上干货 ================================================ ...

  9. 【Docker】 .Net Core 3.1 webapi 集成EF Code First,使用MySql进行业务操作 、配置swagger (三)

    系列目录: [Docker] CentOS7 安装 Docker 及其使用方法 ( 一 ) [Docker] 使用Docker 在阿里云 Centos7 部署 MySQL 和 Redis (二) [D ...

  10. SpringMVC 中配置 Swagger 插件.

    一.简介 Swagger的目标是为REST API定义一个与语言无关的标准接口,允许用户发现和理解计算机服务的功能,而无需访问源代码.当通过Swagger正确定义时,用户可以用最少量的实现逻辑理解远程 ...

随机推荐

  1. Apache SSI远程命令执行漏洞复现

    漏洞原理:当目标服务器开启了SSI与CGI支持,就可以上传shtml文件,并利用语法执行任意命令,例如<!- - #exec cmd="ls"- ->,cmd后面跟要执 ...

  2. ptyhon基础课程_3

    14 综上练习题 评分规则: A:>=90 B:>=80 C:>=70 D:其他 用户输入成绩,根据成绩显示不同的级别 score = input ("请输入您的成绩:&q ...

  3. Error occurred while proxying request localhost:端口 报错500的解决方法

    '/AuthServer/api/': { target: 'https://localhost:44319', secure:false,// 这是签名认证,http和https区分的参数设置 ch ...

  4. CentOS7 设置防火墙、开放指定端口操作

    1, 查看防火墙状态: firewall-cmd --state systemctl status firewalld.service 2, 开启防火墙: systemctl start firewa ...

  5. SQL语句大全,你不会写的SQL可能都在这里

    1.创建数据库 CREATE DATABASE database-name 2.删除数据库 drop database dbname3.说明:备份sql server 创建 备份数据的 device ...

  6. HTML中javascript的<script>标签使用方法详解

    只要一提到把JavaScript放到网页中,就不得不涉及Web的核心语言--HTML.在当初开发JavaScript的时候,Netscape要解决的一个重要问题就是如何做到让JavaScript既能与 ...

  7. JSP图书管理系统

    allbook.jsp pageEncoding="UTF-8"%> <%@ page import = "java.util.*" %> & ...

  8. 2022年JMUCTF WP

    2022年JMUCTF WP crypto 2,Are you ok Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. ...

  9. 【Windows】IP 地址变为 169.254.x.x 的解决方法

    最近每次开机 IP 地址都会自动跳至 169.254.x.x 段,连接不上网络,设置了固定 IP 也会跳段.因此找到以下解决方法: 『IP地址变成169.254.x.x 和固定ip两个IP地址的解决办 ...

  10. 【转】关于 Nokogiri 的安装依赖 libxml2安装问题

    来源:https://ruby-china.org/topics/30243 在自己的os x系统上一直运行正常,包括正常使用nokogiri这个gem,今天 在本地建立新项目,bundle inst ...