Spring WebSecurityConfigurerAdapter API

时间:2013-12-24 09:42:47

标签: java spring spring-security

过去几天我一直在玩Spring,事情变得很有趣。我现在正在与安全部门合作,我遇到了一个小问题。基本上,我希望通过API调用而不是表单进行身份验证。有没有一个巧妙的方法来做到这一点?

我像这样扩展了WebSecurityConfigurerAdapter -

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .authorizeRequests()
                .antMatchers("/", "/home").permitAll()
                .antMatchers("/openapi/**").hasRole("USER")
                .anyRequest().authenticated();

        http
                .formLogin()
                .defaultSuccessUrl("/hello")
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll();
    }

    @Override
    protected void configure(AuthenticationManagerBuilder authManagerBuilder) throws Exception {
        authManagerBuilder.inMemoryAuthentication()
                .withUser("user").password("password").roles("USER");

        authManagerBuilder.inMemoryAuthentication()
                .withUser("manager").password("password").roles("MANAGER");
    }
}

有没有办法从数据库中获取用户名和密码,我可以通过API调用执行身份验证吗?

2 个答案:

答案 0 :(得分:-1)

Spring Security 3 database authentication with Hibernate

这看起来很有希望。它需要创建自定义身份验证管理器。

答案 1 :(得分:-1)

您可以使用jdbc身份验证和Java配置,如参考http://docs.spring.io/spring-security/site/docs/3.2.x/reference/htmlsingle/#jc-authentication-jdbc

中所述