Swagger2 添加HTTP head参数,解决用户是token信息保留
HTTP 解决 用户 参数 信息 添加 Token 保留
2023-09-11 14:18:56 时间
转:http://blog.csdn.net/u014044812/article/details/71473226
大家使用swagger往往会和JWT一起使用,而一般使用jwt会将token放在head里,这样我们在使用swagger测试的时候并不方便,因为跨域问题它默认不能自定义head参数。然后自己去网上找,发现国内大多数的都是写一个Filter接口,然后添加到配置。这样极大的破坏了程序的完整性。想想这相当于维护两套代码。我们只是需要一个简单的小功能,国外大多是修改Swagger的index页面:
- window.swaggerUi = new SwaggerUi({
- discoveryUrl: "http://pathtomyservice.com/resources",
- headers: { "testheader" : "123" },
- apiKey: "123",
- apiKeyName: "Api-Key",
- dom_id:"swagger-ui-container",
- supportHeaderParams: true,
- supportedSubmitMethods: ['get', 'post', 'put', 'delete'],
- onComplete: function(swaggerApi, swaggerUi){
- if(console) {
- console.log("Loaded SwaggerUI");
- console.log(swaggerApi);
- console.log(swaggerUi);
- }
- $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
- },
- onFailure: function(data) {
- if(console) {
- console.log("Unable to Load SwaggerUI");
- console.log(data);
- }
- },
- docExpansion: "none"
- });
supportHeaderParams默认为false,而我用的是swagger2,不需要配置静态的那些东西,所以我在SwaggerConfig添加了几行代码:
- @EnableSwagger2
- @EnableWebMvc
- @ComponentScan("com.g.web")
- public class SwaggerConfig {
- @Bean
- public Docket api(){
- ParameterBuilder tokenPar = new ParameterBuilder();
- List<Parameter> pars = new ArrayList<Parameter>();
- tokenPar.name("x-access-token").description("令牌").modelRef(new ModelRef("string")).parameterType("header").required(false).build();
- pars.add(tokenPar.build());
- return new Docket(DocumentationType.SWAGGER_2)
- .select()
- .apis(RequestHandlerSelectors.any())
- .paths(PathSelectors.regex("/api/.*"))
- .build()
- .globalOperationParameters(pars)
- .apiInfo(apiInfo());
- }
- private ApiInfo apiInfo() {
- return new ApiInfoBuilder()
- .title("后台接口文档与测试")
- .description("这是一个给app端人员调用server端接口的测试文档与平台")
- .version("1.0.0")
- .termsOfServiceUrl("http://terms-of-services.url")
- //.license("LICENSE")
- //.licenseUrl("http://url-to-license.com")
- .build();
- }
- }
前四行代码是添加head参数的,前台效果是这样的:
相关文章
- HTTP could not register URL http://+:8000/testservice/. Your...
- [Android Pro] http请求中传输base64出现加号变空格的解决办法
- destoon提示http 403 forbidden解决方法
- 【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond
- EasyPlayer开源流媒体移动端播放器推出RTSP-RTMP-HTTP-HLS全功能Pro版
- 测试基础之http_load(1)简介、安装、使用
- Okhttp设置http缓存,在没有网络的情况下加载http缓存里面的内容
- RESTful还是基于HTTP的RPC实现
- 用ABAP进行HTTP编程如何获取交互中的错误明细
- why there is always a HTTP 302 redirect when clicking workcenter
- 使用 http-proxy 代理 HTTP 请求时遇到的 the requested url is invalid 错误消息
- paip.http 404错误 的解决
- SAP Spartacus UI 通过 HTTP Interceptor 给请求添加 Authorization 字段的源代码分析
- 使用Angular reactive form发送HTTP请求的一个简单例子
- App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Te
- HTTP实现天气预报
- 成功解决CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://mirrors.tuna.tsinghua.edu.cn/anacond
- 已解决urllib.error.HTTPError: HTTP Error 403: Forbidden
- Java Code Examples for javax.servlet.http.Part
- 【问题解决】[kubelet-check] The HTTP call equal to ‘curl -sSL http://localhost:10248/healthz‘ failed wite
- 5.5.1 jmeter组件-取样器-HTTP请求
- jsp中的http status 500错误问题怎么解决