`
bainian_205
  • 浏览: 45089 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

struts2登陆拦截器配置

阅读更多
本文来自CSDN博客,http://blog.csdn.net/JavaWinner/archive/2008/03/16/2186778.aspx

package interceptor;

import java.util.Map;

import bean.LoginedUser;

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

@ SuppressWarnings ( "unchecked" )
public class AuthCheckInterceptor extends AbstractInterceptor ...{

    private static final long serialVersionUID = -4535462154177128320L;

    @ Override
    public String intercept(ActionInvocation ai) throws Exception ...{
       
        Map session  = ActionContext.getContext().getSession();
        LoginedUser user = (LoginedUser)session.get("USER_INFO");
       
        if(null==user)...{// 判断session里是否有key="USER_INFO"的对象
            return "globalLogin";// 转发到登录页面
        }
        return ai.invoke();
       }

}

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <include file="struts-default.xml" />

    <!-- 定义含“权限检查拦截器”的包,供其他模块引用 -->
    <package name="struts-default-with-auth-check" extends="struts-default">
        <interceptors>
           
            <!-- 定义“权限检查拦截器” -->
            <interceptor name="authCheck"
                class="interceptor.AuthCheckInterceptor">
            </interceptor>
           
            <!-- 定义含“权限检查拦截器”的拦截器栈,注意缺省的拦截器栈“defaultStack”要放在前面 -->
            <interceptor-stack name="myStack">
                <interceptor-ref name="defaultStack" />
                <interceptor-ref name="authCheck"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
       
        <!-- 正式应用可能含很多package,为了能从其他package中跳转到登录页面,把登录页面定义成全局result -->
        <default-interceptor-ref name="myStack"></default-interceptor-ref>

        <global-results>
            <result name="globalLogin">login.jsp</result>
        </global-results>
    </package>


    <!-- >>>>>>>>>>>>>>>>>>>>>> p1模块 <<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
   
    <!-- 注意package的extends属性,系统中只有“登录/注销”操作不需要检查权限 -->
    <package name="p1" extends="struts-default">
        <!-- 登录 -->
        <action name="login" class="action.LoginAction">
            <result>welcome.jsp</result>
            <result name="input">login.jsp</result>
        </action>

        <!-- 注销 -->
        <action name="logout" class="action.LogoutAction">
            <result>login.jsp</result>
        </action>
    </package>
    
    <!-- >>>>>>>>>>>>>>>>>>>>>> p2模块 <<<<<<<<<<<<<<<<<<<<<<<<<<<< -->
   
    <package name="p2" extends="struts-default-with-auth-check">
        <!-- 试图未经过登录,直接访问welcome页面,测试用 -->
        <action name="welcome" class="action.WelcomeAction">
            <result>welcome.jsp</result>
        </action>
    </package>

</struts>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/JavaWinner/archive/2008/03/16/2186778.aspx
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics