swagger免token鉴权

2023-11-12

使用swagger很简单,但是在引入项目里面是由于,项目使用了Spring Security OAuth实现鉴权体系,所以浏览器访问swagger的时候一直报401,说没权限。网上的很多方案主要是两种方法:
1、鉴权时过滤指定请求,但是我没弄成功,可能是操作问题。
2、swagger请求时带token,但是我弄了好像也不行。
于是换一种思路,直接授权,自定义注解。
1、自定义注解

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@Import({SwaggerAutoConfiguration.class})
public @interface EmpEnableSwagger2 {
}

2、授权

import com.google.common.base.Predicate;
import com.google.common.base.Predicates;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
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.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * @author JackKing
 * swagger配置
 */
@Configuration
@EnableSwagger2
@EnableAutoConfiguration
@ConditionalOnProperty(name = "swagger.enabled", matchIfMissing = true)
public class SwaggerAutoConfiguration {

	/**
	 * 	默认的排除路径,排除Spring Boot默认的错误处理路径和端点
	 */
	private static final List<String> DEFAULT_EXCLUDE_PATH = Arrays.asList("/erro
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

swagger免token鉴权 的相关文章

  • Java多线程--深入浅出Java多线程

    深入浅出Java多线程 慕课网对应课程 深入浅出Java多线程 Java多线程基础概念 进程 程序 任务 的执行过程 动态性 持有资源 共享内存 共享文件 和线程 线程 线程是系统中最小的执行单元 同一进程中有多个线程 线程共享进程的资源
  • Maven项目中 “错误: 找不到或无法加载主类" 的解决办法

    在创建maven项目时 在下图的 Output folder None 说明没有指定编译后 class 文件存放的路径 所以在run java application报 错误 找不到或无法加载主类 解决这个问题操作步骤如下 在项目上右键 b
  • Java 根据经纬度 角度 距离求另一个点坐标

    度换成弧度 param Float d 度 return Float 弧度 private static double rad double d return d Math PI 180 0 弧度换成度 param Float x 弧度 r
  • 在运行jar包时如何替换jar内变量的值?

    在运行jar包时如何替换jar内变量的值 举个例子 1 问题描述 java程序中定义了变量String vars System getProperty aa String vars1 System getProperty aa test 把
  • java在注解中绑定方法参数的解决方案

    我们有这样子的需求 需要记录用户操作某个方法的信息并记录到日志里面 例如 用户在保存和更新任务的时候 我们需要记录下用户的ip 具体是保存还是更新 调用的是哪个方法 保存和更新的任务名称以及操作是否成功 这里最好的技术就是spring ao
  • Eclipse 运行web项目 HTTP404错误

    Eclipse 引入web项目后 run as on server tomcat启动成功 但网页提示404 问题排查 404 服务器找不到资源 首先检查Eclipse部署路径 是否部署了资源文件 查找部署路径 发现该路经下只有一个WEB I
  • dll、so库转Java代码

    dll so库转Java代码 下载jar JNA代码生成 参数说明 生成的maven项目代码结构如下 众所周知 java程序如果要调用动态库 so dll 的函数 最传统方式是使用JNI技术 用JNI写java调用接口代码是非常痛苦的 调试
  • Hibernate环境搭建(小实例)

    Hibernate是一个开源的对象关系映射框架 在学习之前 首先让我们先了解一下Hibernate环境是如何搭建的 废话不多说 直接进入正题 建项目 引Jar包 首先 我们需要创建一个Java项目 创建好项目之后 就需要引入与Hiberna
  • Java private方法访问

    大家知道 Java中private修饰符修饰的方法或属性 只有在该类内可以访问 其他类均无法访问 事实真的是这样吗 下面一个例子可以实现访问一个类中的private方法 原理是通过Java的反射机制 感觉Java反射机制在这点似乎不太安全
  • spring boot 启动报错,找不到DataSource

    报错信息如下 16 39 11 372 1653 main WARN o s b c e AnnotationConfigEmbeddedWebApplicationContext AbstractApplicationContext ja
  • JDK的下载与安装详细解释

    JDK的下载与安装 一 JDK下载 进入Oracle官网 https www oracle com index html 打开后我们通过选项卡找到Downloads 操作如下界面 接下来我们找到Deverloper Downloads中的J
  • MyBatis 通用 Mapper 和 MyBatis-Plus 中的自带 Mapper 方法详解

    目录 概要 MyBatis 通用 Mapper MyBatis Plus 总结 概要 当涉及 MyBatis 的通用 Mapper 和 MyBatis Plus 中的自带 Mapper 方法时 主要关注的是基于继承的方式来实现数据库操作 这
  • Java&JS时间格式转化

    时间格式转化 一 Java格式转化 1 1 接收前端传值转化 1 2 String转化LocalDate 1 3 LocalDate与Date相互转换 二 Javascript格式转化 2 1 JS时间格式转化 一 Java格式转化 1 1
  • mycat实现mysql读写分离,热切换,集群

    在互联网时代 实现mysql读写分离 热切换 集群能大大提高mysql数据库访问压力 防止数据丢失 使用mycat能帮我们实现这些 我们要实现的是这种架构 1 Mycat能实现数据库的垂直切分和水平切分 这里用户写数据的时候 通过mycat
  • 在Vue下如何用js代码将13位的时间戳数据转换成正常显示的时间?

    问题描述 在使用Vue时 如果页面没有渲染完成 通过js代码是拿不到页面上数据的 而我们又想通过js操作数据时 就需要通过一些特别的方法 网上有各种方法 但是大部分都解释的比较模糊 这是我的一些小总结 由于不是专门玩前端的 但是又不想用vu
  • MAC软件推荐(Java方向)

    MAC软件推荐 Tabby 终端控制工具 keka 解压工具 typora Markdown工具 QuickRedis Redis视图工具 UTM 虚拟机 Navicat Premium 数据库工具 Adobe Photoshop CC 2
  • mysql 新版本出现group by 语句不兼容问题

    原文地址 http www cnblogs com anstoner p 6414440 html 注 文中的方式 我只是用了修改sql mode 的方法 其它的未尝试 全文如下 目录 1 具体出错提示 1 1 1 查看sql mode 1
  • Minio有了这篇文章,比SDK要好入门多了

    想学minio 看小编这边文章可以解决你很多问题 一 安装minio 1 1 创建文件夹 并在指定文件夹中下载minio文件 1 2 赋予minio文件执行权限 1 3 启动minio 1 4 修改环境变量 1 5 指定端口启动minio服
  • java变量作用域和堆栈

    一 作用域决定了变量的可见性和生命周期 java中变量分为成员变量和局部变量 如下 1 成员变量 在类的所有方法外部声明的变量 即类所拥有的变量 可以被系统初始化 1 1静态成员变量 类被加载时被创建 其生命周期与该类的生命周期相同 1 2
  • 设计模式详解---策略模式

    1 策略模式简介 策略模式 Strategy Pattern 是一种行为型设计模式 用于在运行时根据不同的情境选择不同的算法或策略 该模式将算法封装成独立的类 使得它们可以相互替换 而且可以独立于客户端使用它们的方式 1 1 主要角色 上下

随机推荐

  • 来点动力吧,存够300W退休

    这样写也可以 11年后退休 加油吧
  • pytorch学习总结(一)(SGD随机梯度下降、学习率调整策略、train模式)

    看了几个月的理论 总算是开始实践了 学习了几个月 这门学问中数学的应用还挺有意思的 比现在的工作有意思多了 1 torch optim SGD trainer torch optim SGD net parameters lr lr mom
  • linux怎么用代码做扣扣,如何在Linux上安装程序员喜爱的文本编辑器NotepadQQ

    原标题 如何在Linux上安装程序员喜爱的文本编辑器NotepadQQ 来自 Linux迷 链接 https www linuxmi com pop os 20 04 ubuntu html NotepadQQ是一个令人兴奋的应用程序 它试
  • 王垠的40行代码,究竟diao在哪里

    王垠是谁 不用我说了吧 别傻谈 亮码瞧 A simple CPS transformer which does proper tail call and does not duplicate contexts for if expressi
  • element-ui el-table 如何实现合并单元格

    el table的组件的可以合并单元格 先定义参数span method 方法objectSpanMethod 在方法内控制当前单元格渲染成几个单元格或者删除掉当前单元格 比如 代码中定义 span method objectSpanMet
  • Frameset布局

    原文地址 http captaincook iteye com blog 365634
  • angularjs 1.6.x 教程学习心得

    依赖注入 依赖注入是angularJs的核心 应用启动时 angular会创建一个injector 它会寻找并注入所有应用需要的服务 必须先被正确的定义 延迟实例化 lazily instantiate providers Provider
  • vsftpd主动模式和被动模式

    vsftpd主动模式和被动模式 主动模式 PORT 所谓主动模式 指的是FTP服务器主动去连接客户端的数据端口来传输数据 其过程具体来说就是 客户端从一个任意的非特权端口N N gt 1024 连接到FTP服务器的命令端口 即tcp 21端
  • 看看UE4源码: Pawn中默认InputComponent是控制器还是Pawn的

    Pawn中的InputComponent是谁的 结论 默认情况下 如果Pawn首次被PlayerController控制 则会在Pawn中创建一个InputComponent 写在Pawn中SetupPlayerInputComponent
  • 数据结构编程视频

    来源 我是码农 转载请保留出处和链接 本文链接 http www 54manong com cate 3 数据结构与算法是计算机专业一门相当重要的专业必修课 同时数据结构与算法也是电气电子类等一些需要涉及到编程的专业学生一门很重要的基础课程
  • WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制

    本文主要介绍使用 WVP ZLMediaKit MediaServerUI 实现通过 GB28181 进行海康 大华 宇视等品牌的 IPC NVR DVR 接入 完成摄像头监控播放 控制 录制 准备工作 服务运行环境 Linux OS X
  • 分布式缓存原理----Hash环/一致性Hash原理/Hash槽

    Memcached 为分布式客户端做分发 hash环 TWY Redis 为分布式客户端做分发 hash环 Redis Cluster 点对点 2Khash槽 当前 Memcached Redis这类分布式kv缓存已经非常普遍 从本篇开始
  • Java jackson配置类,Java jackson工具类,SpringBoot Jackson类配置

    Java jackson配置类 Java jackson工具类 SpringBoot Jackson类配置 Copyright 蕃薯耀 2021 04 27 https blog csdn net w995223851 一 SpringBo
  • 第十八章 Post-Processing

    第十八章 Post Processing Post processing是指在场景渲染之后 使用一些图形技术对场景进行处理 比如 把整个场景转换为grayscale 灰度 样式或使场景中明亮的区域发光 本章将编写一些post process
  • 项目开发的前期准备(二)

    项目开发的前期准备 二 时序图用于描述对象之间的传递消息的时间顺序 即用例中的行为顺序 当执行一个用例时 时序图中的每条消息对应了一个类操作或者引起转换的触发事件 在 UML 中 时序图表示为一个二维的关系图 其中 纵轴是时间轴 时间延竖线
  • Selenium clear()方法无法清掉数据

    今天遇到了Selenium clear 方法无法清掉数据的问题 问题描述 页面看着清空了数据 保存时候还是存在 解决方法 WebElement ballast browser getWebDriver findElement By xpat
  • Qt之界面样式

    1 窗口 最小化 最大化 关闭按钮 显示状态自定义 setWindowFlags Qt CustomizeWindowHint setWindowFlags Qt WindowCloseButtonHint 只要关闭按钮 setWindow
  • NeuralNLP-NeuralClassifier的使用记录(一),训练预测自己的【英文文本多分类】

    NeuralNLP NeuralClassifier的使用记录 训练预测自己的英文文本多分类 NeuralNLP NeuralClassifier是腾讯开发的一个多层多分类应用工具 支持的任务包括 文本分类中的二分类 多分类 多标签 以及层
  • 存档&改造【01】模板导入&租户登录

    app101改造之前 想搞一个设备导入功能 想象中 实际上 再改改样式 关于数据的导入导出 可见博客 APEX数据源加载实现Excel表数据导入及自定义存储过程 王小小鸭的博客 CSDN博客https blog csdn net clove
  • swagger免token鉴权

    使用swagger很简单 但是在引入项目里面是由于 项目使用了Spring Security OAuth实现鉴权体系 所以浏览器访问swagger的时候一直报401 说没权限 网上的很多方案主要是两种方法 1 鉴权时过滤指定请求 但是我没弄