-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在使用apijson-router 接口权限方案咨询 #735
Comments
新增一个接口,加上 @preauth 注解,方法内部实现就是转发调用 APIJSON 的万能通用接口对应方法 |
注解里不允许变量,所以 "sysuser:save" 没法对应万能通用接口中灵活多变的 表名,例如 Moment, Comment 等,应该只对应 User 表。 |
不过 APIJSON 默认 增、删、改 是要在 Request 表里配置对应的 JSON 结构,里面就必须指定涉及的表,以及对应的 tag 和 version,其实这个就可以具体知道有哪些表,给每个对应请求一一指定 @preauth 对应的配置了,不过只要不一个个单独写接口,那仍然不能用注解形式,可以在 Request 表加字段。 |
因为是使用 apijson-router ,每个crud 都是单独的接口,所以我只想到在 document 表增加了一个字段,存储这个权限,然后根据请求地址,校验这个接口权限 |
对,是通过一个万能通用接口虚拟出来千变万化的单独“接口”,但注解参数只能是常量,编译运行后就不能变了。 |
突然又想到一个方案,就是把tag 作为接口权限,就可以动态校验了, "online:tag" tag 是动态的 |
tag 值在万能通用接口里也不是固定的,所以是一样的问题,要么就对应每个 tag 都单独写一个接口,要有对应的注解,内部则转发调用万能通用接口对应方法: @PreAuth("online:User")
@PostMapping("/get/User")
public String getUser(@RequestBody body) {
return getByTag("User", body); // 或 return crudByTag(RequestMethod.GET, "User", body);
}
@PreAuth("online:Comment")
@PostMapping("/post/Comment")
public String postComment(@RequestBody body) {
return postByTag("Comment", body); // 或 return crudByTag(RequestMethod.POST, "Comment", body);
} 要么还是把静态的注解代码改成动态表字段数据配置等形式使用 |
Description
在接入 apijson-router ,我想对每个用户访问接口做一个权限校验
例如:在编写代码的时候,接口上面会有一个鉴权权限的注解 (@preauth("sysuser:save")) 是否有新增的权限
我想对 apijson-router 的接口也实现类似的功能,有什么更好的方案
我目前是在 document 表增加了一个字段,存储这个权限,实现这个功能
The text was updated successfully, but these errors were encountered: