struts2 权限拦截器 拦截没有登陆的请求

假设有这样的登陆:

ActionContext.getContext().getSession().put("UserMsg", userMsg);

则可以这样判断是否登陆:

import com.ahgw.common.sessionBean.UserMsg;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;

/**
 * 负责后台权限访问(必须登陆才可以进入后台)
 * User: HYY
 * Date: 13-5-27
 * Time: 下午8:27
 * To change this template use File | Settings | File Templates.
 */
public class AdminInterceptor extends AbstractInterceptor {

    @Override
    public String intercept(ActionInvocation actionInvocation) throws Exception {
        ActionContext context = actionInvocation.getInvocationContext();
        UserMsg userMsg = (UserMsg) context.getSession().get("UserMsg");
        if (userMsg == null) {
            return Action.LOGIN;
        }
        return actionInvocation.invoke();
    }
}

其相应的strut配置如下:

<struts>
    <package name="admin-newsManage" extends="struts-default,json-default" namespace="/newsManage">
        <interceptors>
            <interceptor name="privilege" class="com.ahgw.admin.interceptor.AdminInterceptor"/>
            <interceptor-stack name="privilegeStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="privilege"/>
            </interceptor-stack>
        </interceptors>

        <default-interceptor-ref name="privilegeStack"/>

        <global-results>
            <result name="login" type="redirect">/admin.do</result>
        </global-results>

    </package>
</struts>

这样,该package下的所有action中的execute方法进行之前,都会经过interceptor拦截器的判断,即进行权限判断,如果已经登陆,则会转入action中,否则返回登陆视图。

 

其中包含struts2拦截器堆栈的知识,这里不进行展开了。

转载于:https://www.cnblogs.com/wuyou/p/3313207.html

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值