我们今天对昨天巴巴运动网权限管理模块做点内容的补充 ① employee.addPrivilegeGroup(new PrivilegeGroup(id));这段代码使用构造方法new了一个新的权限组,然后把它添加到用户属性中去;在很多的框架中都可以进行此操作,因为只需要在中间表建立起用户ID和权限组ID之间的关系就可以了,而不需要权限组别的属性值。 ② 权限拦截:粗粒度的权限拦截在以前的博客中有所提到,这里我就省略了;重点分析一下细粒度的权限拦截:目前常用的方法有两种,我们一一介绍 1) 为权限拦截建立一个blinding(绑定)表,将类,方法,权限值绑定起来保存在数据库表中,系统初始化时加载到计算机内存中,使用AOP技术对具体方法操作进行拦截,判断当前登录用户的权限组里面是否具有该权限,具有的话,执行该操作,否则提示“该用户不具有此操作权限” 2) 采用注解方式(类似于xml,完成配置功能)定义具体方法所具备的权限:首先需要定义一个Annotation(定义模块和权限值),@Retention定义注解的生命周期,@Target定义注解标注位置 @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface Permission { String module(); String privilege(); } 在Action方法中通过注解@Permission指定执行该方法所需的权限值;新建一个切面类Interceptor,使用环绕通知对切入点定义的方法进行拦截通知 3) Spring的切面类无法对继承DispatchAction中定义的方法进行拦截(因为Spring没有通过代理类而是直接通过反射技术调取目标对方的方法),解决此问题的方法:定义一个请求处理器类PrivilegeRequestProcessor继承DelegatingRequestProcessor类,由此类管理Action,重写其中的processActionPerform方法 4)processActionPerform方法先获取用户当前执行的方法,然后验证用户是否具有执行当前方法的权限,如果有,继续往前执行,如果没有,则返回用户控制页面,并提示用户没有执行该操作的权限 5)可以通过自定义标签来控制不同用户权限可以看到的不同用户操作界面 第二种方式更加便于维护,而且效率也更高,所以,我们这里采用的是第二种方式进行权限的拦截 这部分的内容应用性很强,大家认真掌握,找工作很有益处。
android打开运动权限 打开运动数据权限设置
转载文章标签 android打开运动权限 interceptor spring action string 文章分类 Android 移动开发

-
Android WPS SDK 打开文档功能初体验
android WPS sdk 打开文档 word 文字 ppt 演示 pdf excel表格 开发 体验
android WPS 文档 打开 sdk -
Android 运动健身权限 开启运动健身权限在哪
本文参考传智播客巴巴运动网视频。 1)部门模块 1)设计实体/数据库表(领域建模/数据库建模) 2)设计业务bean(DAO层) &
Android 运动健身权限 权限 JAVA 细粒度 分配权限 -
apollo 连接 test环境
Apollo-配置文档Apollo部署相关Apollo项目地址有着十分详细的文档,社区活跃,目前维护稳定,提issue作者会及时回答解决首先从github把项目clone到本地重点是adminservice,configservice,portal,这几个module,其他都是依赖包,demo是作者写的如何集成Apollo服务端的示例代码configservice配置获取接口配置推送接口服务于Ap
apollo 连接 test环境 apollo部署 apollo apollo服务端 apollo Linux