You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.1 KiB
58 lines
2.1 KiB
package com.example.demo;
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.context.annotation.Configuration;
|
|
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
|
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;
|
|
|
|
import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.stream.Collectors;
|
|
|
|
/**
|
|
* @author yanpeng
|
|
* @version 1.0
|
|
* @desc TODO
|
|
* @company 北京中经网软件有限公司
|
|
* @date 2020/10/29 13:54
|
|
*/
|
|
@Slf4j
|
|
@Configuration
|
|
public class DemoApplicationConfiguration {
|
|
|
|
@Bean
|
|
public UserDetailsService myUserDetailsService() {
|
|
|
|
InMemoryUserDetailsManager inMemoryUserDetailsManager = new InMemoryUserDetailsManager();
|
|
|
|
String[][] usersGroupsAndRoles = {
|
|
{"salaboy", "password", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"},
|
|
{"ryandawsonuk", "password", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"},
|
|
{"erdemedeiros", "password", "ROLE_ACTIVITI_USER", "GROUP_activitiTeam"},
|
|
{"other", "password", "ROLE_ACTIVITI_USER", "GROUP_otherTeam"},
|
|
{"admin", "password", "ROLE_ACTIVITI_ADMIN"},
|
|
};
|
|
|
|
for (String[] user : usersGroupsAndRoles) {
|
|
List<String> authoritiesStrings = Arrays.asList(Arrays.copyOfRange(user, 2, user.length));
|
|
log.info("> Registering new user: " + user[0] + " with the following Authorities[" + authoritiesStrings + "]");
|
|
inMemoryUserDetailsManager.createUser(new User(user[0], passwordEncoder().encode(user[1]),
|
|
authoritiesStrings.stream().map(s -> new SimpleGrantedAuthority(s)).collect(Collectors.toList())));
|
|
}
|
|
|
|
|
|
return inMemoryUserDetailsManager;
|
|
}
|
|
|
|
|
|
@Bean
|
|
public PasswordEncoder passwordEncoder() {
|
|
return new BCryptPasswordEncoder();
|
|
}
|
|
|
|
}
|