如何在我的项目中正确配置 Spring 安全性?

How to correctly configure Spring Security into my project?

我正在学习 Spring 核心认证,我对如何正确配置 Spring 安全性.

有一些疑问

进入学习material发现这些资料我好像不太清楚

它说:

应用程序上下文中的配置:

它显示了以下示例:

<beans>
    <security:http>
        <security:intercept-url pattern="/accounts/**" access="IS_AUTHENTICATED_FULLY" />
        <security:form-login login-page="/login.htm"/>
        <security:logout logout-success-url="/index.html"/>
   </security:http>
</beans>

然后在下面的幻灯片中说:

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 项目中配置 Spring 安全性,我必须同时使用这两个配置:第一个进入 Spring 配置文件(我定义我的 bean 的地方)和第二个到 web.xml 文件(它定义了服务器需要知道的关于你的应用程序的一切:servlets、过滤器、初始化参数等等on...) 或者如果这些示例是用 2 种不同的方式做同样的事情的 2 种不同的选择?

如果是第二种情况,什么时候用第一种,什么时候用第二种?

你应该做两件事:

  • 配置您的 http 请求的安全性(在 applicationContext 中)
  • 使用 web.xml
  • 配置您的应用程序容器以了解您的安全配置

所以幻灯片是两个步骤,而不是两个备选方案。

编辑: 第一步将允许您配置哪些 url 将受到保护,哪些不会受到保护(以及更多选项)

第二步是让您的配置应用到您的应用

希望对您有所帮助