- 浏览: 243314 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
aa499357363:
我知道楼主叫雷志民,别问我怎么知道的,。
如何创建和启动一个线程? -
alvin198761:
很好,但是直接杀死进程会导致很多问题,建议不要使用
如何使用Java执行cmd命令? -
k_kid9157:
在JSP中有哪些注释格式? -
sunney2010:
ifFRAME不行哟
如何在关闭页面时自动清除Session? -
liuyuru:
java 初始化块
. 过滤的实现调用链所有过滤器都服从调用的过滤器链,并通过定义明确的接口得到执行。
一个执行过滤器的 Java 类必须执行这一 javax.servlet.Filter 接口。这一接口含有三个过滤器必须执行的方法: doFilter(ServletRequest, ServletResponse, FilterChain):这是一个完成过滤行为的方法。这同样是上游过滤器调用的方法。引入的FilterChain对象提供了后续过滤器所要调用的信息。
init(FilterConfig):这是一个容器所调用的初始化方法。它保证了在第一次doFilter()调用前由容器调用。您能获取在 web.xml 文件中指定的初始化参数。
destroy():容器在破坏过滤器实例前,doFilter()中的所有活动都被该实例终止后,调用该方法。嵌套调用在 doFilter() 方法执行中发生。除非您建立一个过滤器明确阻止所有后续处理(通过其它过滤器及资源处理器),否则过滤器一定会在 doFilter 方法中作以下的调用: ...
如果没有对页面进行权限控制,用户只要输入URL就能进入任何页面。
下面就演示一下最基本的使用Fiter来控制页面的权限。
1.写一个FILTER,用来判断用户是否有权限进入指定页面。
- import java.io.IOException;
- 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.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.apache.log4j.Logger;
- import com.kiral.action.UserAction;
- import com.kiral.model.User;
- /*******************************************************************************
- * 在过滤器中实现权限控制类,用来检验用户是否有权限进入当前页面
- *
- * @作者:kiral
- * @日期:2006-6-24
- * @版本: 1.0
- ******************************************************************************/
- public class FilterServlet extends HttpServlet implements Filter {
- private static final long serialVersionUID = 5162189625393315379L;
- private static Logger LOG = Logger.getLogger(FilterServlet.class);
- /**
- * 配置允许的角色
- */
- private String allowRole = null;
- /**
- * 重定向的URL
- */
- private String redirectURl = null;
- public void init(FilterConfig filterConfig) throws ServletException {
- // 得到允许的角色,这个参数是由web.xml里的allowRole所指定
- allowRole = filterConfig.getInitParameter("allowRole");
- // 指定要重定向的页面
- redirectURl = "/locker/index.html";
- }
- /**
- * 在过滤器中实现权限控制
- */
- public void doFilter(ServletRequest sRequest, ServletResponse sResponse,
- FilterChain filterChain) throws IOException, ServletException {
- HttpServletRequest request = (HttpServletRequest) sRequest;
- HttpServletResponse response = (HttpServletResponse) sResponse;
- HttpSession session = request.getSession();
- // 如果回话中的用户为空,页面重新定向到登陆页面
- if (session.getAttribute(UserAction.CURRENT_USER) == null) {
- response.sendRedirect(redirectURl);
- }
- // 会话中存在用户,则验证用户是否存在当前页面的权限
- else {
- User user = (User) session.getAttribute(UserAction.CURRENT_USER);
- try {
- // 如果用户没有当前页的权限,页面重新定向到登陆页面
- if ("0".equals(allowRole) || user.hasPower(allowRole)) {
- filterChain.doFilter(sRequest, sResponse);
- } else {
- // 过滤器经过过滤后,过滤链继续传递请求和响应
- response.sendRedirect(redirectURl);
- }
- } catch (Throwable e) {
- LOG.error("权限过滤时候出现错误", e);
- throw new RuntimeException("权限过滤时候出现错误", e);
- }
- }
- }
- public void destroy() {
- }
- }
在web.xml中配置 要过滤的页面和能进入当前页面的角色
- <!---->
- <filter>
- <filter-name>UserAdminfilter-name>
- <!---->
- <filter-class>com.emap.web.FilterServletfilter-class>
- <!---->
- <init-param>
- <!---->
- <param-name>allowRoleparam-name>
- <param-value>1param-value>
- init-param>
- filter>
- <filter-mapping>
- <filter-name>UserAdminfilter-name>
- <url-pattern>/jsp/security/*url-pattern>
- filter-mapping>
上面配置的意思是说,当用户进入/jsp/security文件夹下的页面的时候,程序会进入FilterServlet 里的doFilter方法里,进行权限判断。
其他的页面权限控制:
1.你可以在filter里判断用户是否登录,然后需要特殊权限能访问的页面,在页面里进行判断。
2.推荐使用开源框架ACEGI来进行权限控制。
发表评论
-
Hibernate知识点
2010-12-20 08:47 36371 什么是Hibernate Hibern ... -
struts2知识点
2010-12-19 23:28 26651,Struts1和Struts2的区别和对比 1 ... -
struts1 struts2 国际化
2010-12-02 11:21 1775struts1国际化 1,在struts-cofig.xml ... -
struts1知识点
2010-11-26 10:51 2343对一个星期的 Struts1 进行笔记总结: ... -
jsp 七大动作
2010-11-17 20:49 6718jsp动作 1.创建bean对象: <jsp ... -
jsp 自定义标签
2010-11-17 11:56 2269第一版本: 为什么要使用自定义标签呢? 主要是为了取 ... -
监听器
2010-11-16 19:58 1341监听器概述 1.Listener是Servlet的监听 ... -
web应用最终可以以哪种形式进行部署
2010-11-16 08:58 1611EAR(Enterprise Archive) Java ... -
JSP中forward和redirect有什么区别?
2010-11-09 16:30 1660解释一: RequestDispatcher.forwa ... -
java 导出Excel文件
2010-11-09 11:22 1479这是项目其中的一个功能 1前台: ... -
Get 和 Post 之详解
2010-11-08 10:49 11331.HTTP请求格式: &l ... -
最简单的文件上传
2010-11-04 20:32 1253文件上传实例 testFileUpload.jsp代码 ... -
太多的连接
2010-10-18 08:46 941今天开发项目的时候,总是报错,可是就是找不出原因,后来根据抱错 ... -
log4j写日志
2010-10-17 21:17 1237好处:便于维护与管理 ... -
如何实现数据水晶分页显示的功能?
2010-10-10 16:30 952这就是要显示的结果 首先要一个好看点的css样式 p ... -
实现业务系统中的用户权限管理
2010-10-07 20:50 1129最近学那个用户权限管理系统,郁闷的很啊,总是理解地云里云雾 ... -
如何在关闭页面时自动清除Session?
2010-10-06 09:40 41941、在要关闭的页面中的<head>处加入如下的ja ... -
Java中四种XML解析技术
2010-10-05 19:46 1486(一)DOM(JAXP Crimson解析器) DOM是用与平 ... -
java乱码处理集中营
2010-10-05 10:13 1901由于jdk中只规定了必须有一些unicode utf8 等编码 ... -
在Servlet与JSP中取得当前文件所在的相对路径与绝对路径
2010-10-05 10:11 1285System.out.println("根目 ...
相关推荐
在Web开发中,确保用户身份的安全性...总的来说,使用过滤器实现用户登录验证是一种常见的实践,它允许我们集中管理权限控制,提高代码的可维护性。同时,通过合理的配置和扩展,可以适应不同规模和需求的Web应用程序。
在Java Web开发中,过滤器经常被用来实现诸如权限验证、编码转换、日志记录等功能。 #### 二、配置过滤器 过滤器的配置通常是在`web.xml`文件中完成的。例如: ```xml <filter-name>access <filter-class>...
Java SSH 权限验证过滤器实现。。。内容简单 有部分struts.xml配置信息,自己测试过。仅供参考。。。
在Asp.NetCore框架中,开发人员经常遇到各种挑战,如权限验证、过滤器的使用以及设计模式的应用。本示例代码集旨在帮助开发者更好地理解和应用这些关键概念。以下是关于这些主题的详细讨论: 1. **Asp.NetCore**:...
在这个“servlet过滤器做的简单登陆demo”中,我们将探讨如何利用过滤器实现一个基础的登录验证系统。这个例子非常适合初学者理解和实践过滤器的用法。 1. **Servlet Filter原理**: Servlet过滤器遵循`Filter`...
在Web开发中,保护页面安全,避免用户未登录就访问敏感页面是常见的需求。使用servlet和jsp技术时,...开发者可以灵活地定义过滤器的行为,并且通过配置文件将过滤器与具体的URL模式关联起来,实现复杂的权限控制逻辑。
本文将深入探讨如何利用过滤器实现多层权限控制,并结合给定的标签“源码”和“工具”,来提供一个具体的实践示例。 首先,我们需要理解过滤器在Java Web开发中的作用。在Servlet规范中,过滤器是一个实现了javax....
此外,可以使用依赖注入(Dependency Injection)将用户服务或其他业务逻辑引入自定义授权过滤器,以便进行更复杂的授权检查,如角色或权限验证。 总的来说,.NET MVC的授权过滤器是实现用户登录验证的关键组件。...
在权限管理的场景下,过滤器常用于实现登录验证、角色检查等功能。粗粒度的权限管理意味着我们并不关心每一个细小的操作,而是对一组相关的资源或者操作进行统一的权限判断。这种方式简化了代码,提高了效率,同时也...
"过滤器实现鉴权"这个主题涉及到如何使用过滤器来实现对用户访问特定目录的权限控制,而无需依赖数据库。这种方式常用于小型项目或者快速原型开发,减少了数据库设计和连接的复杂性。 1. **过滤器基础** - 过滤器...
在IT领域,特别是Java Web开发中,Servlet过滤器(Filter)是实现用户权限管理、登录状态验证等关键功能的重要机制之一。本文将深入探讨如何利用Servlet过滤器来验证用户是否已登录,以及如何配置过滤器以针对特定的...
在IT领域,尤其是在Web开发中,过滤器(Filter)是一种常用的技术,用于处理HTTP请求和响应,实现诸如权限控制、日志记录、数据过滤等功能。本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对...
在本篇文章中,我们将深入探讨Struts权限过滤器的工作原理、配置以及如何实现自定义过滤器。 Struts 2框架提供了多种内置过滤器,如`TilesFilter`、`StrutsPrepareAndExecuteFilter`等,这些过滤器帮助开发者管理...
过滤器的一个典型应用场景是进行权限控制,比如登录检查。你可以检查请求中的会话信息,如果用户未登录,则重定向到登录页面。此外,过滤器还可以用于GZIP压缩、日志记录、字符集转换等多种用途。 在实际项目中,你...
在本主题中,我们将重点讨论如何使用过滤器来实现用户登录验证。这在保护网站资源、确保只有已登录的用户才能访问特定页面时尤其重要。 过滤器的工作原理是基于Servlet规范中的Filter接口。当一个HTTP请求到达...
过滤器可以用来做多种任务,包括登录验证、URL重写、字符编码转换等,而权限管理是其中的一个关键应用。 1. **Filter的基本概念** - Filter接口:它包含三个方法,`doFilter()`, `init()`, 和 `destroy()`。`...
通过以上步骤,我们就利用Java Web的过滤器实现了基本的权限访问控制。这个机制不仅限于简单的登录验证,还可以扩展到更复杂的权限系统,如基于角色的访问控制(RBAC)或其他自定义的权限策略。记住,安全是Web应用...
通过使用过滤器,可以简化应用开发,并将一些通用功能(如登录验证、权限控制、编码转换等)从业务逻辑中分离出来。 #### 知识点二:过滤器的生命周期方法 过滤器具有以下三个主要方法: 1. **init(FilterConfig ...
在标题提到的"通过过滤器管理用户权限(1)"中,我们将主要关注如何利用过滤器实现登录验证,确保只有已登录的用户才能访问特定的受保护资源。这通常涉及到一个名为`LoginFilter`的类,正如压缩包中的`LoginFilter....
2. **权限验证**:类似于`Test`过滤器的功能,可以用来进行基本的身份验证或权限检查。例如,检查用户是否登录,或者用户是否有访问特定资源的权限,这对于构建安全的Web应用非常重要。 3. **日志记录与监控**:...