package com.spider.reader.common.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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class SecurityFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
//Session属于HTTP范畴,所以ServletRequest对象需要先转换成HttpServletRequest对象
HttpServletRequest req=(HttpServletRequest)request;
HttpServletResponse res=(HttpServletResponse)response;
//取得请求的URL
String url = req.getRequestURL().toString();
if(url.indexOf("login.action")!=-1 || url.indexOf("loginOut.action")!=-1 ){
//过滤器放行ation
}else{
if(req.getSession() == null || req.getSession().getAttribute("loginname") == null){
res.sendRedirect(req.getContextPath()+"/login.action"); //跳回登录页
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub
}
}
web.xml配置
<filter>
<filter-name>sercurity</filter-name>
<filter-class>
com.spider.reader.common.filter.SecurityFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>sercurity</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
相关推荐
`CheckLoginFilter` 过滤器用于检查用户是否已登录,如果未登录则重定向到登录页面。配置参数包括 `checkSessionKey`,用于检查的会话(Session)关键字;`redirectURL`,未登录时重定向的URL(不包含ContextPath)...
登录拦截器是一种基于Java Servlet API的机制,用于在请求到达目标资源之前进行过滤。其主要作用是检查用户的登录状态,并根据结果决定是否允许请求继续执行。如果用户未登录,则拦截器会重定向用户到登录页面;如果...
如果请求的URL不是登录页面且用户没有登录(即`session.getAttribute("empId")`返回`null`或空字符串),我们应该重定向用户到登录页面。 ```java if (empId == null || "".equals(empId)) { servletResponse....
最后,文章还提到了session过滤的应用场景,比如在访问background目录下的页面之前,拦截器会检查请求URI是否包含background,如果包含且用户未登录,则拦截请求。这部分是通过预先定义的URI规则(noFilters数组)来...
如果Session不存在或者Session中的关键属性(如"userName")为空,那么我们可以认定Session已经失效。关键的一步是,当检测到Ajax请求时,我们不是重定向,而是通过设置响应头(`sessionstatus`)告知前端Session已...
5. **异常处理**:对于用户名为空的情况,可以在Filter中特别处理,提前返回登录页面,防止无效的登录尝试。 总的来说,Filter在Web应用中起着至关重要的作用,它们可以用来拦截、修改和增强请求与响应。在这个示例...
- Shiro 配置了一个名为 `authc.FormAuthenticationFilter` 的过滤器,当用户尝试访问受保护的资源时,会触发 Shiro 进行验证。 - 如果用户未登录,Shiro 将自动重定向到配置的 `loginUrl`,在 Jeesite 中,这通常...
9. **过滤器(Filter)**:在Java Web中,过滤器可以拦截请求,实现权限控制,例如未登录用户访问某些页面时会被重定向到登录页面。 10. **MVC模式**:Model-View-Controller模式是常见的Web应用设计模式,其中...
在用户尝试登录时,JavaScript可以在客户端验证用户名和密码是否为空,或者格式是否正确,这样可以减少无效的服务器请求。 3. **HTTP协议与POST请求**: 用户提交登录信息时,浏览器会发送一个POST请求到服务器。...
ASP.NET MVC权限过滤和单点登录(禁止重复登录) ASP.NET MVC权限控制是指在ASP.NET MVC应用程序中对用户的操作权限进行控制和限制,以确保只有授权用户才能访问和操作指定的资源。权限控制可以通过多种方式实现,...
1. **配置Struts2**:在项目中集成Struts2,需要在web.xml文件中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.FilterDispatcher`或更现代的`org.apache.struts2.dispatcher filt er....
*** mvc框架通过过滤器和其他安全特性提供了灵活的方式来实现权限控制和单点登录功能。开发者可以利用框架内建的AuthorizeAttribute类进行扩展,来适应不同的权限验证需求。同时,要实现单点登录和禁止重复登录功能...
7. **会话管理**:登录成功后,一般会使用`Session`来存储用户的登录状态,以便在后续的请求中识别用户身份。 8. **错误处理和提示**:系统需要能够优雅地处理各种异常情况,如用户名不存在、密码错误等,并向用户...
总结来说,权限鉴定是一个复杂的过程,涉及到前端过滤器、后端服务、session管理以及框架的配置。在Java Web应用中,通过Spring管理和Struts配置,我们可以实现高效且灵活的权限控制,确保用户只能访问他们被授权的...
- 过滤器还读取了用户的会话信息(session),以确定当前登录用户的身份和权限。 - **`init()` 方法**: - 初始化时,过滤器会获取应用上下文(`ServletContext`)并加载配置文件。 - 如果上下文为空,则记录错误...
7. **过滤器(Filter)**:在某些情况下,可能会使用Servlet过滤器来预处理请求,例如,对所有请求进行统一的验证或者权限控制。 8. **SQL查询**:在登录验证中,通常会涉及到与数据库的交互,比较用户输入的凭证与...
如果验证成功,通常会设置session或cookie来保持用户登录状态。 查询功能则根据应用的具体需求而变化,可能是搜索、过滤或者排序数据。在Spring MVC中,这通常涉及到创建一个Controller方法,接收用户的查询参数,...
1. **配置Web.xml**:这是Web应用程序的部署描述符,用于定义Servlet、过滤器和监听器等。在登录功能中,我们可能需要配置Filter来拦截所有请求,然后根据用户是否已登录决定是否重定向到登录页面。 2. **配置...
在站点根目录下添加filter sjs与endfilter sjs(这是两个必须的过滤器 如无需写代码放两个空文件即可) 2 静态资源与动态页面 在server sjs里的server execFileTypes定义可以配置将哪些文档类型作为动态页面 当请求...
3. **Struts过滤器**:在Struts应用中,我们需要修改或添加一个过滤器来处理验证码。过滤器的作用是在请求到达Action之前进行预处理,比如验证请求是否包含正确的验证码。过滤器可以通过`Filter`接口实现,然后在`...