# 8.4.1. MVC安全

默认安全配置在`SecurityAutoConfiguration`和`UserDetailsServiceAutoConfiguration`中实现。 `SecurityAutoConfiguration`导入`SpringBootWebSecurityConfiguration`用于 Web 安全并且`UserDetailsServiceAutoConfiguration`配置身份验证，这在非 Web 应用程序中也相关。

要完全关闭默认的 Web 应用程序安全配置或组合多个 Spring Security 组件（例如 OAuth2 客户端和资源服务器），请添加`SecurityFilterChain` 类型的 bean （这样做不会禁用`UserDetailsService`配置或执行器的安全性）。要同时关闭`UserDetailsService`配置，您可以添加类型为`UserDetailsService`、`AuthenticationProvider`或`AuthenticationManager` 的bean 。

`UserDetailsService`的自动配置还将取消类路径上的以下任何 Spring Security 模块：

* `spring-security-oauth2-client`
* `spring-security-oauth2-resource-server`
* `spring-security-saml2-service-provider`

要在这些依赖项中的一个或多个之外使用 `UserDetailsService`，请定义您自己的 `InMemoryUserDetailsManager` bean。

可以通过添加自定义`SecurityFilterChain` bean 来覆盖访问规则。Spring Boot 提供了方便的方法，可用于覆盖执行器端点和静态资源的访问规则。 `EndpointRequest`可以用来创建一个基于`management.endpoints.web.base-path`属性的`RequestMatcher`。 `PathRequest`可用于在常用位置创建`RequestMatcher`资源。
