[转]struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor

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> 

时间: 2024-10-28 22:04:24

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

JavaEE之--------利用过滤器实现用户自动登录,安全登录,取消自动登录黑用户禁止登录

在我们生活中,对于账户的自动登录已经很常见了,所以利用过滤器实现这个功能 主要介绍用户的自动登录和取消自动登录,以及实现一天自动登录或者n天实现自动登录,当用户ip被加入到黑名单之后,直接利用过滤器返回一个警告页面. 过滤器的功能很是强大,我们只需要在写好的前台后servlet之后进行添加就可以实现这个功能 Ps:这个仅仅只是一个演示而已,里面的访问数据库的部分,自己随意模拟了下,主要是突出实现自动登录的功能. 前台代码: 前台代码是成功与否都在这个页面显示.用到的技术:jstl标签的应用,se

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

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

spring-security 个性化用户认证流程——自定义登录页面(可配置)

1.定义自己的登录页面我们需要根据自己的业务系统构建自己的登录页面以及登录成功.失败处理在spring security提供给我的登录页面中,只有用户名.密码框,而自带的登录成功页面是空白页面(可以重定向之前请求的路径中),而登录失败时也只是提示用户被锁定.过期等信息. 在实际的开发中,则需要更精细力度的登录控制,记录错误的日志(错误的次数等) 2.自定义登录页面 配置登录页面的路径在BrowserSecurityConfig类中配置登录页面的路径 http.formLogin() .login

Ubuntu下允许Root用户的操作 (图形界面登录、su切换……)

Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许"su"到 root.虽然这样的设置使安全性更高一些,但对于开发者来 说就显得很不方便了.如何让Ubuntu允许root用户直接登录GUI呢,以下是设置步骤(本文以Ubuntu10为例): ◆允许 su 到 root 非常简单,下面是设置的方法: [email protected]:~$ sudo passwd Password: <--- 输入安装时那个用户的密码 Enter new UNIX passwor

异常详细信息: System.Data.SqlClient.SqlException:用户 &#39;IIS APPPOOL\DefaultAppPool&#39; 登录失败解决办法

1.安全性---登录名---新建登录名 2.常规----搜索 3.添加SERVICE用户-- 4.服务器角色---勾上sysadmin: IIS中: 应用程序池---对应的程序池上右键---高级设置 进程模块---标识---选择NetworkService(与数据库中设置统一) 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法

Linux 命令 - w: 显示登录的用户及其当前执行的任务

命令格式 w - [husfV] [user] 命令参数 -h 不打印头部信息 -u 当列出当前进程和 CPU 时间时忽略用户名,这主要是用于执行su命令后的情况. -s 使用简短的格式化,不打印 [email protected].JCPU 和 PCPU 等信息 -f 切换显示 FROM 项信息 -V 显示版本信息 实例 a) 显示当前登录系统的用户信息 [email protected]:~$ w 23:06:04 up  1:15,  4 users,  load average: 0.0

vertica时间计算SQL语句实例:统计一天内登录的用户

SQL语句实例: select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) day as integer )<=1; 或 select count(id) as num from public.user where cast((CURRENT_TIMESTAMP-login_timed) hour as integer )<=24; 大家可以根据表结构稍作调整后使用 vertica时间

Android之QQ授权登录获取用户信息

有时候我们开发的app须要方便用户简单登录.能够让用户使用自己的qq.微信.微博登录到我们自己开发的app. 今天就在这里总结一下怎样在自己的app中集成QQ授权登录获取用户信息的功能. 首先我们打开腾讯开发平台这个网页,点击---->移动应用---->创建应用,成功创建应用后.能够产生我们须要的App ID和App Key,例如以下图所看到的: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYmVhcl9odWFuZ3poZW4=/font/5a6

ORACLE 记录连接用户的IP地址以及登录失败用户的IP地址

前言:实现的功能主要是,oracle登录成功记录登录用户ip地址,登录失败记录登录失败ip地址 1,需要建立一个触发器记录登录成功的客户端用户的ip地址 大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢?先运行DBMS_SESSION 过程包注册,然后执行存储过程on_logon_trigger,这样当客户端登陆后,在v$session的client_info列会记录其相应的IP信息. 利用 DBMS_SESSION 过程包,先执行 BE

统一协同工作平台用户管理、单点登录以及任务集成接口说明

目录 1 概述 西北油田分公司信息化经过长期建设,在各个业务点上,逐步搭建了适应业务管理的信息化系统,为分公司经营管理提供了强大的信息化辅助管理支撑. 但是,分公司前期建设的信息化系统都是基于传统办公自动化OA,目前逐步形成了多个单独业务系统组成的OA,如公文.合同.招投标.预结算等系统,这些系统之间没有统一的技术和数据标准,数据不能自动传递和共享,流程控制和标准多样化,从而形成了一个个彼此隔离的信息孤岛. 在此背景上,西北油田分公司搭建了一套整合分公司各种信息资源库的协同工作平台,形成统一.综