我希望在Spring Boot应用程序中实现Spring Security。之前,我已经使用JavaConfig在我的Spring 4.0应用程序中完成了这项工作。然而,我发现示例的风格存在一些差异。
在我的情况下,用户是预认证的,并且我们有自己的授权机制,其中包含业务活动。
在我的旧应用程序中,我使用以下配置:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
这个过滤器实际上会在我的应用程序中启用Spring Security,进而将用户令牌传递给更进一步的步骤。
在Spring Boot参考文档中,我没有找到任何关于springSecurityFilterChain/DelegatingFilterProxy的痕迹,所以我不确定如何开始开发我的模块。
所以问题是,我需要手动配置它吗?还是已经在自动配置中处理了?
其次,我需要对Spring Security进行许多自定义设置,因此我不需要Spring Boot Security提供的基本身份验证功能。在这种情况下,只需创建具有@EnableWebSecurity注释的自己的bean即可关闭功能?
其他信息
4.2.使用安全命名空间配置入门 在本节中,我们将介绍如何构建一个命名空间配置,以使用框架的一些主要功能。假设您最初想尽快启动并向现有Web应用程序添加身份验证支持和访问控制,并进行一些测试登录。然后,我们将介绍如何更改为对数据库或其他安全存储库进行身份验证。在后面的章节中,我们将介绍更高级的命名空间配置选项。
4.2.1. web.xml配置 您需要做的第一件事是在web.xml文件中添加以下过滤器声明:
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
这提供了一个钩子进入Spring Security web基础设施。DelegatingFilterProxy是Spring Framework的一个类,它委托给在应用程序上下文中定义为Spring bean的过滤器实现。在这种情况下,bean的名称为"springSecurityFilterChain",它是由命名空间创建的内部基础设施bean,用于处理Web安全性。请注意,您不应该自己使用此bean名称。一旦将其添加到web.xml中,您就可以开始编辑应用程序上下文文件了。Web安全服务是使用元素配置的。