spring aop 的权限的管理是通过对路径的控制来实现的
现在共有两个角色,经理和员工
经理的权限检查的代码
MgrAuthorityInterceptor.java
- public class MgrAuthorityInterceptor implements MethodInterceptor
- {
-
- public Object invoke(MethodInvocation invocation) throws Throwable
- {
- HttpServletRequest request = null;
- ActionMapping mapping = null;
- Object[] args = invocation.getArguments();
-
- for (int i = 0 ; i < args.length ; i++ )
- {
- if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
- if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
- }
-
- String level = (String)request.getSession().getAttribute("level");
-
- if ( level != null && level.equals("mgr") )
- {
- return invocation.proceed();
- }
- else
- {
- return mapping.findForward("login");
- }
- }
- }
public class MgrAuthorityInterceptor implements MethodInterceptor
{
public Object invoke(MethodInvocation invocation) throws Throwable
{
HttpServletRequest request = null;
ActionMapping mapping = null;
Object[] args = invocation.getArguments();
//解析目标方法的参数
for (int i = 0 ; i < args.length ; i++ )
{
if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
}
//从session中得到用户的级别
String level = (String)request.getSession().getAttribute("level");
//如是经理级别则继续,否则,回到登陆页面
if ( level != null && level.equals("mgr") )
{
return invocation.proceed();
}
else
{
return mapping.findForward("login");
}
}
}
员工的权限的实现,EmpAuthorityInterceptor.java
- public class EmpAuthorityInterceptor implements MethodInterceptor
- {
-
- public Object invoke(MethodInvocation invocation) throws Throwable
- {
- HttpServletRequest request = null;
- ActionMapping mapping = null;
- Object[] args = invocation.getArguments();
- for (int i = 0 ; i < args.length ; i++ )
- {
- if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
- if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
- }
-
- String level = (String)request.getSession().getAttribute("level");
-
- if ( level != null && (level.equals("emp") || level.equals("mgr")))
- {
- return invocation.proceed();
- }
- else
- {
- return mapping.findForward("login");
- }
- }
- }
public class EmpAuthorityInterceptor implements MethodInterceptor
{
public Object invoke(MethodInvocation invocation) throws Throwable
{
HttpServletRequest request = null;
ActionMapping mapping = null;
Object[] args = invocation.getArguments();
for (int i = 0 ; i < args.length ; i++ )
{
if (args[i] instanceof HttpServletRequest) request = (HttpServletRequest)args[i];
if (args[i] instanceof ActionMapping) mapping = (ActionMapping)args[i];
}
//从session中得到用户的级别
String level = (String)request.getSession().getAttribute("level");
//如是经理或员工级别则继续,否则,回到登陆页面
if ( level != null && (level.equals("emp") || level.equals("mgr")))
{
return invocation.proceed();
}
else
{
return mapping.findForward("login");
}
}
}
员工,经理权限的实现,在action-servlet.xml中
-
- <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
- <property name="beanNames">
- <list>
- action中的经理的操作
- </list>
- </property>
- <property name="interceptorNames">
- <list>
- <value>mgrAuthorityInterceptor</value>
- </list>
- </property>
- </bean>
-
-
- <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
- <property name="beanNames">
- <list>
- 员工中的action操作
- </list>
- </property>
- <property name="interceptorNames">
- <list>
- <value>empAuthorityInterceptor</value>
- </list>
- </property>
- </bean>
-
-
- <bean id="mgrAuthorityInterceptor" class="org.***.MgrAuthorityInterceptor"/>
-
- <bean id="empAuthorityInterceptor" class="org.***.EmpAuthorityInterceptor"/>
分享到:
相关推荐
4.容器提供了AOP技术,利用它很容易实现如权限拦截,运行期监控等功能 5.容器提供了众多的辅助类,能加快应用的开发 6.spring对于主流的应用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring属于低侵入...
9.5 Spring Security中的访问控制(授权) 84 9.5.1安全和AOP建议 84 9.5.2安全对象和AbstractSecurityInterceptor 85 什么是配置属性? 85 RunAsManager 86 AfterInvocationManager 86 扩展安全对象模型 87 9.6本地...
4.5 配置Spring(AOP) 4.6 配置Spring(IOC) 4.7 大致分析业务逻辑定义部分Dao实现 4.8 测试Dao实现 4.9 分析JSP中要实现的功能在实体中建立实体方法 4.10 建立Struts2映射路径 4.11 分析实体中需要的业务逻辑在...
采用SSH进行开发,使用Spring的AOP对目标进行拦截,有效的控制权限。
4.5 配置Spring(AOP) 4.6 配置Spring(IOC) 4.7 大致分析业务逻辑定义部分Dao实现 4.8 测试Dao实现 4.9 分析JSP中要实现的功能在实体中建立实体方法 4.10 建立Struts2映射路径 4.11 分析实体中需要的业务逻辑在...
使用HandlerInterceptor进行了操作权限控制 数据库表使用自增唯一ID 封装了mybatis-plus-generator代码生成器,使用菜单操作即可生成前后端代码 内置swagger2接口API 环境jdk1.8 使用AOP切面实现日志数据库存储 ...
:sparkles: :sparkles: :sparkles: FF4J-Java的功能翻转... 借助Spring AOP,目标实现是在运行时选择的,因此受功能状态驱动。 功能监视:对于每个功能执行,ff4j都会评估谓词,因此可以收集和记录事件,度量以计算漂亮
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" /> class="org.apache.shiro.spring.security.interceptor....
通过拦截器实现了方法级粒度的鉴权,通过AOP实现了参数校验。 --------------------------- **演示**:[https://small.ડ.com/][1] 可自行注册账号,或使用后台查看权限账号 demo 密码 demo (后台入口登陆后显示...
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" depends-on="lifecycleBeanPostProcessor" /> class="org.apache.shiro.spring.security.interceptor....
- 新增aop注解实现操作日志功能。 - 支持动态权限修改,采用RBAC模型,前端菜单和后台权限实时更新。 - 后台管理支持修改背景图片,博客配置等信息,操作简单,支持上传相册。 - 代码支持多种搜索模式(Elastic...
XPath中相对路径和绝对路径 XPath 简单语法 Asp.Net(C#)利用XPath解析XML文档示例 XSL .Net框架下的XSLT转换技术简介 一个XSLT的简单例子 XSLXSLT板主题整理 xsl入门的好文章 新手学习XSL的好东西 XSL语法介绍 XSL...
{1.9}流程控制}{31}{section.1.9} {1.9.1}\texttt {if\ldots esle\ldots }}{31}{subsection.1.9.1} {1.9.2}\texttt {switch}}{31}{subsection.1.9.2} {1.9.3}\texttt {while}}{32}{subsection.1.9.3} {1.9.4}\...