基于spring aop 权限管理系统原型

基于spring aop 权限管理系统原型

ID:15695103

大小:43.00 KB

页数:6页

时间:2018-08-04

基于spring aop 权限管理系统原型_第1页
基于spring aop 权限管理系统原型_第2页
基于spring aop 权限管理系统原型_第3页
基于spring aop 权限管理系统原型_第4页
基于spring aop 权限管理系统原型_第5页
资源描述:

《基于spring aop 权限管理系统原型》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于springaop权限管理系统原型此权限管理系统把待访问的业务层方法做为权限管理中的资源,通过springaop对接口方法进行拦截,来实现权限的管理,可以实现细粒度的权限控制。在上文体验了springaop一些特性,aop接口:MethodBeforeAdvice,AfterReturningAdvice,ThrowsAdvice实现这三个接口分别对方法执行前,后,执行中抛异常等情况进行的,我们要是想做overload这样的操作时,要用MethodInterceptor接口,此接口好在有返回值,publicObjectinvoke(

2、      MethodInvocationinvocation)      throwsThrowable  {//.}上文做法有些牵强业务逻辑还有throwsPermissionDeniedException感觉不爽,现在用MethodInterceptor接口,来写这个demo,把权限与业务分开。advice如下:publicclassPermissionCheckAroundAdviceimplementsMethodInterceptor{    SecurityManagersecurityMgr=newSecurityMa

3、nager();        /**//**    *@paramsecurityMgrThesecurityMgrtoset.    */    publicvoidsetSecurityMgr(SecurityManagersecurityMgr){        this.securityMgr=securityMgr;    }    publicObjectinvoke(MethodInvocationinvocation)throwsThrowable{        System.out.println("(被调用方法接

4、口类名:"                +invocation.getMethod().getDeclaringClass().getName()+")");        System.out.println("(被调用方法名:"+invocation.getMethod().getName()+")");        StringmethodName=invocation.getMethod().getDeclaringClass()                .getName()+"."+invocation.getMet

5、hod().getName();        System.out.println("(被调用方法全名:"+methodName+")");        System.out.println("有否权限:("+securityMgr.checkPermission(methodName)+")");        if(securityMgr.checkPermission(methodName))            returninvocation.proceed();        System.out.println("G

6、oodbye!NOPermission!(by"+this.getClass().getName()+")");        return"--";    }}服务层业务接口修改如下:publicinterfaceService{    publicStringgetBeanInfo();}服务层业务实现类如下:publicclassServiceBeanimplementsService{    ResourceBeanbean;    /**//**    *@parambeanThebeantoset.    */    pub

7、licvoidsetBean(ResourceBeanbean){        this.bean=bean;    }    publicStringgetBeanInfo(){        Stringresult="";                result+=bean.getMethod1();        result+=bean.getMethod2();        result+=bean.getMethod3();        returnresult;    }}资源层,接口,类如下:publicin

8、terfaceResource{}publicinterfaceResourceBeanextendsResource{    publicvoidtheMethod();    publicStringg

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。