`
firecool
  • 浏览: 82044 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

利用struts拦截器实现简单的权限验证

    博客分类:
  • java
阅读更多
package cn.com.oneslife.interceptor;

import java.util.Map;

import org.apache.struts2.StrutsStatics;

import cn.com.oneslife.bean.Account;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

public class AuthInterceptor extends AbstractInterceptor{

    private static final long serialVersionUID = 2305639447880823381L;

    @SuppressWarnings("unchecked")
    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        ActionContext context = invocation.getInvocationContext();
        ActionSupport action = (ActionSupport)invocation.getAction();
        
        Map<String,Object> session = context.getSession();
        Account acc = (Account) session.get("ACC_INFO");
       
        Map<String,Object> request = (Map<String, Object>) context.get(StrutsStatics.HTTP_REQUEST);
        String proId = (String) request.get("PROID");
        
        if(null == acc){
            action.addActionError("Sorry,You not have login! please login!");
            return ActionSupport.LOGIN; 
        }
        
        if(null == proId || "".equals(proId)){
            action.addActionError("Sorry,You should be appoint proId!");
            return ActionSupport.INPUT;
        }
        
        if(hasAuth(acc.getId(),proId)){
            return invocation.invoke();
        }else{
            action.addActionError("Sorry,You not have auth!");
            return ActionSupport.INPUT;
        }
    }

    private Boolean hasAuth(Integer accId,String proId){
        return Boolean.TRUE;
    }
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics