SecurityRequestMatcherProviderAutoConfiguration源码分析

概述

SecurityRequestMatcherProviderAutoConfiguration的作用是自动配置一个RequestMatcherProvider,提供一个RequestMatcher

SecurityRequestMatcherProviderAutoConfiguration

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@Configuration
@ConditionalOnClass({ RequestMatcher.class })
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET)
public class SecurityRequestMatcherProviderAutoConfiguration {

@Configuration
@ConditionalOnClass(DispatcherServlet.class)
@ConditionalOnBean(HandlerMappingIntrospector.class)
public static class MvcRequestMatcherConfiguration {

@Bean
@ConditionalOnClass(DispatcherServlet.class)
public RequestMatcherProvider requestMatcherProvider(HandlerMappingIntrospector introspector) {
return new MvcRequestMatcherProvider(introspector);
}

}

@Configuration
@ConditionalOnClass(ResourceConfig.class)
@ConditionalOnMissingClass("org.springframework.web.servlet.DispatcherServlet")
@ConditionalOnBean(JerseyApplicationPath.class)
public static class JerseyRequestMatcherConfiguration {

@Bean
public RequestMatcherProvider requestMatcherProvider(JerseyApplicationPath applicationPath) {
return new JerseyRequestMatcherProvider(applicationPath);
}

}

}
  1. 将MvcRequestMatcherProvider注册到spring容器中
  2. 如果当前项目是基于jersey框架的则将JerseyRequestMatcherProvider注册到spring容器中

总结

SecurityRequestMatcherProviderAutoConfiguration的作用很简单就是将一个RequestMatcherProvider实例注册到spring容器中,这个RequestMatcherProvider会提供一个RequestMatcher,与spring-security一同工作