防止用户直接访问框架URL的权限控制

使用过滤器可防止用户直接在浏览器中输入URL访问。

过滤器的内容如下:

	public void preProcess(WebContext context) {
		this.initParam();
		String URI = context.getRequest().getRequestURI();
		//获取父URL--用户直接输入URL,这个父URL是不存在的
		String parentURL = context.getRequest().getHeader("REFERER");  
		boolean illegalURLFlag = false; //非法URL标志
		Object userSession = context.getRequest().getSession().getAttribute(this.getSessionKey());
		if(null == userSession){//未登录,不使用该filter
			return;
		}
		if(null == parentURL || "".equals(parentURL)){//无父URL,非法访问
			illegalURLFlag = true;
		}
		// 非法访问URL
		if (illegalURLFlag){
			try {
				//强制用户重新登录
				context.getRequest().getSession().removeAttribute(this.getSessionKey());
				context.getResponse().sendRedirect(context.getRequest().getContextPath());
				log.info("common.filter.illegalURLfilter.preprocess.noright", URI);
			} catch (Exception e) {
				log.error(e, "common.filter.illegalURLfilter.preprocess.redirectErrorPage", new Object[]{URI, this.getMainPage()});
			}
		}
	}

 

过滤器的配置文件如下:

		
		
			
			
			
			
			
		

 

直接访问URL效果图如下:


防止用户直接访问框架URL的权限控制_第1张图片
 

 

你可能感兴趣的:(Web)