URL权限过滤(二)

URL权限过滤(2)
如果您发现内容含有错误或公司内部信息,请予以指出,本人不胜感激。。。。
/**
	 * @param url
	 *            当前请求的url
	 * @param loginUser
	 *            当前登录用户
	 * @throws IOException
	 * @throws ServletException
	 */
	private void verifyUrl(String url, LoginUser loginUser) throws IOException,
			ServletException {

		// 获取user拥有的所有资源串
		String sturl = loginUser.getUrl();
		System.out.println("可以访问的地址--->" + sturl);

		String url1 = null;
		String url2 = null;
		String url3 = null;
		url1 = url.substring(0, url.indexOf("/"));

		if (sturl.indexOf(url) >= 0) {
			System.out.println("有权访问!");
			chain.doFilter(request, response);
			return;
		}

		url1 = url.substring(0, url.indexOf("/") + 1);
		if (sturl.indexOf(url1 + "*") >= 0) {
			System.out.println("有权访问!");
			chain.doFilter(request, response);
			return;
		}

		url2 = url.substring(url1.length(), url.length());
		if (null != url2) {
			while (url2.contains("/")) {
				url2 = url.substring(url1.length(), url.length());
				url1 = url1 + url2.substring(0, url2.indexOf("/") + 1);
				url3 = url1 + "*";
				System.out.println("可以访问的地址url3--->" + url3);
				if (sturl.indexOf(url3) >= 0) {
					System.out.println("有权访问!");
					chain.doFilter(request, response);
					return;
				}
			}
		}
		System.out.println("无权限!");
		response.setContentType("text/html;charset=UTF-8");
		response.getWriter().println("<div>Sorry,您没有权限访问该资源!</div>");
	}

/**
	 * 是否需要判断权限,如客户端浏览、登录页面则不需要判断权限
	 */
	protected boolean noVerifyUrl(String url, HttpServletRequest request) {
		// login.action
		String exclude = "login.jsp,loginAction.action";
		if (exclude.indexOf(url) >= 0) {
			return true;
		}
		return false;
	}

}