广告位联系
返回顶部
分享到

Knife4j的请求示例当中有很多空白行的问题解决办法

java 来源:互联网 作者:佚名 发布时间:2024-09-07 22:57:35 人浏览
摘要

问题描述: 按正常来说不应该有上方的空白,当然如果只是查看我也不至于非要解决他,主要是假如接口是json传参,调试界面都没办法修改参数网上相关的资料又非常少,我别的项目引用的同

问题描述:

按正常来说不应该有上方的空白,当然如果只是查看我也不至于非要解决他,主要是假如接口是json传参,调试界面都没办法修改参数…网上相关的资料又非常少,我别的项目引用的同样的依赖并没有出现如此情况。

引入的依赖:使用的springboot版本是2.3.12.RELEASE,使用的knife4j是2.0.9版本!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<dependency>

    <groupId>com.github.xiaoymin</groupId>

    <artifactId>knife4j-spring-boot-starter</artifactId>

    <version>2.0.9</version>

</dependency>

<dependency>

    <groupId>io.springfox</groupId>

    <artifactId>springfox-swagger2</artifactId>

    <version>2.10.5</version>

    <exclusions>

        <exclusion>

            <groupId>io.swagger</groupId>

            <artifactId>swagger-models</artifactId>

        </exclusion>

    </exclusions>

</dependency>

<dependency>

    <groupId>io.swagger</groupId>

    <artifactId>swagger-models</artifactId>

    <version>1.5.22</version>

</dependency>

Swagger2Config 配置类

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

@Configuration

@EnableSwagger2WebMvc

public class Swagger2Config {

    @Value("${swagger.enable}")

    private boolean enable;

 

    @Bean

    public Docket createRestApi() {

        return new Docket(DocumentationType.SWAGGER_2).enable(enable).apiInfo(apiInfo()).select()

                //为当前包路径

                .apis(RequestHandlerSelectors.basePackage("com.fiftyonetrust.zyy.stdc.admin.center.controller")).paths(PathSelectors.any()).build();

    }

 

    private ApiInfo apiInfo() {

        return new ApiInfoBuilder()

                //页面标题

                .title("构建RESTful API").description("构建RESTful API")

                //版本号

                .version("1.0")

                //描述

                .description("API 描述").build();

    }

}

该配置主要解决doc.html 404无法访问的问题。

1

2

3

4

5

6

7

8

@Configuration

public class MyConfig extends WebMvcConfigurationSupport {

    @Override

    public void addResourceHandlers(ResourceHandlerRegistry registry) {

        registry.addResourceHandler("doc.html").addResourceLocations("classpath:/META-INF/resources/");

        registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");

    }

}

查看F12发现别的项目访问接口文档并没有这些错误,而这个项目全是以下错误信息:

解决过程:

刚开始我一直以为是Knife4j与security版本之间兼容问题导致的,然后也询问了Knife4j官方人员,说有史以来没有出现过类似的情况。针对于这个问题我也是排查了好几天。

项目当中使用了security,排查security的配置。

这里使用到了一个JwtAuthenticationTokenFilter过滤器,过滤器当中有一行这个代码注释掉之后就可以了。

这里要注意,删除掉之后一定要清除浏览器,不然可能会存在缓存。如下就是恢复正常了:

在网上查了关于这个Content-Security-Policy响应头的说明,CSP相当于前台的白名单,用来限制网站内部一些资源获取的来源,如限制CSS、JS、图片或者第三方链接等。

CSP的设置可以在一定程度上限制XSS攻击,有2种方式可以设置。第一种通过设置HTTP响应头,另一种通过HTML的<meta>标签。

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。

您可能感兴趣的文章 :

原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计