AuthorityUtils

本文介绍了如何在Spring Security中利用AuthorityUtils进行用户权限处理。通过`commaSeparatedStringToAuthorityList`方法,可以将逗号分隔的权限字符串转换为权限列表,而`createAuthorityList`方法则允许按需传入单个权限。此外,`authorityListToSet`方法将权限列表转化为Set,方便权限管理。示例展示了在`UserDetailsServiceImpl`中加载用户时如何应用这些方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值