`
vanillalyx
  • 浏览: 64668 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

j2ee系统登录过滤

    博客分类:
  • java
阅读更多
web.xml

	<!-- For Security --> 

	<filter>
		<filter-name>ActionFilter</filter-name>
		<filter-class>com.fg.security.ActionFilter</filter-class>
	</filter>
	<filter-mapping>
		<filter-name>ActionFilter</filter-name>
		<url-pattern>*.do</url-pattern>
	</filter-mapping>
		<filter-mapping>
		<filter-name>ActionFilter</filter-name>
		<url-pattern>*.jsp</url-pattern>
	</filter-mapping>


ActionFilter.java

/**
 * 
 */
package com.fg.security;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import com.fg.common.CommLogger;
import com.fg.common.Constant;
import com.fg.common.FgObject;
import com.fg.common.exception.ExceptionLogger;
import com.fg.urp.business.UserKeyService;

/**
 * @author Agui
 * @date 2005-7-22
 */
public class ActionFilter extends FgObject implements Filter {

	public void init(FilterConfig config) {
		//
	}

	public void doFilter(ServletRequest request, ServletResponse response,
			FilterChain chain) {
		String taskUiid=null;
		String uiid=null;
		try {

			CommLogger.debug(getClass()," *** In ActionFilter *** ");

			HttpServletRequest req = (HttpServletRequest) request;
			HttpServletResponse rep = (HttpServletResponse) response;

			// Get user information
			HttpSession session = req.getSession(true);
			//从session中提取用户的session
			UserKeyService user = (UserKeyService) session
					.getAttribute(Constant.SESSION_USER);

			CommLogger.debug(getClass(),"     URI: " + req.getRequestURI());
			
			//如果不等于登陆页面
            if(!req.getRequestURI().equals("/msp/login.do")){
			//if(req.getQueryString()!=null) rep.sendRedirect(req.getContextPath()+"/error.jsp");
            }
            //user == null 或者 没有登陆
			if (!(user!=null&&user.isLogin())) {
				String uri = req.getRequestURI();
				//如果不是登录页面
				if (!uri.equalsIgnoreCase(req.getContextPath() + "/login.do")) {
					CommLogger.debug(getClass(),"     Action Stop!");
					rep.sendRedirect(req.getContextPath() + "/login.do");
				} else {
					chain.doFilter(request, response);
				}
			} else {
				//user !=null and 登陆了
				  if(user==null) rep.sendRedirect(req.getContextPath() + "/login.do");
				  if(req.getParameter("Uiid")!=null) uiid=req.getParameter("Uiid");
				  if(req.getParameter("taskUiid")!=null) taskUiid=req.getParameter("taskUiid");
				  
				  chain.doFilter(request, response);
			}

			CommLogger.debug(getClass()," *** Out ActionFilter *** ");

		} catch (Exception e) {
			ExceptionLogger.logErrorMsg(e,getClass(),null);
		} catch (Throwable t) {
			t.printStackTrace();
		}
	}

	public void destroy() {
		//
	}
}

分享到:
评论

相关推荐

    j2ee图书管理系统

    6. **安全性**:J2EE提供了多种安全机制,包括角色-based权限控制(RBAC)、SSL加密、过滤器等,确保用户数据的安全性。 7. **部署与服务器**:J2EE应用程序通常运行在应用服务器上,如Tomcat、Jetty或WebLogic等,...

    cas无过滤器 j2ee系统接入示例

    CAS(Central Authentication Service)是耶鲁大学开发的一个开源SSO项目,广泛应用于Java和J2EE系统。本示例主要讲解如何在没有使用传统Filter机制的情况下,将一个J2EE系统接入CAS以实现SSO功能。 首先,我们需要...

    J2ee个人博客系统

    **基于J2EE框架的个人博客系统项目毕业设计** 在当今互联网时代,个人博客系统已经成为人们分享知识、表达观点和记录生活的重要平台。本项目是一个使用J2EE框架开发的个人博客系统,它集成了数据库管理、用户交互、...

    J2EE系统部署,项目实例

    "J2EE系统部署,项目实例"这一主题涵盖了如何将开发好的J2EE应用上线到服务器,以及在实际环境中运行和管理这些应用的过程。 首先,我们来看"J2EE完全参考手册-J2EE部署"这部分内容。部署J2EE应用通常涉及以下几个...

    j2ee自动登录

    这个“j2ee自动登录”示例显然关注的是如何利用Cookie技术实现用户登录后的持久化会话,使得用户在下次访问时能够免去输入用户名和密码的步骤,直接进入系统。下面我们将深入探讨这个主题,包括J2EE中的会话管理、...

    j2ee项目,网上书店,登录系统,学生系统等那

    在本项目中,我们将深入探讨基于J2EE技术构建的网上书店系统,其中包括登录系统以及学生管理系统等多个核心功能模块。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司提供的一个用于开发和部署企业级应用...

    j2EE 在线交流聊天系统

    **j2EE在线交流聊天系统概述** j2EE(Java 2 Platform, Enterprise Edition)是一个由Sun Microsystems(现已被Oracle收购)开发的企业级应用平台,主要用于构建和部署分布式、多层的企业级应用程序。j2EE平台包括...

    j2ee 登录小程序

    【J2EE登录小程序详解】 J2EE(Java 2 Platform, Enterprise Edition)是一个由Oracle公司维护的开源框架,用于构建企业级的分布式应用程序。它提供了丰富的服务、API和组件模型,以支持Web应用程序的开发,包括...

    基于J2ee的网上商城系统源码

    本系统基于J2EE(Java 2 Platform, Enterprise Edition)开发,J2EE是一种多层架构的分布式应用程序框架,广泛应用于企业级应用的开发。J2EE平台提供了丰富的API和服务,包括Servlet、JSP、EJB等,能够处理高并发、...

    论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf

    在深入分析《论文研究-管道、过滤器和MVC软件体系模式在J2EE中的应用.pdf》这篇文章之前,需要先理解几个核心概念:软件体系构架、管道和过滤器以及MVC模式。 软件体系构架(Software Architecture)是指软件系统的...

    学生信息管理系统j2ee

    6. **安全性**:系统需防止SQL注入、XSS攻击等网络安全问题,这可以通过使用预编译SQL语句、参数化查询,以及使用过滤器进行输入验证来实现。 7. **持久化框架**:Hibernate或MyBatis等ORM(对象关系映射)框架可以...

    图书馆管理系统源代码(j2ee技术)

    8. **部署描述符(Deployment Descriptor)**:系统中的XML配置文件,如web.xml和ejb-jar.xml,定义了应用程序的元数据,如Servlet和EJB的配置、过滤器、监听器等。 通过对这个图书馆管理系统源代码的学习,开发者...

    Struts j2ee图书管理系统(完全能用)

    Struts j2ee图书管理系统是一个基于Java企业版(J2EE)平台的成熟软件解决方案,主要采用Struts2框架和MySQL数据库来实现图书的管理功能。这个系统是毕业设计的理想选择,因为它提供了一个完整的、可运行的基础,只...

    通过代码实例跟我学J2EE的系统架构

    在本篇文档中,我们将会了解到如何使用J2EE技术栈来搭建一个简单的登录系统,该系统基于MVC架构,利用JSP页面展示用户界面,利用Servlet处理业务逻辑以及使用...以上就是通过一个实例学习J2EE系统架构的相关知识点。

    J2EE单点登录组件源码

    总结来说,J2EE单点登录组件通过整合认证中心、票据机制、会话共享和过滤器,实现了跨系统的一次性登录体验。在实际开发中,需要结合具体业务需求,确保安全性和易用性,同时考虑扩展性和可维护性。对源码的深入理解...

    j2ee 笔记 j2ee 笔记 j2ee 笔记

    J2EE(Java 2 Platform, Enterprise Edition)是Sun Microsystems为简化企业级应用开发而提出的一套技术标准,它提供了构建分布式系统的基础框架。在J2EE环境中,开发者可以利用多种组件模型来构建复杂的应用程序,...

    J2EE高校选课系统

    在选课系统中,Servlet可能负责处理用户的登录、选课等业务逻辑,而JSP则用于展示用户界面。 三、数据库设计 选课系统通常需要一个完善的数据库来存储学生信息、课程信息、选课记录等数据。可能采用的关系型数据库...

    j2ee开发系统源码

    1. **整合配置**:如何在Web.xml中配置Struts2、Spring和Hibernate的监听器、过滤器和Servlet,以确保它们能协同工作。 2. **Spring管理Bean**:如何定义和配置Spring的bean,包括Action类、Service层接口及其实现...

Global site tag (gtag.js) - Google Analytics