1
18
19 package org.springdoc.security;
20
21 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
22 import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
23 import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
24 import org.springframework.context.annotation.Bean;
25 import org.springframework.context.annotation.Configuration;
26 import org.springframework.security.core.Authentication;
27 import org.springframework.security.core.annotation.AuthenticationPrincipal;
28 import org.springframework.security.oauth2.provider.endpoint.FrameworkEndpointHandlerMapping;
29
30 import static org.springdoc.core.Constants.SPRINGDOC_ENABLED;
31 import static org.springdoc.core.SpringDocUtils.getConfig;
32
33 @Configuration
34 @ConditionalOnProperty(name = SPRINGDOC_ENABLED, matchIfMissing = true)
35 public class SpringDocSecurityConfiguration {
36
37 static {
38 getConfig().addRequestWrapperToIgnore(Authentication.class)
39 .addResponseTypeToIgnore(Authentication.class)
40 .addAnnotationsToIgnore(AuthenticationPrincipal.class);
41 }
42
43 @Configuration
44 @ConditionalOnBean(FrameworkEndpointHandlerMapping.class)
45 class SpringSecurityOAuth2ProviderConfiguration {
46 @Bean
47 @ConditionalOnMissingBean
48 SpringSecurityOAuth2Provider springSecurityOAuth2Provider(FrameworkEndpointHandlerMapping oauth2EndpointHandlerMapping) {
49 return new SpringSecurityOAuth2Provider(oauth2EndpointHandlerMapping);
50 }
51 }
52 }
53