Я настроил весеннюю загрузку и JWT. Когда я вызываю / authenticate / login от почтальона, он игнорируется, как и ожидалось, и генерирует токен jwt. Когда я вызываю тот же API из swagger-ui.html, запрос не игнорируется. Вместо этого он обрабатывается для токена jwt и возвращает 401 исключений.
http.cors()
.and()
.csrf()enter code here
.disable()
.authorizeReques`enter code here`ts()
.antMatchers("/v2/api-docs/**").permitAll()
.antMatchers("/swagger-resources/configuration/ui").permitAll()
.antMatchers("/swagger-ui.html").permitAll()
.antMatchers("/webjars/springfox-swagger-ui/**").permitAll()
.antMatchers("/swagger-resources**").permitAll()
.antMatchers("/swagger.json").permitAll()
.antMatchers("/swagger-resources/configuration/security").permitAll()
.antMatchers("/authenticate/*", "/user/forgotpassword").permitAll()
.anyRequest().authenticated()
.and()
.exceptionHandling().authenticationEntryPoint(unauthorizedHandler)
.and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.addFilterBefore(authenticationTokenFilterBean(), UsernamePasswordAuthenticationFilter.class);
Ниже указан мой код конфигурации:
@Configuration
@EnableSwagger2
@Profile("!prod")
public class SwaggerConfig {
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.any())
.build()
.enable(true)
.securitySchemes(Arrays.asList(apiKey()));
}
@Bean
SecurityConfiguration security() {
return new SecurityConfiguration(null, null, null, null, "Bearer access_token", ApiKeyVehicle.HEADER,
SecurityConstants.AUTHORIZATION_HEADER, ",");
}
private ApiKey apiKey() {
return new ApiKey("Authorization", "Authorization", "header");
}
}
Это один и тот же URL как от чванства, так и от почтальона, но с разным поведением.
Что вызывает это странное поведение?