Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

springboot3整合时swagger可以访问,knife4j页面无法访问 #787

Closed
Astrsea opened this issue May 13, 2024 · 0 comments
Closed

springboot3整合时swagger可以访问,knife4j页面无法访问 #787

Astrsea opened this issue May 13, 2024 · 0 comments

Comments

@Astrsea
Copy link

Astrsea commented May 13, 2024

依赖版本

<springdoc-openapi.version>2.4.0</springdoc-openapi.version>
<knife4j.version>4.4.0</knife4j.version>
<dependency>
	<groupId>org.springdoc</groupId>
	<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
	<version>${springdoc-openapi.version}</version>
</dependency>
<dependency>
	<groupId>org.springdoc</groupId>
	<artifactId>springdoc-openapi-starter-webmvc-api</artifactId>
	<version>${springdoc-openapi.version}</version>
</dependency>
<dependency>
	<groupId>com.github.xiaoymin</groupId>
	<artifactId>knife4j-openapi3-jakarta-spring-boot-starter</artifactId>
	<version>${knife4j.version}</version>
</dependency>

配置

springdoc:
  swagger-ui:
    enabled: true
    path: /swagger-ui.html
  packages-to-scan: cloud.astrsea.controller
  api-docs:
    enabled: true
    path: /docs
knife4j:
  enable: true
  setting:
    language: zh_cn

Swagger配置

@Configuration
public class SwaggerConfiguration {

    @Bean
    public OpenAPI openApi() {
        return new OpenAPI()
                .components(components()
                        .addSecuritySchemes(HttpHeaders.AUTHORIZATION,securityScheme()));
    }

    @Bean
    public GroupedOpenApi systemApi(){
        return GroupedOpenApi.builder()
                .group("System")
                .pathsToMatch("/system/**")
                .build();
    }

    @Bean
    public GroupedOpenApi apiApi(){
        return GroupedOpenApi.builder()
                .group("Api")
                .pathsToMatch("/api/**")
                .build();
    }

    @Bean
    public GroupedOpenApi webApi(){
        return GroupedOpenApi.builder()
                .group("Web")
                .pathsToMatch("/web/**")
                .build();
    }

    @Bean
    public SecurityScheme securityScheme() {
        return new SecurityScheme()
                // 类型
                .type(SecurityScheme.Type.APIKEY)
                // 请求头的 name
                .name(HttpHeaders.AUTHORIZATION)
                // token 所在位置
                .in(SecurityScheme.In.HEADER);
    }


    @Bean
    public Components components(){
        return new Components()
                .addSecuritySchemes(HttpHeaders.AUTHORIZATION,
                        new SecurityScheme()
                                .type(SecurityScheme.Type.APIKEY)
                                .in(SecurityScheme.In.HEADER)
                                .name(HttpHeaders.AUTHORIZATION));
    }
}

静态页面配置

    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        // 允许直接访问的静态文件
        registry.addResourceHandler("/static/**")
                .addResourceLocations("classpath:/static/");
        // 允许直接访问swagger
        registry.addResourceHandler("/swagger-ui/**")
                .addResourceLocations("classpath:/META-INF/resources/webjars/swagger-ui/5.11.8/");
        registry.addResourceHandler ("/doc.html")
                .addResourceLocations ("classpath:/META-INF/resources/");
        registry.addResourceHandler ("/webjars/**")
                .addResourceLocations ("classpath:/META-INF/resources/webjars/");
    }

swagger页面能正常访问
image
knife4j页面无法访问
image

@Astrsea Astrsea closed this as completed May 13, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant