在project应用中有一些url是不可以直接访问的,必须有授权或是经过某些处理才能访问,比如访问某些功能必须登录,某些功能必须是指定的用户才能访问,这些需要用到访问权限的控制,如果具有访问的权限,则允许访问,没权限则跳转到指定的处理页面。
package com.bird.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;
/**
* @author jzq
* URL 访问控制
* 2009-11-12
*/
public class AccessPurviewFilter extends HttpServlet implements Filter {
/**
* 重定向的URL
*/
private String redirectURl = null;
/** doFilter方法的第一个参数为ServletRequest对象。此对象给过滤器提供了对进入的信息(包括
* 表单数据、cookie和HTTP请求头)的完全访问。第二个参数为ServletResponse,通常在简单
* 的过滤器中忽略此参数。最后一个参数为FilterChain,此参数用来调用servlet或JSP页。
* -- 如果处理HTTP请求,并且需要访问诸如getHeader或getCookies等在ServletRequest中
* 无法得到的方法,就要把此request对象构造成HttpServletRequest
*/
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("userName") == null) {
String contextPath = request.getContextPath();
String currentPath = request.getRequestURI();
response.sendRedirect(contextPath + redirectURl);
}
}
public void init(FilterConfig arg0) throws ServletException {
redirectURl = "/login.jsp";
}
}
web.xml中配置要过滤的URL:
<filter>
<filter-name>AccessPurviewFilter</filter-name>
<filter-class>com.bird.filter.AccessPurviewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>AccessPurviewFilter</filter-name>
<url-pattern>/frame/*</url-pattern>
</filter-mapping>
上面配置当用户进入
frame
文件夹下的页面的时候,程序会进入
AccessPurviewFilter
里的doFilter方法里,进行权限的判断。
分享到:
相关推荐
下面我们将详细讨论Filter的工作原理以及`UserRoleFilter`如何实现页面访问权限控制: 1. **Filter生命周期**: - **初始化**:当Filter被加载时,会调用`init(FilterConfig filterConfig)`方法。在这个方法中,`...
然后,你需要创建一个`ShiroFilter`配置,定义Shiro过滤器链,这是Shiro控制URL访问的核心部分。在`web.xml`或Spring Boot的配置文件中,你会看到类似下面的配置: ```xml <filter> <filter-name>shiroFilter</...
本篇文章将详细探讨如何在SpringBoot中实现基于RBAC(Role-Based Access Control,基于角色的访问控制)的权限控制,包括菜单控制、页面元素控制以及URL控制。 首先,让我们理解RBAC模型。RBAC是一种权限分配策略,...
在“javaweb实现的访问权限控制示例”中,我们主要关注的是如何利用Filter进行权限校验。通常,我们会创建一个自定义的Filter类,继承自`javax.servlet.Filter`接口,并实现其`doFilter()`方法。在这个方法中,我们...
标题“Java禁止直接URL访问图片”涉及到的是网络资源保护和权限控制的问题,主要知识点包括: 1. **HTTP请求与响应**: 当用户通过浏览器或其他客户端工具输入一个URL来访问图片时,实际上是发送了一个HTTP GET...
在这个场景中,"Filter进行权限控制"指的是使用`Filter`来实现用户访问权限的管理,确保只有登录后的用户才能访问特定的资源。下面我们将深入探讨`Filter`的工作原理以及如何实现登录控制。 `Filter`是Java Servlet...
本文将详细探讨如何通过`Filter`实现权限控制,以及与RBAC(Role-Based Access Control,基于角色的访问控制)的关系。首先,让我们理解`Filter`的概念。 `Filter`是Java Servlet API中的一个重要组件,它允许我们...
在Web开发中,权限访问控制和用户会话管理是至关重要的环节。`Filter`过滤器是Java Servlet技术中的一种机制,用于对HTTP请求和响应进行预处理和后处理,从而实现诸如权限验证、数据转换、日志记录等功能。在这个...
解压后,你可以查看源码,学习如何实现一个具体的JSP权限管理系统,包括Filter的使用、用户验证和权限控制等。 总的来说,JSP权限管理系统filter是一种有效的安全措施,它通过拦截和处理请求,确保了Web应用的安全...
此外,我们还可以根据需要进一步扩展过滤器,实现更复杂的权限控制。例如,我们可以添加角色检查,只允许具有特定角色的用户访问某些资源。这可以通过在会话中存储用户的角色信息,并在过滤器中进行比较来完成: ``...
2. **授权(Authorization)**:也称为权限控制,是确定用户是否有权限执行特定操作或访问特定资源的过程。在基于URL的权限管理中,Shiro会检查用户的权限与他们尝试访问的URL是否匹配。 3. **会话管理(Session ...
"Fliter访问权限控制.rar"这个压缩包包含了一个关于如何实现访问权限控制的Filter实例,对于学习如何在实际项目中保护资源的安全性具有很高的参考价值。 首先,Filter的主要作用是进行数据预处理或后处理,比如登录...
本话题将详细探讨如何利用Filter来限制用户浏览特定的页面,以实现用户权限控制。 一、Filter概述 Filter是Servlet规范的一部分,它允许开发者在请求到达目标资源(如Servlet或JSP)之前和之后对请求和响应进行拦截...
4. **访问控制列表(ACL)**:ACL是权限控制的核心,它定义了哪些用户或角色可以访问特定的URL、方法或资源。例如,只有管理员可以访问后台管理系统。 5. **过滤器(Filter)机制**:在JavaWeb中,使用Servlet ...
本篇将详细探讨`filter`如何用于过滤非登录用户的权限控制,以及相关的源码实例。 一、Filter基本概念 在Java Servlet规范中,Filter是一个接口,它允许开发者在请求到达Servlet之前对其进行拦截和处理,也可以在...
在IT领域,尤其是在Web开发中,过滤器(Filter)是一种常用的技术,用于处理HTTP请求和响应,实现诸如权限控制、日志记录、数据过滤等功能。本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对...
过滤器(Filter)技术常被用来实现多层权限控制,确保只有合法的用户才能访问特定的资源。本文将深入探讨如何利用过滤器实现多层权限控制,并结合给定的标签“源码”和“工具”,来提供一个具体的实践示例。 首先,...
在Java Web开发中,权限控制是一项至关重要的任务,它确保只有授权的用户才能访问特定的资源和服务。这里的“java权限控制”主要指的是在Web应用程序中实施的安全策略,以保护敏感数据和操作。过滤器(Filter)是...
通过使用Java EE中的过滤器,我们可以有效地管理项目的字符编码,并且可以实现对未登录用户的访问权限控制。这两种方法不仅可以提高系统的安全性,还能提升用户体验。在实际项目开发过程中,开发者可以根据具体需求...
3. **实现权限检查**:在`isUserAuthorized()`方法中,我们可以根据业务逻辑检查用户是否具有访问权限。这通常涉及到从HTTP session中获取用户信息,然后比较用户的角色或权限与所需访问资源的访问级别。 4. **处理...