`

Login登陆过滤器

 
阅读更多
/*
 * Copyright (C) NLS
 * 担当者:朱慧鵬
 * 更新者:朱慧鵬
 * 最終更新日:2012/12/20
 */
package com.nls.dispatch.common;

import java.io.IOException;
import java.io.PrintWriter;

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

/**
 * 機能名称:ログインフィルタ
 * 機能概要:ログインフィルタ基本機能
 * バージョン:1.0
 */
public class LoginFilter implements Filter{

    @Override
    public void destroy() {
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {}

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {

        // リクエスト
        HttpServletRequest re = (HttpServletRequest) request;
        HttpServletResponse res = (HttpServletResponse) response;
        HttpSession session = re.getSession();
        // ログインユーザー
        String loginUser  = (String)session.getAttribute("userCode");
        String servicePath = re.getServletPath();

        if(loginUser == null){
            if (servicePath.toLowerCase().endsWith(".js")
                    || servicePath.toLowerCase().endsWith(".css")
                    || servicePath.toLowerCase().endsWith(".jpg")
                    || servicePath.toLowerCase().endsWith(".gif")
                    || servicePath.toLowerCase().endsWith(".png")
                    || servicePath.toLowerCase().endsWith(".bmp")
                    || servicePath.toLowerCase().endsWith(".htc")
                    || "/LoginK!check.action".equalsIgnoreCase(servicePath)
                    || "/Login!login.action".equalsIgnoreCase(servicePath)
                    || "/jsp/common/top.jsp".equalsIgnoreCase(servicePath)
                    || "/Menu.action".equalsIgnoreCase(servicePath)
                    || "/jsp/common/default.jsp".equalsIgnoreCase(servicePath)
                    || "/jsp/Login.jsp".equalsIgnoreCase(servicePath)
                    ) {
                chain.doFilter(request, response);
            }else{
//                res.sendRedirect(re.getContextPath());
                 PrintWriter out = res.getWriter();
                 out.println("<script type='text/javascript'>window.parent.location='"+re.getContextPath()+"'</script>");
                return;
            }
        } else {
            chain.doFilter(request, response);
        }
    }
}

分享到:
评论

相关推荐

    SSM登陆验证之过滤器实现

    SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中常见的技术栈,其在处理用户请求时,通常会用到过滤器(Filter)进行预处理,以实现如登录验证等功能。本篇文章将深入讲解如何在SSM项目中通过过滤器实现登录...

    验证用户有没有登陆的过滤器

    4. **验证用户有没有登陆的过滤器**:结合了登陆验证和过滤器的概念,是Web应用中的一种安全实践。 综上所述,验证用户有没有登录的过滤器是一个关键的安全机制,它可以防止未经授权的访问,确保只有已登录的用户...

    jsp servlet过滤器,登陆验证 获取session

    而`过滤器(Filter)`是Servlet API的一部分,它提供了一种机制来拦截请求和响应,实现诸如登录验证、字符编码转换、性能监控等功能。在这个场景中,我们关注的是使用过滤器进行登录验证,以及如何利用`session`来...

    javaWEB总结(33):检查用户是否登陆过滤器

    在Java Web开发中,过滤器(Filter)是一个重要的组件,用于在请求被Servlet处理之前或之后执行特定的任务。本篇文章将深入探讨“检查用户是否登录的过滤器”这一主题,帮助开发者理解如何利用过滤器来实现用户身份...

    Java Web过滤器详解

    例如,在登陆系统中,我们可以使用过滤器来验证用户的身份,以确保只有合法用户才能访问系统。 二、编码转换 过滤器可以对用户发送的数据进行编码转换。在服务端的过滤器中设置统一的编码格式,避免出现乱码。例如...

    基于PHP的PESCMS Login 登陆器管理后台源码 php版.zip

    【PESCMS Login 登陆器管理后台】 PESCMS Login 是一个基于PHP开发的登陆器管理后台系统,用于帮助用户管理他们的网站或应用的登录流程。这样的系统通常包含用户注册、登录验证、密码找回、权限管理等功能,为管理...

    jsp filter 过滤器判断用户是否登录

    ### JSP Filter 过滤器判断用户是否登录 在Web应用开发中,权限验证是非常重要的一个环节。通过使用过滤器(Filter),可以在请求到达目标资源(如Servlet或JSP页面)之前进行处理,例如实现登录状态检查、权限验证...

    一个关于登陆的 过滤器

    在Web开发中,过滤器(Filter)是一种强大的工具,它允许开发者在请求被处理之前或之后执行特定的操作,比如身份验证、数据转换、日志记录等。本例题聚焦于如何使用Java Filter来实现登录过滤,这对于理解Web应用...

    Java-filter过滤器在项目开发中的应用.docx

    下面是一个示例代码,创建一个名为Unlogin的过滤器,用于限制未经登陆的用户访问资源。 ```java package filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; ...

    ajax-login.rar_ajax_ajax login_ajax 登陆_login_登陆验证

    2. **事件监听**:使用JavaScript(通常基于jQuery或其他库)添加事件监听器,当用户点击登录按钮时触发Ajax请求。 3. **构建Ajax请求**:使用XMLHttpRequest或现代浏览器提供的fetch API创建异步请求。设置请求的...

    浅析JAVA中过滤器、监听器、拦截器的区别

    1.过滤器:所谓过滤器顾名思义是用来过滤的,在java web中,你传入的request,response提前过滤掉一些信息,或者提前设置一些参数,然后再传入servlet或者struts的action进行业务逻辑,比如过滤掉非法url(不是login....

    Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】

    Java Web实现session过期后自动跳转到登陆页功能【基于过滤器】 本文主要介绍了Java Web实现session过期后自动跳转到登陆页功能,涉及java过滤器针对session的判断与跳转相关操作技巧。 一、建立基本过滤器 要...

    login_struts

    另一个是`web.xml`,用于部署描述符,设置过滤器等。在"login_struts"项目中,我们会在`struts.xml`中定义登录Action,并指定成功或失败后跳转的页面。 3. **Action类**:Action类是Struts2的核心组件,它处理用户...

    登陆功能MVC

    **过滤器(Filter)**:在MVC中,过滤器通常用于在请求到达控制器之前或之后执行某些操作,例如数据验证、权限检查、日志记录等。在登录场景中,过滤器可能用来确保用户已登录才能访问特定的受保护资源,或者对输入...

    使用struts2拦截器对登陆权限验证

    Struts2是一个强大的MVC框架,它为Java Web应用程序提供了优雅的架构支持。在Struts2中,拦截器...记得在实际开发中,还应考虑错误处理、异常捕获以及如何在不改变原有业务逻辑的情况下灵活扩展拦截器和过滤器。

    Struts2 配置登陆拦截器

    此外,对于大型项目,通常会使用自定义的过滤器或者Spring Security等更强大的安全框架来处理登录验证。 了解了登录拦截器的工作原理后,我们可以根据项目的具体需求对其进行扩展和定制,以满足各种复杂的业务场景...

    SSO_单点登陆流程_简要

    如果找不到,表示用户未登录SSO系统,过滤器会将用户重定向到SSO的登录页面(login.jsp)。如果找到匹配的cookie,过滤器会从cookie中提取应用系统的用户名和域信息,然后通过分布式调用SSO系统的一个特定Servlet来...

    用strucs做的登陆和注册

    例如,一旦用户成功登录,我们可以设置一个会话属性表示用户已登录,之后的请求都会通过过滤器检查这个会话属性。 4. **配置文件(struts-config.xml)**:这是Struts的核心配置文件,定义了Action和ActionForm之间...

    java shiro实现退出登陆清空缓存

    这个 bean 配置了 Shiro 过滤器链,其中包含了自定义的登出过滤器 `systemLogoutFilter`: ```xml &lt;property name="loginUrl" value="/b/login" /&gt; &lt;!-- 自定义退出过滤器 --&gt; /b/login = ...

    Jeesite 登录login涉及到shiro验证和授权的流程分析

    - Shiro 配置了一个名为 `authc.FormAuthenticationFilter` 的过滤器,当用户尝试访问受保护的资源时,会触发 Shiro 进行验证。 - 如果用户未登录,Shiro 将自动重定向到配置的 `loginUrl`,在 Jeesite 中,这通常...

Global site tag (gtag.js) - Google Analytics