Sa-Token icon indicating copy to clipboard operation
Sa-Token copied to clipboard

路由拦截鉴权能否支持动态配置

Open JokerQueue opened this issue 3 years ago • 1 comments

对以下问题有疑问:

路由拦截鉴权,能否做成配置式的,就是不需要硬编码一个一个添加SaRouter.match SaRouter.match("/user/**", r -> StpUtil.checkPermission("user")); SaRouter.match("/admin/**", r -> StpUtil.checkPermission("admin"));

而是做成key,value式的文件配置,例如 "/user/**": "user" "/admin/**": "admin" 这样配置简单很多,还可以进一步支持动态修改配置,比如通过配置中心同步配置,用在网关时也容易维护。

JokerQueue avatar Jul 22 '22 07:07 JokerQueue

lambda 方式是为了更加灵活,因为一个path可能不光要校验权限,还要校验角色、或者其它的验证方式, 如果追求简洁,可以手动封装一下鉴权的代码,例如:

Map<String, String> authMap = new LinkedHashMap<>();
authMap.put("/user/**", "user");
authMap.put("/admin/**", "admin");
authMap.put("/article/**", "article");
// ... 
		
for (String path : authMap.keySet()) {
	SaRouter.match(path, () -> StpUtil.checkPermission(authMap.get(path)));
}

click33 avatar Jul 22 '22 12:07 click33