spring security 设置用户名和密码的方式有三种:
方式一:
通过配置文件:
在application.properties配置文件中配置用户名和密码
spring.security.user.name=mary //用户名
spring.security.user.password=123 //密码
方式二:
通过配置类配置
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String password = passwordEncoder.encode("111");
auth.inMemoryAuthentication().withUser("lucy").password(password).roles("");
}
@Bean
PasswordEncoder password(){
return new BCryptPasswordEncoder();
}
}
方式三:
自定义编写实现类
第一步:创建配置类,设置使用哪个userDetailService实现类
第二步:编写实现类,返回User对象,User对象中右用户名和密码
①配置类
@Configuration
public class SecurityConfigTest extends WebSecurityConfigurerAdapter {
//注入实现类userDetailsService
@Autowired
private UserDetailsService userDetailsService;
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService).passwordEncoder(password());
}
@Bean
PasswordEncoder password(){
return new BCryptPasswordEncoder();
}
②创建实现类
@Service("userDetailsService")
public class MyUserDetailService implements UserDetailsService {
@Override
public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
//登录者的权限,可能有多种权限,所以是一个List集合
List<GrantedAuthority> auths =
AuthorityUtils.commaSeparatedStringToAuthorityList("role");
return new User("mary",new BCryptPasswordEncoder().encode("123"),auths);
/new BCryptPasswordEncoder().encode("123") 给密码加密
}
}