用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
2013-08-18 21:54
603 查看
Java 代码:
Java代码
package com.viano.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;
import javax.servlet.http.HttpSession;
/**
* 用户访问权限的过滤器
* @author viano
*/
public class UsersFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 设置请求的字符编码
request.setCharacterEncoding("UTF-8");
// 设置返回请求的字符编码
response.setCharacterEncoding("UTF-8");
// 转换ServletRequest为 HttpServletRequest
HttpServletRequest req = (HttpServletRequest) request;
// 转换ServletResponse为HttpServletRequest
HttpServletResponse res = (HttpServletResponse) response;
// 获取Session
HttpSession session = req.getSession();
// 获取Session中存储的对象
Object o = session.getAttribute("user");
// 获取当前请求的URI
String url = req.getRequestURI();
// 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI
if (o == null
&& !url.endsWith("login.jsp") // 对URL地址为此结尾的文件不过滤
&& url.indexOf("login.do") < 0 // 对URL地址中包含此字符串的文件不过滤
&& url.indexOf("/images/") < 0) {
res.sendRedirect(req.getContextPath() + "/login.jsp");
} else {
chain.doFilter(request, response);
res.setHeader("Cache-Control","no-store");
res.setDateHeader("Expires",0);
res.setHeader("Pragma","no-cache");
res.flushBuffer();
}
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
WEB.XML 代码:
Xml代码
<!-- Filter 登陆过滤开始-->
<filter>
<filter-name>UsersFilter</filter-name>
<filter-class>com.viano.filter.UsersFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UsersFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Filter 登陆过滤结束-->
Java代码
package com.viano.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;
import javax.servlet.http.HttpSession;
/**
* 用户访问权限的过滤器
* @author viano
*/
public class UsersFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
// 设置请求的字符编码
request.setCharacterEncoding("UTF-8");
// 设置返回请求的字符编码
response.setCharacterEncoding("UTF-8");
// 转换ServletRequest为 HttpServletRequest
HttpServletRequest req = (HttpServletRequest) request;
// 转换ServletResponse为HttpServletRequest
HttpServletResponse res = (HttpServletResponse) response;
// 获取Session
HttpSession session = req.getSession();
// 获取Session中存储的对象
Object o = session.getAttribute("user");
// 获取当前请求的URI
String url = req.getRequestURI();
// 判断Session中的对象是否为空;判断请求的URI是否为不允许过滤的URI
if (o == null
&& !url.endsWith("login.jsp") // 对URL地址为此结尾的文件不过滤
&& url.indexOf("login.do") < 0 // 对URL地址中包含此字符串的文件不过滤
&& url.indexOf("/images/") < 0) {
res.sendRedirect(req.getContextPath() + "/login.jsp");
} else {
chain.doFilter(request, response);
res.setHeader("Cache-Control","no-store");
res.setDateHeader("Expires",0);
res.setHeader("Pragma","no-cache");
res.flushBuffer();
}
}
public void init(FilterConfig filterConfig) throws ServletException {
// TODO Auto-generated method stub
}
}
WEB.XML 代码:
Xml代码
<!-- Filter 登陆过滤开始-->
<filter>
<filter-name>UsersFilter</filter-name>
<filter-class>com.viano.filter.UsersFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>UsersFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Filter 登陆过滤结束-->
相关文章推荐
- 用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
- 用户的访问权限过滤器,防止用户直接输入URL直接访问资源。
- 防止用户直接访问url的权限控制(使用过滤器)
- HttpServletRequest的getServletPath、getServletURI、getServletURL等区别 &&如何防止用户通过直接输入URL访问网页
- 防止用户直接访问url的权限控制
- 防止其他URL地址直接访问本站资源【防盗链过滤器】
- 防止用户直接访问url的权限控制
- 防止直接输入URL访问页面,但是不能防止从其他的地方连接过来
- 防止未登录的用户直接重写URL访问系统
- java项目中普遍存在的一个bug,用户直接可以通过url访问本人没有权限的页面
- 防止用户不登陆直接输入网址访问页面
- 防止用户直接输入地址访问jsp文件
- 过滤器 防止直接在浏览器输入url进入页面
- 过滤器做单点登录(包括后登录用户将之前用户挤出,防止url键入操作,已登录用户重操作其他不用再次输入用户名和密码)
- 防止用户直接访问url
- 防盗链——防止其他页面通过url直接访问本站资源
- 防止用户直接输入地址下载资源文件(java实现)
- 防止用户不登陆直接输入网址访问页面收藏
- 通过request.getHeader("referer")防止用户手动修改URL访问非权限页面
- JSP如何防止用户直接输入url进页面