我正在使用Spring 4开发一个REST API。我想使用Spring Security保护某些端点,但是根据我的阅读,可以使用@EnableGlobalMethodSecurityor 来完成@EnableWebSecurity。不幸的是,我为这些工具找到的文档没有清楚地说明它们的作用(或它们之间的比较)。如果我想基于标准关系数据库中声明的数据和关系通过身份验证和授权来保护Spring REST API,在Spring 4中推荐的方法是什么?
@EnableGlobalMethodSecurity
@EnableWebSecurity
EnableWebSecurity将通过HttpSecurity提供配置,提供您可以<http></http>在xml配置中使用标记找到的配置,它允许您根据url模式,身份验证端点,处理程序等来配置访问权限。
EnableWebSecurity
<http></http>
EnableGlobalMethodSecurity提供方法的AOP安全性,它会启用一些注释PreAuthorize PostAuthorize以及对JSR-250的支持。配置中还有更多参数供您选择
EnableGlobalMethodSecurity
PreAuthorize
PostAuthorize
为了您的需要,最好将两者结合在一起。借助REST,您可以仅使用来实现所需的全部功能@EnableWebSecurity,因为它HttpSecurity#antMatchers(HttpMethod,String...)接受对Http方法的控制
HttpSecurity#antMatchers(HttpMethod,String...)