java 登陆拦截_登录拦截 - java代码库 - 云代码

[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;

}

}

694748ed64b9390909c0d88230893790.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值