@EnableGlobalMethodSecurity 与 @EnableWebSecurity
@EnableGlobalMethodSecurity vs @EnableWebSecurity
我正在使用 Spring 4 开发 REST API。我想使用 Spring 安全性来保护一些端点,但根据我读过的内容,这可以使用 @EnableGlobalMethodSecurity
或 @EnableWebSecurity
完成。不幸的是,我找到的关于这些的文档并没有清楚地解释它们的作用(或者它们是如何比较的)。如果我想通过基于标准关系数据库中声明的数据和关系的身份验证和授权来保护 Spring REST API,在 Spring 4 中推荐的实现方法是什么?
EnableWebSecurity
将通过 HttpSecurity 提供配置。这是您可以在 xml 配置中使用 <http></http>
标记找到的配置,它允许您根据 url 模式、身份验证端点、处理程序等配置您的访问...
EnableGlobalMethodSecurity
在方法上提供 AOP 安全性。它提供的一些注释是 PreAuthorize
、PostAuthorize
。它还支持 JSR-250. There are more parameters in the configuration for you
根据您的需要,最好将两者混合使用。使用 REST,您只需使用 @EnableWebSecurity
即可实现所需的一切,因为 HttpSecurity#antMatchers(HttpMethod,String...)
接受对 Http 方法的控制
我正在使用 Spring 4 开发 REST API。我想使用 Spring 安全性来保护一些端点,但根据我读过的内容,这可以使用 @EnableGlobalMethodSecurity
或 @EnableWebSecurity
完成。不幸的是,我找到的关于这些的文档并没有清楚地解释它们的作用(或者它们是如何比较的)。如果我想通过基于标准关系数据库中声明的数据和关系的身份验证和授权来保护 Spring REST API,在 Spring 4 中推荐的实现方法是什么?
EnableWebSecurity
将通过 HttpSecurity 提供配置。这是您可以在 xml 配置中使用 <http></http>
标记找到的配置,它允许您根据 url 模式、身份验证端点、处理程序等配置您的访问...
EnableGlobalMethodSecurity
在方法上提供 AOP 安全性。它提供的一些注释是 PreAuthorize
、PostAuthorize
。它还支持 JSR-250. There are more parameters in the configuration for you
根据您的需要,最好将两者混合使用。使用 REST,您只需使用 @EnableWebSecurity
即可实现所需的一切,因为 HttpSecurity#antMatchers(HttpMethod,String...)
接受对 Http 方法的控制