SpringSecurity连接数据库实现登录认证
首先,使用SpringSecurity
前需要知道的一点是:要想使用SpringSecurity
必须继承WebSecurityConfigurerAdapter
父类(重写两个configure
方法),SpringSecurity
中进行认证需要实现UserdetailService
接口,把用户名和密码写死的内存中认证为以下写法:
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws
Exception {
auth.inMemoryAuthentication().passwordEncoder(new MyPasswordEncoder())
.withUser("user").password(new //密码之所以需要MyPasswordEncoder是因为SpringSecurity要求密码必须有加密方法
MyPasswordEncoder().encode("000")).roles("USER")//用户名user,密码000
.and()
.withUser("admin").password(new
MyPasswordEncoder().encode("123")).roles("ADMIN","USER");//用户名admin,密码123
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/admin").hasRole("ADMIN")
.antMatchers("/index").access("hasRole('ADMIN') or
hasRole('USER')")
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage