在Spring Boot配置安全性

时间:2016-09-29 12:11:48

标签: java rest spring-boot

我在春季靴子里很新。我正在尝试在后端使用mongodb创建REST服务。在mongodb中,我制作了Customers表和sekond用户表。在users表中,我将用户名,密码和角色的列定义为一个系列。尝试从表用户验证访问REST服务的用户。 在Internet上,当我们扩展GlobalSeuthenticationConfigurerAdapter时,我发现了两种扩展WebSecurityConfigurerAdapter或第二种方式的情况。在第一种情况下,我在web上找到了bean,我们制作了自定义AuthenticationProvider,但第二种方式是处理UserDetailsS​​erivce。 我的问题是我如何深入研究这个问题? 即使在巨大的接口端类的源代码中观看,我也不能像教程那样以不同的方式完成这些工作。 这两种方式的主要区别是什么? 谁处理或如何处理Spring-boot安全性?(是否有类似处理MVC的调度程序servlet?)

2 个答案:

答案 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");
}

或实现依赖于您的UserDetailsS​​ervice实现:

@Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
authenticationManagerBuilder
                .userDetailsService(userDetailsService)
                .passwordEncoder(passwordEncoder());
}

Here是如何在Spring Boot上启动SpringSecurity的示例