页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

版本 1 下一个 »

1 概述

需求:

 由于互联网可以直接通过WEB登陆并访问业务数据;需要限制外网通过Web访问报表系统,只能够是手机、Pad等设备访问

 

实现方案:

1,添加系统选项配置限制访问的地址;

2,使用过滤器拦截用户请求,如果发现请求的地址是上面系统选项配置的,并且设备是PC,就重定向到一个提示页面,提示只能通过移动设备使用

2 编写修改代码

2.1 在ItemLimitAddr.js文件中添加系统选项配置限制访问的地址

var ItemLimitAddr = function() {
 this.itemName = "限制访问的地址";
 this.dbKey = "NEW_SYSTEM_CONFIG_ItemLimitAddr";
};

 

2.2 编写过滤器拦截处理:

@Override
 public void doFilter(ServletRequest servletRequest,
   ServletResponse servletResponse, FilterChain filterChain)
   throws IOException, ServletException {
  // TODO Auto-generated method stub
  System.out.println("该url正在过滤。。。。。");
  HttpServletRequest request = (HttpServletRequest) servletRequest;
  HttpServletResponse response = (HttpServletResponse) servletResponse;
  servletRequest.setCharacterEncoding("UTF-8");
  
  //获取系统选项的"限制访问的地址"的值
  ConfigClientService cs = ConfigClientService.getInstance();
  ISystemConfig sc = cs.getSystemConfig("NEW_SYSTEM_CONFIG_ItemLimitAddr");
  String value = null;
  if(sc!=null){
   value= sc.getValue();
   }
  
  //获取访问的ip地址
  String ip = request.getLocalAddr();
  LOG.info("ip:"+ip+",value:"+value);
  if (ip.equals(value)) {
   String requestHeader = request.getHeader("user-agent");
   if (LimitAddrFilter.isMobileDevice(requestHeader)) {
    System.out.println("使用手机浏览器");
    filterChain.doFilter(servletRequest, servletResponse);
   } else {
    System.out.println("使用web浏览器");
    response.sendRedirect(request.getContextPath()+"/404/404.jsp");
    return;
   }
  } else {
   filterChain.doFilter(servletRequest, servletResponse);
  }
 }

3 相关资源

TaiKangRenShouGuiZhou.ext

 

JIRA:EPPR-8002

  • 无标签