Spring Security如何实现动态Url权限配置

本文介绍了如何使用Spring Security实现动态Url权限配置,避免在配置文件中硬编码权限信息。通过构建数据库表,配置MetadataSource、AccessDecisionManager和SecurityConfig,实现了从数据库中动态读取权限控制规则。详细步骤包括创建Role和Url表,实现FilterInvocationSecurityMetadataSource,配置AccessDecisionManager,以及最后的SecurityConfig设置。
摘要由CSDN通过智能技术生成

参考文章:https://segmentfault.com/a/1190000010672041
因为Spring Security默认都是在程序的配置类或者配置文件写死哪些资源受哪些角色(权限)控制,要想随时更改就很麻烦,所以着手把它修改为从数据库中动态读取

一、构建表

数据库我构建了role和url两张表,分别储存角色信息和保护资源分配信息

@Entity
public class Role implements GrantedAuthority,ConfigAttribute {
   

	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Long id;

	@Column(nullable = false)
	private String name;

	public Long getId() {
   
		return id;
	}

	public void setId(Long id) {
   
		this.id = id;
	}

	@Override
	public String getAuthority() {
   
		return name;
	}

	public void setName(String name) {
   
		this.name = name;
	}

	public String getName() {
   
		return name;
	}

	@Override
	public String getAttribute() {
   
		// TODO 自动生成的方法存根
		return name;
	}
	
}
@Entity
public class Url {
   
	
	@Id
	@GeneratedValue(generator="id")
	@GenericGenerator(name="id", strategy = "uuid")
	private String id;
	
	@Column(nullable = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值