Replace @EnableSwagger2 after update to latest version
Asked Answered
D

2

26

I migrated to latest springfox-swagger2 version 2.10.0 but looks like @EnableSwagger2 is deprecated.

What annotation should I use in order to enable Swagger into Spring Boot project? @EnableSwagger2WebMvc?

Deli answered 23/6, 2020 at 16:51 Comment(2)
Don't use the 2.10.0 version it is not fully released github.com/springfox/springfox/issues/3336 ,github.com/springfox/springfox/issues/3335Ritch
@EnableSwagger2WebMvc is also deprecated now!Hamper
D
33

@EnableSwagger2 was removed in swagger 2.10.x, but from 3.x.x it is there again.

@EnableSwagger2WebMvc is deprecated in 3.0.0+

Funny but true :)


Optionally you can use following dependency with Spring 5 MVC

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

and

  • remove explicit dependencies on springfox-swagger2
  • remove the @EnableSwagger2 annotations
  • add the springfox-boot-starter dependency

see: https://github.com/springfox/springfox

Deedeeann answered 8/10, 2020 at 21:22 Comment(1)
@EnableSwagger2 was not deprecated but suddenly removed in v2.10 :-(Seam
E
5
@Configuration
@EnableSwagger2WebMvc
@Import({SpringDataRestConfiguration.class, BeanValidatorPluginsConfiguration.class})
public class ApplicationSwaggerConfig {

    @Bean
    public Docket schoolApi() {
        return new Docket(DocumentationType.SWAGGER_2).
                select().
                apis(RequestHandlerSelectors.basePackage("com.example.SampleProject")).
                paths(PathSelectors.any()).
                build();
    }

For the other case pertaining to spring security checks, you can make your securityconfiguration class to extend WebsecurityConfigurerAdapter and then you can implement below method -

 @Override public void configure(WebSecurity web) throws Exception {
      web.ignoring().antMatchers( "/v2/api-docs", "/swagger-resources/**", "/configuration/ui","/configuration/security", "/swagger-ui.html");
      
      }

This should help I guess

Electrostatic answered 23/6, 2020 at 17:14 Comment(7)
I have used the @EnableSwagger2WebMvc server started but I am unable to load swagger UI on http://localhost:8090/swagger-ui.html. I am getting SpringSecurity login page, after entering the valid credential still it is not loading, and asking for credential again and againRitch
Error is WARN [2020-06-24T10:20:00.527+0530] servlet.PageNotFound ||${fallback:user}|No mapping for GET /swagger-ui.htmlRitch
I have WebsecurityConfigurerAdapter in place as you mentionedRitch
this had worked for me when I was getting kinda same errorsElectrostatic
It's strange to me!!. After upgrade to latest version i.e 2.10.5, it is giving me a same security dialog boxRitch
Anything else that I can try to get rid of this?Ritch
Found that this is an issue and latest release 2.10 is not ready to use github.com/springfox/springfox/issues/3336 github.com/springfox/springfox/issues/3335Ritch

© 2022 - 2024 — McMap. All rights reserved.