刚刚启用swagger3

pom依赖只需要加上 springfox-boot-starter 相当简介

        <dependency><groupId>io.springfox</groupId><artifactId>springfox-boot-starter</artifactId><version>3.0.0</version></dependency>

然后在启动springboot的启动类增加一个注解,@EnableOpenApi 就OK了。

Controller上增加各种注解,开始直接用的swagger2的注解,一样生效。兼容性不错。

开始swagger3的页面看着还有点不习惯,适应两天就好了。

后面是重点,开始很顺利,遇到一个小问题,获取一个header参数。直接用注解  @RequestHeader 可以收到请求。(用postman)

不用加任何注解,swagger很聪明的识别了这个参数,但是在swagger直接请求接口,提示:

"400 BAD_REQUEST \"Missing request header 'Authorization' for method parameter of type String\""

实在是不解!

后面是各种加注解、调试参数,一样就是无法接收到header参数。

网上查也并没有发现太多类似的文章。

不解~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

在这条漂亮的分割线以下,找到了问题的所在。

不是swagger的问题,各种配置也都对,问题就在于,参数名!“Authorization” 这个header是用来存认证信息的,因为这次做的也正式认证接口,认证信息从这个header中获取。

结果正常的写法就无法获取这个header了。

swagger是有通用的或者叫做全局的添加认证信息的设置的,就比如你的接口都需要检查token就可以给所以的接口设置统一的token。

具体的开启如下:

    @Beanpublic Docket createRestApi() {//返回文档摘要信息return new Docket(DocumentationType.OAS_30).apiInfo(apiInfo()).select()//.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)).apis(RequestHandlerSelectors.withMethodAnnotation(Operation.class)).paths(PathSelectors.any()).build().securitySchemes(securitySchemes()).securityContexts(securityContexts());//.globalRequestParameters(getGlobalRequestParameters());//.globalResponses(HttpMethod.POST, getGlobalResonseMessage());}private List<SecurityScheme> securitySchemes() {List<SecurityScheme> securitySchemes = new ArrayList<>();securitySchemes.add(new ApiKey("Authorization", "Authorization", "header"));return securitySchemes;}private List<SecurityContext> securityContexts() {List<SecurityContext> securityContexts = new ArrayList<>();securityContexts.add(SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("^(?!auth).*$")).build());return securityContexts;}private List<SecurityReference> defaultAuth() {AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];authorizationScopes[0] = authorizationScope;List<SecurityReference> securityReferences = new ArrayList<>();securityReferences.add(new SecurityReference("Authorization", authorizationScopes));return securityReferences;}

很多地方还没有详细的研究,只是解决了当前的问题,以上代码仅供参考。

同时还引出了另一个问题,如果要从header中获取这个参数,Authorization。不加注解,swagger也会自动给添加一个参数。参数名正是Authorization,不能用,但是不传还提示必填。

所以想取消这个参数,又发现一个小知识点,不想要的参数可以隐藏,在参数前加一个注解  @ApiIgnore

算是比较完美的解决了!

swagger3 不能传header未解之谜相关推荐

  1. 彭博社:Web3 巨大潜力之下的未解之谜

    来源:Bloomberg 撰文:Emily Nicolle 风投基金 Andreessen Horowitz (a16z) 的合伙人 Chris Dixon 认为,以区块链为基础的互联网未来 (即所谓 ...

  2. 卡巴斯基实验室被攻陷后的四个未解之谜

    前几天,卡巴斯基实验室被Duqu 2.0攻陷的消息传出来后,尽管安全厂商对Duqu 2.0的代码和对攻击者采用的0Day攻击进行了深入分析,目前仍有许多未解之谜. 先不说这事儿是谁干的,所有人的研究都 ...

  3. 2017互联网十大未解之谜,你能回答几个?

    0关注「实验楼」,每天分享一个项目教程 互联网行业发生许多重大事件,比如微信小程序上线.顺丰菜鸟互撕.共享单车接连倒闭.乐视危机发酵.无人超市崛起.求职少年李文星之死.京东腾讯入股唯品会等.在互联网的 ...

  4. 深度丨AI界的七大未解之谜:OpenAI丢出一组AI研究课题

    今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界七大未解之谜,现 ...

  5. AI界的七大未解之谜:OpenAI丢出一组AI研究课题

    来源:三体智讯 今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界 ...

  6. 难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题

    难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题 Delphi / Windows SDK/API http://www.delphi2007.net/DelphiAPI/ ...

  7. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)

    最近在网上看到 MySql 关于 NULL 的文章 有几个值得争议的观点,我们一起看看 ● 准备工作 MySql 版本 5.7,InnoDB 存储引擎, 表 test 数据量 10 w, 其中 a , ...

  8. 一个常见的物理现象,直今还是未解之谜!

    全世界只有3.14 % 的人关注了 爆炸吧知识 在我们的日常生活中存在着很多有趣的物理现象, 科学家对这些现象进行深入研究后,可以通过这些现象延伸,从而在前沿科技发展上得到很大的帮助,甚至去解决宇宙中 ...

  9. hibernate 复合主键 根据主键删除_Python 之 MySql“未解之谜”11--主键 id 那些事

    主键 id 用自增和 uuid 有什么区别? ● uuid 有 16 个字节,比 int(4 byte)和 bigint(8 byte)占用更多存储空间 有大量数据的时候 uuid 主键不会像自增主键 ...

最新文章

  1. jquery Syntax error, unrecognized expression:的解决方法
  2. MCMC笔记:吉布斯采样(Gibbs)
  3. centos 搭建日志服务器
  4. creo如何更改打开时显示方式_Creo4.0入门教程(3):设置工作目录和打开以及保存文件...
  5. win7下安装pip——Python的包管理工具
  6. 嵌入式Linux系统编程学习之六make工程管理和Makefile
  7. vim的安装以及配置
  8. Ceph测试工具总结
  9. yytext显示html并编辑,YYText的使用
  10. 畅购商城项目v1-环境搭建
  11. 手机摄影:黄埔军校旧址(下)
  12. Richer Convolutional Features for Edge Detection(RCF-PYTorch)部署
  13. python 战舰_战舰python代码学院
  14. 上海七宝惊现海宝美眉
  15. coalesce函数的用法
  16. 小数化分数的口诀表_循环小数化分数口诀
  17. hexo 利用 Markdown 语法画 mermaid 流程图
  18. 华硕Prime B250M-K+英特尔i3 7100 3.9GHz+HD 630黑苹果EFI引导文件
  19. [mysql-cj-abandoned-connection-cleanup] org.apache.catalina.loader.WebappClassLoaderBase.checkStateF
  20. 自适应网站与非自适应有什么不同

热门文章

  1. iPhone/iPad使用A-Shell免越狱运行SQLmap等渗透工具【持续更新】【A-Shell使用】【渗透工具】【待完善】
  2. mysql导入本地文件_Mysql透过txt文件导入本地数据_mysql
  3. java采用MD5加密解密
  4. 编程爱好者网站试题中心
  5. Scalar Evolution
  6. 关于学术论文投稿中的 Cover Letter
  7. 条件极值例题_条件极值与函数习题课.doc
  8. 【c/c++编程】查找类问题
  9. 测试显卡位宽软件,科普:显卡位宽基础知识指南
  10. uoj 36 玛里苟斯