springsecurity文档_SpringBoot2.0实战(29)整合SpringSecurity之Swagger附带Token

df40d1c9603476e80652f48a12ae52bf.png

通过前面的文章,我们一步步实现了前后端分离模式下的基于token实现系统权限验证

第二十四章:整合SpringSecurity之最简登录及方法鉴权

第二十五章:整合SpringSecurity之基于数据库实现登录鉴权

第二十六章:整合SpringSecurity之前后端分离使用JSON格式交互

第二十七章:整合SpringSecurity之前后端分离使用Token实现登录鉴权

第二十八章:整合SpringSecurity之前后端分离使用JWT实现登录鉴权

也实现了对 Swagger 的集成

第十一章:整合Swagger2自动生成API文档

通过 Swagger 提供的网页,我们可以直接对后台接口实现单元测试,但是在前后端分离的项目中,请求时需要附带鉴权使用的 token,否则会被系统拒绝访问。

所以本文要解决的就是,使用 Swagger2 进行单元测试时,怎么传递 Token 的问题。

目标

整合 SpringSecurity 实现使用 Swagger2 文档对后台接口进行测试,并传入Token。

操作步骤

一、方案一

配置 Swagger2

通过 globalOperationParameters 方法为接口添加参数

f0817ca98ba153e06a77aa784b157932.png

配置 SpringSecurity

SpringSecurity 默认会将 Swagger-UI 的网页拦截,所以要访问 Swagger2 的接口文档,需要去掉拦截。

e1bfa0d4f96c217a613eca2aec7b4805.png

编写接口

fed84b5c9b8b6d8cdd46afdc42500bb5.png

验证

通过地址 http://localhost:8080/swagger-ui.html 访问 Swagger2 接口文档,选择上一步编写的测试接口,点击 Try it out,如下图所示,可以看到 Authorization 变成了可输入项。

527758496d4460dabc6fb5bea163e73b.png

我们什么也不输入,直接点击 Execute 按钮接交请求,结果返回如下,请求被 AuthenticationEntryPoint 拦截,说明当前用户未登录。

1722c3f372bb018b2567221de46377c3.png

使用 postman 访问 http://localhost:8080/login 进行登录,登录成功后会返回 token,将 token 的值填入 Authorization 输入项,再次接交,结果显示 测试成功,请求被放行。

二、升级方案

按上面的方法,测试一个接口没有问题,但是如果要测试很多接口,则需要在每一次测试时,手动填上 token 值,非常麻烦,有没有办法填写一次,所有接口都可以共用呢?

修改 Swagger2 注册

275b5eec9c8a26956130a9dd3595d43d.png

验证

通过地址 http://localhost:8080/swagger-ui.html 访问 Swagger2 接口文档,

如下图所示,原来的 Authorization 输入框消失了,出现的是右上角的 Authorize 按钮

833f40dad0efa1f130765a6ef2c16f23.png

点击按钮会出现一个弹窗,弹窗内可输入 Authorization

9f190fb771c9407101f064111d6ed2e9.png

源码地址

本章源码 : https://gitee.com/gongm_24/spring-boot-tutorial.git

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值