package com.sise.action;
 
import java.util.Map;
 
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
 
public class AuthorizationInterceptor extends AbstractInterceptor {
    private String ignoreActions;
 
    // ignoreActions属性的getter方法
    public String getIgnoreActios() {
        return ignoreActions;
    }
    // ignoreActions属性的setter方法
    public void setIgnoreActions(String ignoreActions) {
        this.ignoreActions = ignoreActions;
    }
    @Override
    public String intercept(ActionInvocation invocation) throws Exception {
        ActionContext ctx = invocation.getInvocationContext();
        Map session = ctx.getSession();
        Object user = session.get("currentUserId");
        boolean ignore = false;
        if (user != null || ignore == true) {
            return invocation.invoke();
        } else {
            return Action.LOGIN;
        }
    }
}

  struct.xml配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
    <package name="default" extends="struts-default">
        <interceptors>
            <interceptor name="loginInterceptor"
                class="com.sise.action.AuthorizationInterceptor"></interceptor>
            <interceptor-stack name="loginDefaultStack">
                <interceptor-ref name="loginInterceptor">
                    <param name="ignoreActions">
                        validate_code,register.*,.*login.*,upload,connector</param>
                </interceptor-ref>
                <interceptor-ref name="defaultStack"></interceptor-ref>
            </interceptor-stack>
        </interceptors>
        <default-interceptor-ref name="loginDefaultStack"></default-interceptor-ref>
        <global-results>
            <result name="login" type="redirect">/login.html</result>
        </global-results>
        <action name="index" class="com.sise.action.IndexAction"
            method="index">
            <result name="success">/index.html</result>
        </action>
        <action name="login" class="com.sise.action.LoginAction"
            method="login">
            <result type="redirectAction">index</result>
            <result name="login" >/login.html</result>
            <interceptor-ref name="defaultStack"></interceptor-ref>
        </action>
    </package>
</struts> 

[转]struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor的更多相关文章

  1. github 授权登录教程与如何设计第三方授权登录的用户表

    需求:在网站上想评论一篇文章,而评论文章是要用户注册与登录的,那么怎么免去这麻烦的步骤呢?答案是通过第三方授权登录.本文讲解的就是 github 授权登录的教程. 效果体验地址:http://biao ...

  2. 后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户)

    后盾网lavarel视频项目---lavarel中间件(使用中间件拦截没登录的用户) 一.总结 一句话总结: 1.中间件中验证用户是否登录:if(!Auth::guard('admin')->c ...

  3. SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期

    SpringMVC拦截器实现:当用户访问网站资源时,监听session是否过期 一.拦截器配置 <mvc:interceptors> <mvc:interceptor> < ...

  4. 大型运输行业实战_day05_1_登录+注销+表单重复提交+登录拦截器

    1.登录 登录实现如下步骤: 1.在首页中添加登录按钮 html代码如下: <%@ page contentType="text/html;charset=UTF-8" la ...

  5. 分享知识-快乐自己:SpringMVC 结合使用拦截器(判断是否用户是否已登陆)

    基础拦截器操作: 拦截器是一种AOP操作实现,那么在AOP之中用户一定不需要去关注拦截器的存在,用户只需要按照自己已经习惯的处理方式进行代码的编写即可. 首先我们先创建一个自定义的拦截器: packa ...

  6. 分享知识-快乐自己:SpringBoot结合使用拦截器(判断是否用户是否已登陆)

    所有的开发之中拦截器一定是一个必须要使用的功能,利用拦截器可以更加有效的实现数据的验证处理,而且最为幸运的是在SpringBoot之中所使用的拦截器与Spring中的拦截器完全一样. 基础拦截器操作: ...

  7. 利用angular4和nodejs-express构建一个简单的网站(五)—用户的注册和登录-HttpClient

    上一节简单介绍了一下利用angular构建的主路由模块,根据上一节的介绍,主页面加载时直接跳转到用户管理界面,下面就来介绍一下用户管理模块.启动应用后,初始界面应该是这样的: 用户管理模块(users ...

  8. 一步步使用SpringBoot结合Vue实现登录和用户管理功能

    前后端分离开发是当今开发的主流.本篇文章从零开始,一步步使用SpringBoot结合Vue来实现日常开发中最常见的登录功能,以及登录之后对用户的管理功能.通过这个例子,可以快速入门SpringBoot ...

  9. 练习:python 操作Mysql 实现登录验证 用户权限管理

    python 操作Mysql 实现登录验证 用户权限管理

  10. 解决服务器SID引起虚拟机不能加入AD域用户,无法远程登录的问题

    最近在公司搭建AD域控制器,发现无法在计算机真正添加域用户,也就是添加的用户虽然可以在本地登录,但是无法远程登录,尝试多种方法都无法解决,而最终原因居然是虚拟机导致的服务器的SID冲突.本文记录下该问 ...

随机推荐

  1. (第四场)G Maximum Mode 【YY+暴力】

    链接:https://www.nowcoder.com/acm/contest/142/G 来源:牛客网 题目描述 The mode of an integer sequence is the val ...

  2. PHP设计模式——适配器模式

    <?php /** * 适配器模式 * 适配器模式是将某个对象的接口适配为另一个对象所期望的接口 * * 在需要转化一个对象的接口用于另一个对象时,最好实现适配器模式对象 */ class We ...

  3. jackson简单实用

    ---------------------------------------------------------------------------------------------------- ...

  4. 手机验证码免费10条\java、C#、html....

    使用互亿无线短信接口网址:http://www.ihuyi.com/. 首先第一步,进行注册 第二步:注册成功后进来的页面 第三步:实名认证 第四步:个人信息 等待认证成功后才能继续操作 第五步:进行 ...

  5. 【luogu P3390 矩阵快速幂】 模板

    题目链接:https://www.luogu.org/problemnew/show/P3390 首先要明白矩阵乘法是什么 对于矩阵A m*p  与  B p*n 的矩阵 得到C m*n 的矩阵 矩阵 ...

  6. [译]GLUT教程 - 安装

    Lighthouse3d.com >> GLUT Tutorial >> Basics >> Setup 你需要什么 要用GLUT库开发程序,你可以下载最新版本3. ...

  7. jquery插件layer

    //信息框-例1 layer.alert('见到你真的很高兴', {icon: 6}); //信息框-例2 layer.confirm('你确定你很帅么?', {icon: 3}, function( ...

  8. NEC 框架规范 css function

    /* function */.f-cb:after,.f-cbli li:after{display:block;clear:both;visibility:hidden;height:0;overf ...

  9. 【剑指offer】 Java实现重建二叉树

    GitHub上的代码链接 /** * @Author: DaleyZou * @Description: 重建二叉树 * 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树. * 假设输入的前序 ...

  10. HTML5读取input[type=file]中的图片

    转载 https://blog.csdn.net/fd214333890/article/details/71250488