SSH实现登陆拦截器

Posted itdreamer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SSH实现登陆拦截器相关的知识,希望对你有一定的参考价值。

/**
 * 登录验证拦截器
 *
 */
@SuppressWarnings("serial")
public class LoginInteceptor implements Interceptor {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub

    }

    @Override
    public void init() {
        // TODO Auto-generated method stub

    }

    /**每次访问Action类之前,先执行intercept方法*/
    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        //获取当前访问Action的URL
        String actionName = invocation.getProxy().getActionName();
        //如果当前访问Action的URL是"loginAction_login"(根据自己写的来定)表示此时还没有Sesion,需要放行
        if(!"loginAction_login".equals(actionName)){
            //从Session中获取当前用户对象
            Employee employee = SessionContext.get();
            //如果Session不存在,跳转到登录页面
            if(employee==null){
                return "login";//这个login已经在struts.xml的全局结果视图中配置了
            }
        }
        //放行,访问Action类中方法
        return invocation.invoke();
        
    }

}

 

 

struts.xml中相关配置:

<!-- 拦截器配置 -->
        <interceptors>
            <!-- 定义了一个用于拦截器登录的拦截器 -->
            <interceptor name="loginInterceptor" class="cn.itcast.ssh.utils.LoginInteceptor"></interceptor>
            <!-- 定义一个拦截器栈 -->
            <interceptor-stack name="systemStack">
                <interceptor-ref name="defaultStack" />
                <interceptor-ref name="loginInterceptor" />
            </interceptor-stack>
        </interceptors>
    
          <!-- 定义系统默认拦截器 全局 -->
        <default-interceptor-ref name="systemStack" /> 
        <!-- 全局结果视图 -->
        <global-results>
            <result name="login" type="redirect">
                login.jsp
            </result>
        </global-results>

就这样拦截器就实现了

以上是关于SSH实现登陆拦截器的主要内容,如果未能解决你的问题,请参考以下文章

java ssh2登陆,session的问题

SSH协议详解

SpringBoot实现登陆拦截

SSH开发 | 配合自定义注解 和 Stratus拦截器,实现 方法级粒度 用户鉴权

远程登陆与数据CP

webserive学习记录5-拦截器完成登陆校验