• 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>

    就这样拦截器就实现了

  • 相关阅读:
    《开源框架那点事儿23》:采用TinyDB组件方式开发
    《开源框架那些事儿22》:UI框架设计实战
    《开源框架那些事儿21》:巧借力与借巧力
    logstash 添加nginx日志
    ossfs 使用挂在到ecs -centos 6.8
    Django JWT Token RestfulAPI用户认证
    install scrapy
    Django 1.9 + celery + django-celry 实现定时任务
    celery
    ansible常用模块用法
  • 原文地址:https://www.cnblogs.com/ITDreamer/p/9860354.html
Copyright © 2020-2023  润新知