Пользовательский интерфейс Swagger в Spring: загружается только файл HTML, но не ресурсы

Я использую Springfox Swagger. Это то, что я вижу, когда получаю доступ к http://localhost:8088/myContextRoot/swagger-ui.html:

введите описание изображения здесь

Т.е. успешно загружен только файл HTML swagger-ui.html, другие материалы (js, css и т. д.), которые должны находиться по адресу http://localhost:8088/myContextRoot/webjars/springfox-swagger-ui возвращает 404.

Что я пробовал до сих пор:

web.xml

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/swagger-ui.html</url-pattern>
</servlet-mapping>

<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>/webjars/**</url-pattern>
</servlet-mapping>

ресурсы-servlet.xml

<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />

Конфигурация Java

@Configuration
@EnableWebSecurity
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
         @Override
         protected void configure(HttpSecurity http) throws Exception {
              http
                .authorizeRequests()
                .antMatchers("/v2/api-docs", "/configuration/ui/**", "/swagger-resources", "/configuration/security/**",
                        "/webjars/**", "/swagger-ui.html")
                .permitAll();
         }
    }

Используемые версии:

compile "io.springfox:springfox-swagger2:2.6.1"
compile "io.springfox:springfox-swagger-ui:2.6.1"

person infranoise    schedule 06.02.2017    source источник


Ответы (2)


Если вы посмотрите на этот класс springfox.documentation.swagger.web.ApiResourceController, вы можете обнаружить, что сопоставления, подобные /configuration/ui и /configuration/security, больше не существуют (в io.springfox:springfox-swagger-common:2.6.1), потому что они были изменены на /swagger-resources/configuration/ui и /swagger-resources/configuration/security соответственно в соответствии с сопоставлением запросов Spring

Попробуйте использовать эту конфигурацию Java:

@Configuration
@EnableWebSecurity
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/v2/api-docs", "/swagger-resources/**", "/webjars/**", "/swagger-ui.html")
            .permitAll();
    }
}
person T. Zubkov    schedule 13.02.2017

У меня эта проблема возникла при обновлении springfox-swagger2 с 2.7.0 до 2.8.0

Я исправил это, просто очистив Chrome Web Browser cookie и сеансы。

person CorningSun    schedule 28.05.2018