package cn.echocow.oauth.authorization.config; import org.springframework.context.annotation.Bean; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.provisioning.InMemoryUserDetailsManager; /** * spring security * * @author <a href="https://echocow.cn">EchoCow</a> * @date 19-7-9 下午3:54 */ @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { /** * 密码加密方式,spring 5 后必须对密码进行加密 * * @return BCryptPasswordEncoder */ @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } /** * 创建两个内存用户 * 用户名 user 密码 123456 角色 ROLE_USER * 用户名 admin 密码 admin 角色 ROLE_ADMIN * * @return InMemoryUserDetailsManager */ @Bean @Override public UserDetailsService userDetailsService() { InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager(); manager.createUser(User.withUsername("user") .password(passwordEncoder().encode("123456")) .authorities("ROLE_USER").build()); manager.createUser(User.withUsername("admin") .password(passwordEncoder().encode("admin")) .authorities("ROLE_ADMIN").build()); return manager; } /** * 认证管理 * * @return 认证管理对象 * @throws Exception 认证异常信息 */ @Override @Bean public AuthenticationManager authenticationManagerBean() throws Exception { return super.authenticationManagerBean(); } }