过去几天我一直在玩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调用执行身份验证吗?
答案 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
中所述