前段时间在项目中曾经用Struts的拦截器实现登录验证功能,AuthorizationInterceptor.java,现在分享下,哈

package com.interceptor;

import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.*;
import com.opensymphony.xwork2.*;
import java.util.*;
/**
 * @author http://www.cnblogs.com/jobscn/
 */
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();
        String user = (String) session.get("username");

boolean ignore = false;
        String currentAction = invocation.getProxy().getActionName();
        String[] actions = ignoreActions.split(",");

for (String action : actions) {
            if (currentAction.matches(action.trim())) {
                ignore = true;
                break;
            }
        }

if (user != null || ignore == true) {

return invocation.invoke();
        } else {
            return Action.LOGIN;
        }

}
}

在struts.xml文件里面配置该拦截器:
<interceptors> 
      <interceptor name="authorization" class="com.interceptor.AuthorizationInterceptor" /> 
      <interceptor-stack name="myStack"> 
          <interceptor-ref name="authorization"> 
              <param name="ignoreActions"> validate_code,register.*,.*login.*,upload,connector</param> 
          </interceptor-ref> <interceptor-ref name="defaultStack" />
  </interceptor-stack> 
 </interceptors> 
  <default-interceptor-ref name="myStack"/>

转载于:https://www.cnblogs.com/jobscn/archive/2011/11/06/2238367.html

用struts拦截器实现登录验证功能AuthorizationInterceptor相关推荐

  1. 基于SSH2框架Struts2拦截器的登录验证实现 来自菠萝大象

    本文为菠萝大象原创,如要转载请注明出处. 通过之前的 Struts2.1.6+Spring2.5.6+Hibernate3.3.1全注解实例详解系列文章,我们已经成功将这三种框架整合到了一起, 这次大 ...

  2. 用struts2的拦截器实现登录验证,同时登录界面加上验证码

    1.验证码实现:AuthorityAction 1 package com.sram.action; 2 3 import java.awt.Color; 4 import java.awt.Font ...

  3. Vue项目使用拦截器和JWT验证 完整案例

    挺详细的一个案例项目,值得参考! 作者:YXi https://juejin.im/post/6844903959883218951) https://gitee.com/gitee_fanjunya ...

  4. struts拦截器+注解实现网络安全要求中的日志审计功能

    J2EE项目中出于安全的角度考虑,用户行为审计日志功能必不可少,通过本demo可以实现如下功能: 1.项目中记录审计日志的方法. 2.struts拦截器的基本配置和使用方法. 3.struts拦截器中 ...

  5. Struts 拦截器权限控制【通过拦截器实现登录后跳转到登录前页面】

    应用情形:在web项目中,经常会遇到用户未登录或SESSION失效时用户发出非法的权限操作,如新闻的评论.文件的下载等等,在此我们可以使用struts拦截器对该用户发出的请求进行拦截,拦截后判断用户是 ...

  6. 利用Struts拦截器限制上传图片的格式和大小

    在这之前 Struts的一个核心功能就是大量的拦截器,既然是框架,那么自然也就贴心地为我们准备好了各种常用的功能,比如这里即将讨论的如何限制上传图片的格式和大小.那么既然是使用Struts已经写好的拦 ...

  7. 35.使用拦截器实现权限验证

    转自:https://wenku.baidu.com/view/84fa86ae360cba1aa911da02.html 为了说明此问题,我们建立struts2auth项目,流程图如下: 简短说明: ...

  8. java登陆拦截器_SpringBoot拦截器实现登录拦截

    SpringBoot拦截器可以做什么 可以对URL路径进行拦截,可以用于权限验证.解决乱码.操作日志记录.性能监控.异常处理等. SpringBoot拦截器实现登录拦截 pom.xml:<?xm ...

  9. shiro 实现登录验证功能

    实现登录验证功能 1.创建自己的Realm对象,继承AuthorizingRealm ​    实现父类的doGetAuthenticationInfo 认证方法 MyRealm.java packa ...

  10. JSP脚本实现登录验证功能

    JSP脚本实现登录验证功能 登录 点击退出 登录页面login <%@ page contentType="text/html;charset=UTF-8" language ...

最新文章

  1. 黑龙江科技大学计算机类分数线,2019年黑龙江科技大学优势专业排名及分数线...
  2. 敏捷SOA成功秘诀(三):生命周期管理
  3. 矩阵y=wx+b 位置
  4. 使用 Spring Batch 构建企业级批处理应用
  5. winrar 无法设置 xxx.aspx 的安全数据 -- 用批处理压缩文件在user账号下解压缩发生的错误...
  6. AssetsLibrary使用介绍
  7. hello~Django
  8. MFC开发IM-第八篇、调整各个控件的上下tab顺序
  9. 解码H264视频出现花屏或马赛克的问题
  10. 微信小程序|样式布局篇
  11. 机器学习(4)——弱监督学习
  12. Java面试知识点汇总
  13. 智能家庭本周锋闻:小米终于还是做了空气净化器
  14. IMSI号和IMEI解释
  15. VS下报LNK1104的一种解决方法
  16. linux之cp/scp命令+scp命令详解---远程拷贝
  17. [A Top-Down Approach][第一章 计算机网络和因特网]
  18. 45岁以后,外企的人都到去哪里了呢?(转载:岭南一梦)
  19. 下载echarts地图资源包
  20. golang知识图谱NLP实战第四节——关系抽取完善逻辑

热门文章

  1. axvspan函数--Matplotlib
  2. Hadoop AWS Word Count 样例
  3. nginx sendfile
  4. Linux中用st_mode判断文件类型
  5. 概率论综述(题型篇)
  6. 黑色的php编辑器,五款常用的免费php编辑器推荐
  7. java二级 计算复杂利息_java 计算存款利息
  8. Android轉檔案到iphone,在 Mac 上要如何存取 Android 手機中的檔案,傳輸檔案沒問題...
  9. 打开前端网页,使用npm run dev报错npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! gmall-admin@1.0.0 dev
  10. 今天安利一个超牛叉的黑客入侵的特效网页,我第一次打开就被惊艳到了