细颗粒度权限控制

本文介绍了如何使用 Struts2 拦截器实现细颗粒度的权限控制。通过定义自定义拦截器类,继承MethodFilterInterceptor,覆盖doIntercept方法,结合ActionInvocation、HttpServletRequest以及反射,获取并校验用户角色与方法上的权限注解,以决定用户是否具有执行该方法的权限。此外,还展示了struts.xml中相应的拦截器配置。
摘要由CSDN通过智能技术生成

细颗粒度权限控制我们采用拦截器完成

具体实现:

第一步:定义一个类 继承MethodFilterInterceptor类

第二步:覆盖doIntercept方法

第三步:通过ActionInvocation 对象获取reques、actiont对象 进而获取方法名

第四步:通过action对象和反射获取方法的反射对象

第五步:获取session中的角色用户信息以及方法上的权限(注解)来校验该用户是否有操作该方法的权限

第六步:在struts.xml中配置

代码实现:

protected String doIntercept(ActionInvocation actioninvocation) throws Exception {
// TODO Auto-generated method stub
//把自定义错误信息  放置到request中
HttpServletRequest request=(HttpServletRequest) actioninvocation.getInvocationContext().get(StrutsStatics.HTTP_REQUEST);
try{

//获取请求的action对象
Object action=actioninvocation.getAction();
//获取请求方法的名称
String methodName=actioninvocation.getProxy().getMethod();
//获取action中的方法的封装类(action中的方法没有参数)
Method method=action.getClass().getMethod(methodName, null);

//action 的返回值
String result=null;

//在完成跳转Action之前完成细颗粒权限控制,控制Action的每个方法 
//检查注解,是否可以操作权限的URl
boolean flag=isCheckLimit(request,method);
if(true){
<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值