60
задан 21 June 2019 в 23:09

1 ответ

Более или менее эта страница имеет ответы, но все не в одном месте. Я занимался той же проблемой и потраченный вполне хорошее время на него. Теперь у меня есть лучшее понимание, и я хотел бы совместно использовать его здесь:

я Разрешающий Чванство ui с Spring websecurity:

, Если Вы включили Spring Websecurity по умолчанию, это заблокирует все запросы к Вашему приложению и возвращается 401. Однако для чванства ui для загрузки в браузере swagger-ui.html выполняет несколько вызовов для сбора данных. Лучший способ отладить, открывают swagger-ui.html в браузере (как Google Chrome) и используют опции разработчика (ключ 'F12'). Вы видите несколько вызовов, выполненных, когда страница загружается и если чванство-ui не загружается, полностью, вероятно, некоторые из них перестали работать.

Вы, возможно, должны сказать Spring websecurity игнорировать аутентификацию для нескольких шаблонов пути чванства. Я использую чванство-ui 2.9.2, и в моем случае ниже шаблоны, которые я должен был проигнорировать:

Однако, если Вы используете другую версию Ваш, мог бы измениться. Вам, вероятно, придется выяснить Ваш с опцией разработчика в Вашем браузере, как я сказал прежде.

@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/v2/api-docs", "/configuration/ui", 
            "/swagger-resources/**", "/configuration/**", "/swagger-ui.html"
            , "/webjars/**", "/csrf", "/");
}
}

II чванства Включения ui с перехватчиком

Обычно Вы не можете хотеть прерывать запросы, которые выполнены swagger-ui.html. Исключить несколько шаблонов чванства ниже - код:

большая часть шаблона случаев для безопасности в Интернете и перехватчика будет тем же.

@Configuration
@EnableWebMvc
public class RetrieveCiamInterceptorConfiguration implements WebMvcConfigurer {

@Autowired
RetrieveInterceptor validationInterceptor;

@Override
public void addInterceptors(InterceptorRegistry registry) {

    registry.addInterceptor(validationInterceptor).addPathPatterns("/**")
    .excludePathPatterns("/v2/api-docs", "/configuration/ui", 
            "/swagger-resources/**", "/configuration/**", "/swagger-ui.html"
            , "/webjars/**", "/csrf", "/");
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html")
      .addResourceLocations("classpath:/META-INF/resources/");

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

}

, Так как Вам, вероятно, придется позволить @EnableWebMvc добавить перехватчики, которым Вам, вероятно, также придется добавить обработчики ресурсов для расхаживания подобные, я выполнил в вышеупомянутом фрагменте кода.

0
ответ дан 31 October 2019 в 17:12

Другие вопросы по тегам:

Похожие вопросы: