转:http://blog.csdn.net/u014044812/article/details/71473226

大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数。然后自己去网上找,发现国内大多数的都是写一个Filter接口,然后添加到配置。这样极大的破坏了程序的完整性。想想这相当于维护两套代码。我们只是需要一个简单的小功能,国外大多是修改Swagger的index页面:

  1. window.swaggerUi = new SwaggerUi({
  2. discoveryUrl: "http://pathtomyservice.com/resources",
  3. headers: { "testheader" : "123" },
  4. apiKey: "123",
  5. apiKeyName: "Api-Key",
  6. dom_id:"swagger-ui-container",
  7. supportHeaderParams: true,
  8. supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
  9. onComplete: function(swaggerApi, swaggerUi){
  10. if(console) {
  11. console.log("Loaded SwaggerUI");
  12. console.log(swaggerApi);
  13. console.log(swaggerUi);
  14. }
  15. $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
  16. },
  17. onFailure: function(data) {
  18. if(console) {
  19. console.log("Unable to Load SwaggerUI");
  20. console.log(data);
  21. }
  22. },
  23. docExpansion: "none"
  24. });

supportHeaderParams默认为false,而我用的是swagger2,不需要配置静态的那些东西,所以我在SwaggerConfig添加了几行代码:

  1. @EnableSwagger2
  2. @EnableWebMvc
  3. @ComponentScan("com.g.web")
  4. public class SwaggerConfig {
  5. @Bean
  6. public Docket api(){
  7. ParameterBuilder tokenPar = new ParameterBuilder();
  8. List<Parameter> pars = new ArrayList<Parameter>();
  9. tokenPar.name("x-access-token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
  10. pars.add(tokenPar.build());
  11. return new Docket(DocumentationType.SWAGGER_2)
  12. .select()
  13. .apis(RequestHandlerSelectors.any())
  14. .paths(PathSelectors.regex("/api/.*"))
  15. .build()
  16. .globalOperationParameters(pars)
  17. .apiInfo(apiInfo());
  18. }
  19. private ApiInfo apiInfo() {
  20. return new ApiInfoBuilder()
  21. .title("后台接口文档与测试")
  22. .description("这是一个给app端人员调用server端接口的测试文档与平台")
  23. .version("1.0.0")
  24. .termsOfServiceUrl("http://terms-of-services.url")
  25. //.license("LICENSE")
  26. //.licenseUrl("http://url-to-license.com")
  27. .build();
  28. }
  29. }

前四行代码是添加head参数的,前台效果是这样的:

Swagger2 添加HTTP head参数,解决用户是token信息保留的更多相关文章

  1. 单例解决存储微信Token信息保留两小时

    采用单例模式可以存储初始化数据,比如第一次对/api/test接口进行了访问,传入的信息为“123”,则在两个小时之内返回的信息依然是“123”,无论传入的参数是什么,如果有效时间过了两个小时,比如传 ...

  2. 【转】Swagger2 添加HTTP head参数

    大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数.然后自己去网上找, ...

  3. Swagger2 添加HTTP head参数

    大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数.然后自己去网上找, ...

  4. Senparc.Weixin.MP SDK 微信公众平台开发教程(七):解决用户上下文(Session)问题

    从这篇文章中我们已经了解了微信公众平台消息传递的方式,这种方式有一个先天的缺陷:不同用户的请求都来自同一个微信服务器,这使得常规的Session无法使用(始终面对同一个请求对象,况且还有对方服务器Co ...

  5. linux上搭建ftp、vsftp, 解决访问ftp超时连接, 解决用户指定访问其根目录,解决ftp主动连接、被动连接的问题

    linux上搭建ftp 重要 解决如何搭建ftp         解决用户指定访问其根目录         解决访问ftp超时连接         解决ftp主动连接.被动连接的问题 1.安装ftp ...

  6. 正确优雅地解决用户退出——JSP及Struts解决方案

    摘要       在一个有密码保护的Web应用中,正确处理用户退出过程并不仅仅只需调用HttpSession的invalidate()方法.现在大部分浏览器上都有后退和前进按钮,允许用户后退或前进到一 ...

  7. 解决用户绕过Servlet直接访问jsp页面

    解决用户绕过ActionServlet,直接访问jsp文件的问题 1.将所有jsp文件拷贝到WEB-INF目录下 因为WEB-INF目录中的内容不能直接访问,但能转发过来 项目结构图如下: 2.修改s ...

  8. Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题

    Spring Cloud Gateway 动态修改请求参数解决 # URL 编码错误传参问题 继实现动态修改请求 Body 以及重试带 Body 的请求之后,我们又遇到了一个小问题.最近很多接口,收到 ...

  9. LINUX curl GET 掉参数解决办法

    LINUX curl GET 掉参数解决方法 url 为 http://mywebsite.com/index.php?a=1&b=2&c=3web形式下访问url地址,使用 $_GE ...

随机推荐

  1. 账号被锁无法ssh登陆

    Account locked due to failed logins 方法一: 使用root用户登陆后执行: pam_tally2 --user=username --reset 方法二: user ...

  2. Centos7下安装Oracle11g r2

    我的centos7是在virtualbox下安装的,安装Oracle安装了好久好久,最开始的时候在网上找的两个文章,按照步骤装,有一篇写着装的时候有灰色的竖线,直接按space键或者鼠标右键close ...

  3. 上午做的第一个安卓app

    刚开始学习安卓开发,有好多不懂,好多快捷键不知道,好多文件也不知道是干什么用的,初学时的确会有很多烦恼,比如哪里又多一个空格也会报错,有时候错误很难看懂. 嘿嘿,一上午的功夫边学习边调代码,做出了我第 ...

  4. 02-JAVA 初始化

    构造器 概念:在创建对象时被自动调用的方法,构造器采用和类名一样的名称 创建对象时,会为其分配存储空间,并调用相应的构造器进行初始化.这就确保了在操作对象之前,这个对象已经被恰当的初始化了. 不接受仁 ...

  5. TCP系列46—拥塞控制—9、SACK下的快速恢复与Limited transmit

    一.概述 1.SACK下的特殊处理过程 SACK下的拥塞控制处理是linux中拥塞控制的实现依据,再次强调一遍RFC6675的重要性,linux中拥塞控制主体框架的实现是与RFC6675一致的,所以如 ...

  6. 数据挖掘聚类算法(DBSCAN、Kmeans)Java实现

    学习聚类算法时,参考算法说明随手写的java实现,代码很简单,不多做说明啦,有需要的童鞋可以看看,自己也做个备录. http://files.cnblogs.com/files/yuananyun/% ...

  7. jQuery之css

    设置css样式/读取css值 css() 1. 得到第一个p标签的颜色 2. 设置所有p标签的文本颜色为red 3. 设置第2个p的字体颜色(#ff0011),背景(blue),宽(300px), 高 ...

  8. 11月14号站立会议(从即日14号起到24号截至为final阶段工作期)

    小组名称:飞天小女警 项目名称:礼物挑选小工具 小组成员:沈柏杉(组长).程媛媛.杨钰宁.谭力铭 代码地址:HTTPS:https://git.coding.net/shenbaishan/GIFT. ...

  9. PAT 甲级 1046 Shortest Distance

    https://pintia.cn/problem-sets/994805342720868352/problems/994805435700199424 The task is really sim ...

  10. 移植spdylay到libcurl

    Libcurl是第三方网络库,支持各种网络协议 SPDY是Google提出的用来替代HTTP1.1的网络协议, 目前google.com, facebook.com, twitter.com服务器端都 ...