spring aop实现权限控制,路径控制

spring aop 的权限的管理是通过对路径的控制来实现的 
现在共有两个角色,经理和员工 
经理的权限检查的代码 
MgrAuthorityInterceptor.java 
Java代码   收藏代码
  1. public class MgrAuthorityInterceptor implements MethodInterceptor  
  2. {  
  3.   
  4.     public Object invoke(MethodInvocation invocation) throws Throwable  
  5.     {  
  6.         HttpServletRequest request = null;  
  7.         ActionMapping mapping = null;  
  8.         Object[] args = invocation.getArguments();  
  9.         //解析目标方法的参数  
  10.         for (int i = 0 ; i < args.length ; i++ )  
  11.         {  
  12.             if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];  
  13.             if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];  
  14.         }  
  15.         //从session中得到用户的级别  
  16.         String level = (String)request.getSession().getAttribute("level");  
  17.         //如是经理级别则继续,否则,回到登陆页面  
  18.         if ( level != null && level.equals("mgr") )  
  19.         {  
  20.             return invocation.proceed();  
  21.         }  
  22.         else  
  23.         {  
  24.             return mapping.findForward("login");  
  25.         }  
  26.     }  
  27. }  

员工的权限的实现,EmpAuthorityInterceptor.java 
Java代码   收藏代码
  1. public class EmpAuthorityInterceptor implements MethodInterceptor  
  2. {  
  3.   
  4.     public Object invoke(MethodInvocation invocation) throws Throwable  
  5.     {  
  6.         HttpServletRequest request = null;  
  7.         ActionMapping mapping = null;  
  8.         Object[] args = invocation.getArguments();  
  9.         for (int i = 0 ; i < args.length ; i++ )  
  10.         {  
  11.             if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];  
  12.             if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];  
  13.         }  
  14.         //从session中得到用户的级别  
  15.         String level = (String)request.getSession().getAttribute("level");  
  16.         //如是经理或员工级别则继续,否则,回到登陆页面  
  17.         if ( level != null && (level.equals("emp") || level.equals("mgr")))  
  18.         {  
  19.             return invocation.proceed();  
  20.         }  
  21.         else  
  22.         {  
  23.             return mapping.findForward("login");  
  24.         }  
  25.     }  
  26. }  


员工,经理权限的实现,在action-servlet.xml中 
Xml代码   收藏代码
  1. <!--  以经理权限拦截器生成代理  -->  
  2.    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
  3.     <property name="beanNames">  
  4.            <list>  
  5.             action中的经理的操作  
  6.            </list>  
  7.     </property>  
  8.        <property name="interceptorNames">  
  9.            <list>  
  10.                <value>mgrAuthorityInterceptor</value>   
  11.            </list>  
  12.        </property>  
  13.    </bean>  
  14.   
  15.    <!--  以普通员工权限拦截器生成代理  -->  
  16.    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">  
  17.     <property name="beanNames">  
  18.            <list>  
  19.             员工中的action操作  
  20.            </list>  
  21.     </property>  
  22.        <property name="interceptorNames">  
  23.            <list>  
  24.                <value>empAuthorityInterceptor</value>   
  25.            </list>  
  26.        </property>  
  27.    </bean>  
  28.   
  29.    <!-- 定义经理权限检查拦截器,class即前面的MgrAuthorityInterceptor.java-->  
  30. <bean id="mgrAuthorityInterceptor" class="org.***.MgrAuthorityInterceptor"/>  
  31.    <!-- 定义普通员工权限检查拦截器 ,class即前面的EmpAuthorityInterceptor.java-->  
  32. <bean id="empAuthorityInterceptor" class="org.***.EmpAuthorityInterceptor"/>  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值