springdoc-openapi-ui तक अनाम पहुंच की अनुमति कैसे दें (OpenAPI 3.0 /swagger-ui.html) स्प्रिंग सुरक्षा द्वारा सुरक्षित स्प्रिंग बूट एप्लिकेशन में?

6
Evgeniy Khyst 24 जिंदा 2020, 17:27

2 जवाब

स्प्रिंग वेबफ्लक्स में एक्सेस प्राप्त करने के लिए आपको निम्नलिखित कार्य करने होंगे, स्प्रिंग-डॉक संस्करण 1.5.2 के साथ परीक्षण किया गया:

स्वैगर वेबपेज html संसाधनों पर /webjars/swagger-ui पथ के साथ विफल हो रहा था।

@Configuration
@EnableWebFluxSecurity
public class WebSecurityConfig {

  @Bean
  SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
    return http.
        .authorizeExchange()
        .pathMatchers(
            "/v3/api-docs/**", "/swagger-ui/**", "/swagger-ui.html", "/webjars/swagger-ui/**")
        .permitAll()
        .anyExchange()
        .authenticated()
        .and()
        .build();
  }
}
0
jkamcc 23 पद 2020, 15:57

एवगेनी के उत्तर के अतिरिक्त, मैं स्वैगर के यूआई (जैसे जेएस, एचटीएमएल, छवियों और अन्य फाइलों) में उपयोग किए जाने वाले दस्तावेज़ लाने के साथ संघर्ष से बचने के लिए उचित कॉन्फ़िगरेशन जोड़ूंगा, सुरक्षा कॉन्फिग क्लास में भी इस तरह:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
   //Other configuration methods
   
   @Override
   public void configure(WebSecurity web) {
    web.ignoring()
    .antMatchers("/v3/api-docs/**", "/swagger-ui/**");
   }
}

इस कॉन्फ़िगरेशन के बिना, भले ही UI ऐसा लगता है कि यह लोड हो गया है, उपरोक्त फ़ाइलों को लोड करते समय पृष्ठभूमि कॉल पर एक 401: Unauthorized उत्पन्न हो सकता है।

0
batero 10 सितंबर 2020, 15:27