package me.test;
import java.util.ArrayList;
import java.util.List;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
public class MyUserDetailsService implements UserDetailsService {
public UserDetails loadUserByUsername(String username)
throws UsernameNotFoundException {
// 这里的userName应当是 员工ID 或者 员工别名
// 然后从数据库中读取相应信息,构建、填充UserDetails对象并返回。
String password = null;
boolean enabled = false;
boolean accountNonExpired = false;
boolean credentialsNonExpired = false;
boolean accountNonLocked = false;
List<GrantedAuthority> authorities = new ArrayList<GrantedAuthority>();
if ("zhang3".equals(username)) {
password = "123";
enabled = true;
accountNonExpired = true;
credentialsNonExpired = true;
accountNonLocked = true;
authorities.add(new SimpleGrantedAuthority("XROLE_READ_APPOINTMENT"));
} else if ("li4".equals(username)) {
password = "123";
enabled = true;
accountNonExpired = true;
credentialsNonExpired = true;
accountNonLocked = true;
authorities.add(new SimpleGrantedAuthority("XROLE_READ_STAFF"));
} else if ("wang5".equals(username)) {
password = "123";
enabled = true;
accountNonExpired = true;
credentialsNonExpired = true;
accountNonLocked = true;
authorities.add(new SimpleGrantedAuthority("XROLE_READ_APPOINTMENT"));
authorities.add(new SimpleGrantedAuthority("XROLE_READ_STAFF"));
}
// User这个类是Spring提供的,如果需要附带更多信息,可以扩展它。
return new User(username, password, enabled, accountNonExpired,
credentialsNonExpired, accountNonLocked, authorities);
}
}