我如何让Spring对我正在使用的数据库进行身份验证?

时间:2017-05-02 21:11:31

标签: spring spring-boot spring-security

我在Spring-boot驱动的API中有以下SecurityConfiguration。

@Configuration
@EnableGlobalMethodSecurity(prePostEnabled = true)
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.httpBasic().and().authorizeRequests()
                .antMatchers("/", "/helloWorld").permitAll()
                .anyRequest().authenticated();

        http.csrf().disable();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
            .withUser("user").password("password").roles("USER")
            .and().withUser("tester").password("password").roles("NOROLE");
    }
}

现在,这很好 - 它让我开始运行,测试我的资源等等。

但是在那一刻,我真的不知道如何使其适应我存储在数据库中的用户。我理解我需要遵循的逻辑:

  1. 获取凭据(例如电子邮件和通行证)
  2. 在电子邮件中找到一个
  3. 如果未找到记录,则表示用户无效 - 拒绝身份验证,请勿返回令牌。
  4. 否则,加密提供的密码,并检查它是否与存储的密码匹配。
  5. 如果匹配,则创建令牌,并将其返回给客户端。
  6. 否则,拒绝授权 - 不要返回令牌。
  7. 我之前使用node.js,mongo和mongoose做过这个 - 但是我不熟悉在Spring中调整这种方法。我真的可以使用一些指导。我一直在谷歌搜索相当数量,但所有的auth教程似乎只是转储我的方法,然后相信你知道如何适应它 - 这对我们这些没有使用教程的人来说很糟糕作为参考,而是实际学习春天。

    非常感谢所有帮助。感谢。

0 个答案:

没有答案