现在的位置: 首页 > 综合 > 正文

FilterConfig关于权限过滤

2013年09月15日 ⁄ 综合 ⁄ 共 1863字 ⁄ 字号 评论关闭

在web.xml配置好filter的参数,然后通过filterconfig来读取init-param的值就可以了 如下面的代码,

 

 package com.gjun.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;

import com.gjun.student.vo.Admin;

/**

* @author Administrator

 * */

 public class AuthFilter extends HttpServlet implements Filter {
/* * (non-Javadoc)
* * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest,
* javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException {
 HttpServletRequest hRequest = (HttpServletRequest) request;
 HttpServletResponse hResponse = (HttpServletResponse) response;
HttpSession session = hRequest.getSession();
if (hRequest.getRequestURI().indexOf("login") >= 0)
{ filterChain.doFilter(request, response); return; }
Admin user = (Admin) session.getAttribute("user");
//这段就是控制你的权限的地方,通过就直接派发的下一filter
if (user!=null&&user.username.equals(role)) { filterChain.doFilter(request, response); }

 else { hResponse.sendRedirect("login_input.action"); }
}
private FilterConfig filterConfig; private String role; //这段应该
public void init(FilterConfig filterConfig) { this.filterConfig = filterConfig;
//从web.xml文件中读取role的值
this.role = filterConfig.getInitParameter("role"); }
}
// web.xml中的filter的参数的代码段 XML code
<filter>
   <filter-name>auth</filter-name>
   <filter-class>com.gjun.filter.AuthFilter</filter-class>
   <init-param>
      <param-name>role</param-name>
      <param-value>admin</param-value>
   </init-param>
</filter>

<filter-mapping>
   <filter-name>auth</filter-name>
   <url-pattern>/*</url-pattern>
</filter-mapping>

抱歉!评论已关闭.