Spring 安全性中的全局身份验证和本地身份验证之间的区别



大家好,我是春季安全新手,我找到了有关身份验证全局(@Autowired配置(和本地身份验证(@Override配置(的文章

你能告诉我@Autowired配置((和@Override配置有什么区别吗?

//全球

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("admin@password").roles("ROLE_ADMIN");
}
}

//当地

@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("admin").password("admin@password").roles("ROLE_ADMIN");
}
}

一种看待它的方式是全局AuthenticationManager是"全局的",因为它可以作为 Bean 在应用程序之间共享,因此当您@AutowireAuthenticationManager时,您必须配置全局AuthenticationManager。否则,您像上面那样在本地配置的AuthenticationManager将仅存在于WebSecurityConfigurerAdapter的上下文中。

在春季网站上查看本指南。

身份验证和访问控制指南(与NatFar提供的链接相同(描述了以下内容

有时应用程序具有受保护资源的逻辑组 (例如,与路径模式/api/** 匹配的所有 Web 资源(,以及每个 组可以有自己的专用身份验证管理器。通常,每个 他们是提供者经理,他们共享一个父级。父级是 然后是一种"全局"资源,充当所有人的后备 供应商。

该图像描绘了全局(父(和本地资源,这是不言自明

的还通过链接:

https://github.com/spring-projects/spring-security/issues/4571

https://github.com/spring-projects/spring-security/issues/4324

相关内容

  • 没有找到相关文章

最新更新