我在春季靴子里很新。我正在尝试在后端使用mongodb创建REST服务。在mongodb中,我制作了Customers表和sekond用户表。在users表中,我将用户名,密码和角色的列定义为一个系列。尝试从表用户验证访问REST服务的用户。 在Internet上,当我们扩展GlobalSeuthenticationConfigurerAdapter时,我发现了两种扩展WebSecurityConfigurerAdapter或第二种方式的情况。在第一种情况下,我在web上找到了bean,我们制作了自定义AuthenticationProvider,但第二种方式是处理UserDetailsSerivce。 我的问题是我如何深入研究这个问题? 即使在巨大的接口端类的源代码中观看,我也不能像教程那样以不同的方式完成这些工作。 这两种方式的主要区别是什么? 谁处理或如何处理Spring-boot安全性?(是否有类似处理MVC的调度程序servlet?)
答案 0 :(得分:1)
@vmaric我还没有使用它,但看起来逻辑是一样的:
@Configuration
public class AuthenticationManagerConfiguration extends
GlobalAuthenticationConfigurerAdapter {
@Override
public void init(AuthenticationManagerBuilder auth) {
auth.inMemoryAuthentication() // ... etc. <-------
}
}
答案 1 :(得分:0)
根据Spring Security,您必须提供安全配置:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter
使用提供AuthenticationManager的覆盖方法:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {...}
它可以是内存实现:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication() .withUser("user").password("password").roles("USER").and() .withUser("admin").password("password").roles("USER", "ADMIN");
}
或实现依赖于您的UserDetailsService实现:
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
authenticationManagerBuilder
.userDetailsService(userDetailsService)
.passwordEncoder(passwordEncoder());
}
Here是如何在Spring Boot上启动SpringSecurity的示例