这两种不同的安全方法有什么不同?
第一个依赖于从Spring Security配置HttpSecurity
对象。
第二个依赖于在每个方法或类上放置@PreAuthorize("isAuthenticated()")
。
第一种情况:
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.anyRequest()
.authenticated();
}
}
第二种情况:
每个方法/类的 @PreAuthorize("isAuthenticated()")
。
第一种方法看起来更好,因为您一次保护所有端点,使用@PreAuthorize
需要更多工作。但这两者之间的实际差异是什么?
答案 0 :(得分:1)
可以在WebSecurityConfigurerAdapter上授权所有请求,并在每个服务上使用PreAuthorize执行安全性。
使用WebSecurityConfigurerAdapter的优点是概述您的安全访问权限。 但@PreAuthorize允许您进行更细粒度的安全处理。例如,您可以告诉用户只有在撰写本文时才有权编辑文章。
我认为在一个大型应用程序中,可以同时使用它们。