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 AccessControlFilter implements Filter {
protected FilterConfig filterConfig = null;
public void destroy() {
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest)request;
String url = req.getRequestURI();
if(url.endsWith("/index.jsp") || url.endsWith("/"))
chain.doFilter(request, response);
else {
boolean validate = false;
User user;
if (req.getSession().getAttribute("user") != null) {
user = (User)req.getSession().getAttribute("user");
if (user.isLogin()!= null) {
validate = true;
}
}
if(!valida) {
req.getSession().setAttribute("reqUrl", url);
HttpServletResponse res = (HttpServletResponse)response;
res.sendRedirect(req.getContextPath()+"/index.jsp");
} else {
chain.doFilter(request, response);
}
}
}
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig = filterConfig;
}
}
分享到:
相关推荐
public class AccessControlFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException {} @Override public void doFilter(ServletRequest request, ...
options.Filters.Add(typeof(AccessControlFilter)); }); ``` 然而,这种全局注册方式会导致MVC部分的控制器也受到过滤器的影响,即使我们可以在过滤器内部进行条件判断来区分MVC和WebAPI控制器。为了寻找一个更...
Shiro提供了多种认证和授权策略,如RememberMe服务可以实现用户下次自动登录,而AccessControlFilter则负责拦截请求,进行权限校验。 在"zb-shiro"这个文件中,我们可以看到实际的Shiro配置示例和应用代码。这可能...
<filter-class>com.mycomp.AccessControlFilter</filter-class> <param-name>loginPage <param-value>/login.jsp <filter-name>accessControl <url-pattern>/protected ``` - 作用:过滤器是在...
public class AccessControlFilter implements Filter { private String[] allowedRoles; public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ...
在Spring框架中,依赖注入(Dependency Injection,DI)是一种核心特性,它允许对象之间的依赖关系在运行时由Spring容器管理,而不是由代码直接创建。在SSH(Struts、Hibernate、Spring)整合的Web应用中,Spring的...
从何说起 这来自于我把项目迁移到Asp.Net Core的过程中碰到一个问题。在一个web程序中同时包含了MVC... options.Filters.Add(typeof(AccessControlFilter)); }); 但这样做会带来一个问题,那就是MVC部分控制器也会受影
login.jsp,LoginControl和AccessControlFilter 实现网页访问控制的常规结构。 当然涉及许多对象。 基本上,我在这里使用过滤器来阻止未经身份验证的用户,并且只公开登录页面。 我花更多时间感兴趣的部分是...
5. **StatelessAuthcFilter**:这是一个定制的认证过滤器,继承自`AccessControlFilter`。`isAccessAllowed()` 总是返回`false`,迫使每次请求都进行认证。`onAccessDenied()` 方法处理未通过认证的情况,其中`...