代码拉取完成,页面将自动刷新
同步操作将从 dromara/sureness 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
sureness
认证鉴权,当然也需要我们提供自己的账户数据,角色权限数据等,这些数据可能来自文本,关系数据库,非关系数据库,注解等。
我们提供了数据源接口:SurenessAccountProvider
- 账户数据接口, PathTreeProvider
- 资源权限数据接口,用户可以实现此接口实现自定义数据源。
sureness
实现注解权限的方式不是调用方法前aop判断,而是启动时扫描注解里的数据作为权限数据源来使用,这样方便了流程统一和框架无关性。
这里介绍下注解形式的权限数据源配置方法。
@Bean
TreePathRoleMatcher pathRoleMatcher() {
// 实例化资源权限路径匹配者,其会根据请求的路径和已有的资源权限数据匹配出所需的角色信息
DefaultPathRoleMatcher pathRoleMatcher = new DefaultPathRoleMatcher();
// 实例化注解形式的资源权限数据加载者AnnotationLoader,其实现了PathTreeProvider接口
AnnotationPathTreeProvider pathTreeProvider = new AnnotationPathTreeProvider();
// 设置AnnotationLoader要扫描的包路径,其会扫描包路径下所有类方法上的@RequiresRoles, @WithoutAuth 注解获取数据
pathTreeProvider.setScanPackages(Arrays.asList("com.usthe.sureness.sample.tom.controller"));
// 将AnnotationLoader数据源设置为sureness的权限资源数据源
pathRoleMatcher.addPathTreeProvider(pathTreeProvider);
pathRoleMatcher.buildTree();
return pathRoleMatcher;
}
@RequiresRoles(roles = {"role1", "role2"}, mapping = "/resource", method = "post")
其表示资源 /resource===post 的需要角色 role1或者role2才能访问
@WithoutAuth(mapping = "/resource/*", method = "put")
其表示资源 /resource/*===put 的可以被任何请求访问
sureness
提供了多个数据源同时加载的功能,即我们可以同时将注解形式的权限数据源和数据库里的配置数据作为数据源,加载到sureness配置中,
对于不常修改的权限配置,我们可以将其配置到注解,对于其他需要动态修改的权限数据,我们就将其配置到数据库中。当然也我们提供了默认文本数据源,默认文本数据源具体实现,请参考 一步一步搭建认证鉴权系统
数据源也可以来自数据库等存储,我们提供了接口让用户轻松的自定义数据源,详见自定义数据源
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。