import javax.servlet.Filter;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.FilterChain;
import java.io.IOException;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
public class PermissiondoFilter implements Filter {
private FilterConfig filterConfig;
private FilterChain chain;
private HttpServletRequest request;
private HttpServletResponse response;
public void destroy() {
this.filterConfig = null;
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
public void doFilter(ServletRequest servletRequest,
ServletResponse servletResponse, FilterChain chain) {
this.chain = chain;
this.request = (HttpServletRequest) servletRequest;
this.response = ((HttpServletResponse) servletResponse);
String url = request.getRequestURI();
System.out.println("访问的完整路径-->" + url);
try {
HttpSession session = request.getSession();
// 获取网站访问根目录
String accessPath = request.getContextPath();
System.out.println("-访问的网站根目录-" + accessPath);
// 截获根目录以后的路径即'/项目名'以后的路径;
url = url.substring(accessPath.length() + 1, url.length());
System.out.println("-访问-" + url);
LoginUser loginUser = (LoginUser) session.getAttribute("loginUser");
System.out.println("url-->" + url);
if (noVerifyUrl(url, request)) {
chain.doFilter(request, response);
} else if (loginUser == null) {
response.sendRedirect(accessPath + "/login.jsp");
} else {
System.out.println(loginUser.getUserName() + "-访问-" + url);
verifyUrl(url, loginUser);
}
} catch (Exception sx) {
sx.printStackTrace();
}
}
分享到:
相关推荐
获得structs的相对权限 url实现权限控制
在实现URL权限控制时,Shiro通过定义一系列的拦截器(Interceptors)来过滤请求。这些拦截器可以基于URL路径或特定的HTTP方法(如GET、POST等)来决定是否允许用户访问。Shiro的Web模块提供了一个名为`...
Struts权限过滤器是Java Web开发中用于控制用户访问权限的关键组件,主要应用于基于Struts 2框架的应用程序。在Struts 2框架中,过滤器扮演着重要的角色,它们在HTTP请求到达Action之前进行拦截,对请求进行预处理,...
本demo为Spring boot整合shiro,以mybatis plus做dao层交互数据,实现了读取数据库用户数据实现用户登录,权限认证,读取数据库中用户对应的url请求,实现请求的过滤。自定义了relam和过滤器来实现这些功能
开发者可以利用过滤器对URL进行拦截,比如进行权限验证、字符编码转换、日志记录等操作。在这个案例中,自定义的URL过滤器可能实现了特定的过滤逻辑,对不安全或不符合规则的URL进行拦截。 2. **监听器(Listener)...
Shiro的动态URL权限控制主要是通过`AuthorizationFilter`实现的,这个过滤器会检查当前用户是否有访问特定URL的权限。Shiro提供了`@RequiresPermissions`和`@RequiresRoles`等注解,可以用于控制器方法上,以声明...
1. **创建过滤器类**:首先,创建一个实现了Filter接口的类。在这个类中,我们重写`doFilter()`方法,这里将进行实际的权限检查。例如,我们可以检查请求的用户是否已登录,或者他们的角色是否有权访问目标资源。 `...
FilterSecurityInterceptor是一个过滤器,它可以拦截用户的请求,并根据用户的角色和权限来决定是否允许用户访问某个资源。FilterSecurityInterceptor继承于AbstractSecurityInterceptor,后者提供了许多有用的方法...
【标题】:“jsp 权限过滤器的应用” 在Java Web开发中,权限过滤器是实现用户访问控制的关键组件。它允许开发者对用户的请求进行预处理,根据用户的角色和权限来决定是否允许他们访问特定的资源。这篇博客文章,...
在这个例子中,我们的权限过滤器会在这个链中。 3. **身份验证**:过滤器首先检查请求的上下文(例如,通过session获取用户信息)以确定用户是否已登录。如果用户未登录,可以重定向到登录页面,或者返回错误信息。 ...
- URL过滤分类配置:设定各类URL的访问权限,如允许访问工作相关网站,禁止访问游戏和视频网站。 - 手动离线升级特征库:在无网络连接时,下载新的特征库文件并手动导入设备进行升级。 - 定期自动在线升级特征库:...
### 利用过滤器设置权限 在Web应用开发过程中,权限控制是非常重要的一个环节,它确保只有具有相应权限的用户才能访问特定资源。本篇文章将详细介绍如何通过Web应用中的过滤器来实现对用户访问权限的控制。 #### ...
1. **拦截请求**:当客户端发送请求到服务器时,如果该请求的 URL 匹配了某个过滤器的 URL 模式,那么这个请求就会先经过该过滤器的处理。 2. **执行逻辑**:在 `doFilter` 方法中可以实现任何业务逻辑,例如本例中...
《URL过滤配置详解》 URL过滤是网络安全领域中一项重要的技术,主要用于管理和限制网络访问行为,防止用户访问不健康、非法或潜在有害的网站。它通过对比预设的URL特征库,对网络流量中的URL进行识别和过滤,从而...
在Java中,这通常涉及到权限过滤器,比如Servlet中的Filter,用于在请求到达目标资源之前进行拦截和处理,例如,根据用户的角色和权限来决定是否允许访问某个URL。 压缩包内的文件名"www.pudn.com.txt"可能是一个...
"filter_权限过滤器"指的是利用过滤器来控制用户访问特定资源的权限,确保只有具有相应权限的用户才能访问敏感数据或执行特定操作。这是一种最佳实践,能够提供全面且安全的权限管理。 过滤器是Servlet规范的一部分...
接下来,我们将按照以下步骤来创建一个简单的用户权限过滤器: 1. **创建过滤器类**: 在`src`目录下创建一个新的Java类,例如`UserAuthorizationFilter`,实现`Filter`接口。你需要重写`doFilter()`方法,在这个...
本案例中的"过滤器--控制不同权限用户访问不同文件夹代码.rar"是一个针对权限管理的具体应用,它允许开发者根据用户的权限级别决定他们可以访问哪些文件夹或资源。 过滤器的概念源自Java Servlet技术,它是Servlet ...
在标题提到的"通过过滤器管理用户权限(1)"中,我们将主要关注如何利用过滤器实现登录验证,确保只有已登录的用户才能访问特定的受保护资源。这通常涉及到一个名为`LoginFilter`的类,正如压缩包中的`LoginFilter....
3. **实现用户权限过滤器** - 创建自定义Filter:你需要创建一个实现`javax.servlet.Filter`的类,并在`doFilter()`方法中编写权限检查逻辑。 - 注册Filter:将自定义Filter添加到Web应用的部署描述符(`web.xml`)...