AuthorityUtils
此类一般用于UserDetailsService的实现类中的loadUserByUsername方法

此工具类一共有三个方法:

commaSeparatedStringToAuthorityList
作用为给user账户添加一个或多个权限,用逗号分隔,底层调用的是createAuthorityList方法,唯一区别在于此方法把所有的权限包含进一个字符串参数中,只不过用逗号分隔。

@Service
public class UserDetailsServiceImpl implements UserDetailsService{
	
	@Autowired
	PasswordEncoder passwordEncoder;
	
	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		//比较用户名
		if("admin".equals(username)) {
			throw new UsernameNotFoundException("用户名不存在");
		}
		//比较密码
		String pass=passwordEncoder.encode("123");//加密
		return new User(username,pass,AuthorityUtils.commaSeparatedStringToAuthorityList("admin,normal"));
	}
	
}



createAuthorityList

将权限转换为List,如

@Service
public class UserDetailsServiceImpl implements UserDetailsService{
	
	@Autowired
	PasswordEncoder passwordEncoder;
	
	@Override
	public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
		//比较用户名
		if("admin".equals(username)) {
			throw new UsernameNotFoundException("用户名不存在");
		}
		//比较密码
		String pass=passwordEncoder.encode("123");//加密
		List<GrantedAuthority> list=AuthorityUtils.createAuthorityList("admin","normal");//一个权限一个参数
		return new User(username,pass,list);
	}
}



authorityListToSet

将GrantedAuthority对象的数组转换为Set

List<GrantedAuthority> list=AuthorityUtils.createAuthorityList("admin","normal");
		Set<String> set=AuthorityUtils.authorityListToSet(list);