Я хочу установить SWAGER для моего приложения SpringBoot. Кажется, что JWT не дает доступ к чванливым URL.
Я пытаюсь достичь этого по URL localhost:8088/swagger-ui.html
Вот класс SwaggerConfig
@EnableSwagger2
@Configuration
public class SwaggerConfig {
@Bean
public Docket productApi() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("Path.to.my.controller"))
.build();
}
}
Также я пытался добавить WebAppConfig из ссылки со следующим содержанием
@Configuration
@EnableWebMvc
public class WebAppConfig extends WebMvcConfigurerAdapter {
@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/");
}
}
И попытался установить игнорировать URL:
@Configuration
public class WebSecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
}
Эта версия кода дает автоматическое перенаправление на "localhost: 8088 / login" с URL-адреса swagger. Но следующая возвращает просто пустую страницу
ОБНОВЛЕНО
web.ignoring().antMatchers("/", "/configuration/ui", "/swagger-resources", "/configuration/security", "/swagger-ui.html", "/webjars/**");
URL-адреса в пробелах - это URL-адреса, которые я видел, когда выполнял отладку. Эти URL называются чванством.
ОБНОВЛЕННАЯ часть Конец
Основной класс
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
public static void main(String[] args) {
TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
SpringApplication app = new SpringApplication(Application.class);
app.run();
}
@Bean
@Autowired
public FilterRegistrationBean jwtFilterRegistration(JwtUtil jwtUtil, UserService userService) {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new JwtFilter(jwtUtil, userService));
filterRegistrationBean.addUrlPatterns("/*");
// ordering in the filter chain
filterRegistrationBean.setOrder(1);
return filterRegistrationBean;
}
// Request Interceptor for checking permission with custom annotation.
@Bean
public MappedInterceptor PermissionHandlerInterceptor() {
return new MappedInterceptor(null, new PermissionHandlerInterceptor());
}
}
Pom xml содержит все необходимые зависимости. Когда я комментирую в методе jwt Главного класса, я могу получить доступ к чванству. Итак, я сделал вывод, что проблема в JWT.
Если потребуется дополнительная информация, я добавлю.
ОБНОВЛЕНО
Сначала swagger-url выдает White Label Page с ошибкой "Unathorized"
После некоторых манипуляций с кодом выдает пустую страницу.