用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

登录拦截

2016-07-29 作者: 云代码会员举报

[java]代码库

package com.app.common;
 
import org.apache.log4j.Logger;
 
import com.app.model.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 
public class PrivilegeInterceptor extends AbstractInterceptor{
 
    /**
     *
     */
    private static final long serialVersionUID = 5851995979071627976L;
 
    private static final Logger logger = Logger.getLogger(PrivilegeInterceptor.class);
     
    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        logger.info("PrivilegeInterceptor:Action方法拦截");
 
        //获取当前用户
        User user = (User) ActionContext.getContext().getSession().get("loginUser");
         
        //获取当前访问的URL,并去掉当前应用程序的前缀(也就是 namespaceName + actionName )
        String namespace = invocation.getProxy().getNamespace();
        String actionName = invocation.getProxy().getActionName();
         
        logger.info("namespace:" + namespace +" , "+"actionName:" + actionName);
         
        String privilegeUrl = null;
        if(namespace.endsWith("/")){
            privilegeUrl = namespace + actionName;
        }else{
            privilegeUrl = namespace + "/" + actionName;
        }
         
        //要去掉开头的'/'
        if(privilegeUrl.startsWith("/")){
            privilegeUrl = privilegeUrl.substring(1);//从1开始截取
        }
         
        //String result = null;
         
        //如果未登录用户
        if(user==null){
//          if(privilegeUrl.endsWith("/login_index" + Constant.S2_ACTION_EXT)
//                  || privilegeUrl.endsWith("/login_login" + Constant.S2_ACTION_EXT )){
//              //如果是正在使用登录功能,就放行
//              result = invocation.invoke();
//          }else{
                //如果不是去登录,就转到登录页面
                return "login";
//          }
        }
        //如果已经登录,就判断权限
        else{
            //if(user.hasPrivilegeByUrl(privilegeUrl)){
                //如果有权限就放行
                return invocation.invoke();
            //}else{
                //如果没有权限,返回无权限信息
            //  return "noPrivilegeError";
            //}
        }
         
        //return result;
         
    }
 
}


网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...