著录项信息
专利名称 | 一种页面重定向方法及装置 |
申请号 | CN201510176208.3 | 申请日期 | 2015-04-14 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2015-07-29 | 公开/公告号 | CN104811489A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/08 | IPC分类号 | H;0;4;L;2;9;/;0;8;;;H;0;4;L;1;2;/;4;6;;;G;0;6;F;1;7;/;3;0查看分类表>
|
申请人 | 深圳市华讯方舟科技有限公司 | 申请人地址 | 广东省深圳市宝安区西乡宝田一路臣田工业区37栋1楼
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 华讯方舟科技有限公司 | 当前权利人 | 华讯方舟科技有限公司 |
发明人 | 操瑞峰 |
代理机构 | 深圳中一专利商标事务所 | 代理人 | 张全文 |
摘要
本发明适用于通信领域,提供了一种页面重定向方法及装置,方法包括:在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;解析数据报文并记录目的IP及端口;截获客户端的TCP SYNC报文;根据客户端的TCP SYNC报文、目标IP及端口,封装成接入回复报文,加封CAPWAP头后,将接入回复报文通过CAPWAP通信隧道返回给客户端;接收并截获客户端发送的HTTP数据请求报文,检测HTTP数据请求报文携带的请求方式,选择与请求方式相对应的响应方式;根据响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过CAPWAP通信隧道返回至客户端。本发明有益效果在于两方面,一方面提高了页面重定向的处理效率,另一方面有利于移植和推广使用。
1.一种页面重定向方法,其特征在于,包括:
在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;
当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;
查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;
根据所述客户端的TCP SYNC报文、目的IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;
接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;
在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述HTTP数据请求报文携带的请求方式包括GET请求方式和POST请求方式中的至少一种。
3.根据权利要求1或2所述的方法,其特征在于,当所述HTTP数据请求报文携带的请求方式为GET请求方式时,所述检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式,具体为:
检测所述HTTP数据请求报文携带的请求方式为GET请求方式;
选择与所述GET请求方式相对应的302响应方式。
4.根据权利要求1或2所述的方法,其特征在于,当所述HTTP数据请求报文携带的请求方式为POST请求方式时,所述检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式,具体为:
所述检测所述HTTP数据请求报文携带的请求方式为POST请求方式;
选择与所述POST请求方式相对应的303响应方式。
5.根据权利要求1所述的方法,其特征在于,所述在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端,具体为:
解析所述HTTP数据请求报文,根据所述响应方式,调用自定义的用于页面重定向的Portal页面地址替换所述HTTP数据请求报文中的URL,封装成新的HTTP数据请求报文;
在新的HTTP数据请求报文前加封CAPWP头后,通过所述CAPWAP通信隧道,将新的HTTP数据请求报文返回至所述客户端。
6.一种页面重定向装置,其特征在于,包括:
数据报文接收模块,用于在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;
数据报文解析模块,用于当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;
截获模块,用于查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;
接入回复报文返回模块,用于根据所述客户端的TCP SYNC报文、目的IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;
响应方式选择模块,用于接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;
Portal页面地址返回模块,用于在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。
7.根据权利要求6所述的装置,其特征在于,所述HTTP数据请求报文携带的请求方式包括GET请求方式和POST请求方式中的至少一种。
8.根据权利要求6或7所述的装置,其特征在于,所述响应方式选择模块包括:
第一检测单元,用于检测所述HTTP数据请求报文携带的请求方式为GET请求方式;
第一选择单元,用于选择与所述GET请求方式相对应的302响应方式。
9.根据权利要求6或7所述的装置,其特征在于,所述响应方式选择模块包括:
第二检测单元,用于所述检测所述HTTP数据请求报文携带的请求方式为POST请求方式;
第二选择单元,用于选择与所述POST请求方式相对应的303响应方式。
10.根据权利要求6所述的装置,其特征在于,所述Portal页面地址返回模块包括:
封装单元,用于解析所述HTTP数据请求报文,根据所述响应方式,调用自定义的用于页面重定向的Portal页面地址替换所述HTTP数据请求报文中的URL,封装成新的HTTP数据请求报文;
Portal页面地址返回单元,用于在新的HTTP数据请求报文前加封CAPWP头后,通过所述CAPWAP通信隧道,将新的HTTP数据请求报文返回至所述客户端。
一种页面重定向方法及装置\n技术领域\n[0001] 本发明属于通信领域,尤其涉及一种页面重定向方法及装置。\n背景技术\n[0002] 随着园区、公共场所、高校、企业、医院、酒店、餐馆等环境中无线局域网的广泛部署,终端用户的认证管理显得极为重要。其中,web认证是最为简洁一种认证方式,它不需要用户在客户端中安装特殊的应用软件,在web认证过程中,通过页面重定向方法,将当前的页面转向WIFI热点设定的Portal页面,以完成认证。\n[0003] 然而,现有的页面重定向方法,系统开销大、处理时间长,降低了页面重定向的处理效率且不利于推广使用。其原因在于,现有页面重定向方法,其页面重定向的数据需要进入内核,且需要内核处理页面重定向的数据,因此系统开销大、处理时间长。此外,WIFI热点一般由专业的网络设备供应商提供,因此WIFI热点设定的Portal页面,一般采用固定的Portal页面,不能够随意修改,商家无法将Portal页面,修改为配置的具有自己特色的Portal页面,适用范围有限,难以移植,因此不利于推广使用。\n发明内容\n[0004] 本发明实施例的目的在于提供一种页面重定向方法,旨在解决现有的页面重定向方法,系统开销大、处理时间长,降低了页面重定向的处理效率且不利于推广使用的问题。\n[0005] 本发明实施例是这样实现的,一种页面重定向方法,包括:\n[0006] 在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;\n[0007] 当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;\n[0008] 查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;\n[0009] 根据所述客户端的TCP SYNC报文、目标IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;\n[0010] 接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;\n[0011] 在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。\n[0012] 本发明实施例的另一目的在于提供一种页面重定向装置,包括:\n[0013] 数据报文接收模块,用于在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;\n[0014] 数据报文解析模块,用于当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;\n[0015] 截获模块,用于查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;\n[0016] 接入回复报文返回模块,用于根据所述客户端的TCP SYNC报文、目标IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;\n[0017] 响应方式选择模块,用于接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;\n[0018] Portal页面地址返回模块,用于在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。\n[0019] 在本发明实施例中,在CAPWAP的通信隧道入口,接收客户端发送的数据报文并进行了处理,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。由于数据报文没有进入内核协议栈,因此内核协议栈没有参与建立、维护TCP连接,从而减小了系统开销,相对于现有页面重定向方法,减少了系统开销和处理时间。此外,采用了自定义的用于页面重定向的Portal页面地址,商家可将Portal页面,修改为配置的具有自己特色的Portal页面,提高了适用范围。因此有益效果在于两方面,一方面提高了页面重定向的处理效率,另一方面有利于移植和推广使用。\n附图说明\n[0020] 图1是本发明实施例提供的页面重定向方法的实现流程图;\n[0021] 图2是本发明实施例提供的页面重定向方法中步骤S105的第一实现流程图;\n[0022] 图3是本发明实施例提供的页面重定向方法中步骤S105的第二实现流程图;\n[0023] 图4是本发明实施例提供的页面重定向方法中步骤S106的实现流程图;\n[0024] 图5是用户态socket收发包处理线程和TCP/IP协议栈的交互流程图;\n[0025] 图6是本发明实施例提供的页面重定向装置的结构框图。\n具体实施方式\n[0026] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。\n[0027] 实施例一\n[0028] 图1是本发明实施例提供的页面重定向方法的实现流程图,详述如下:\n[0029] 在步骤S101中,在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;\n[0030] 其中,数据报文是通过UDP 5247CAPWAP通信隧道接收,并且得到的是完整的用户数据报文。\n[0031] 在步骤S102中,当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;\n[0032] 在步骤S103中,查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;\n[0033] 其中,查询所述客户端当前处于需要认证且未认证状态下,才会截获TCP 80的SYNC报文并且记录用户请求服务器的真实的目的IP及端口。\n[0034] 在步骤S104中,根据所述客户端的TCP SYNC报文、目标IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;\n[0035] 其中,步骤S104,具体为:\n[0036] 对TCP SYNC报文进行解析,根据解析的内容,构造接入回复报文接入回复报文即SYNC ACK报文;\n[0037] 在所述接入回复报文前面加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道发送给客户端。\n[0038] 其中,根据截获的TCP SYNC报文构造接入回复报文,并根据记录的IP及端口更新计算报文校验和。\n[0039] CAPWAP通信隧道为无线接入点与客户端之间的CAPWAP套接字隧道。\n[0040] 其中,接收并截获客户端发送来的TCP ACK报文,此报文可不用处理直接丢弃,此时用户侧的TCP连接已经成功建立。\n[0041] 在步骤S105中,接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;\n[0042] 在步骤S106中,在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。\n[0043] 其中,整个数据报文的收发包及页面重定向的工作过程,全部在用户态完成,且所有报文的收发都是通过CAPWAP通信隧道完成,当完成重定向后,用户直接访问Portal页面,则需要白名单功能配合完成。\n[0044] 本发明提供的页面重定向方法,充分利用了SOCKET编程和TCP握手建立过程以及HTTP页面访问机制,经过合理的裁剪规避,从而简单的实现了页面访问重定向功能。其实现难度低,开发简单、效率高,对系统稳定没有影响,可移植性强,最大的接近和实现了嵌入式软件设计的要求。\n[0045] 实施例二\n[0046] 图2是本发明实施例提供的页面重定向方法中步骤S105的第一实现流程图,详述如下:\n[0047] 在步骤S201中,检测所述HTTP数据请求报文携带的请求方式为GET请求方式;\n[0048] 在步骤S202中,选择与所述GET请求方式相对应的302响应方式。\n[0049] 其中,选择与所述GET请求方式相对应的302响应方式,便于后续加载Portal页面地址。\n[0050] 实施例三\n[0051] 图3是本发明实施例提供的页面重定向方法中步骤S105的第二实现流程图,详述如下:\n[0052] 在步骤S301中,所述检测所述HTTP数据请求报文携带的请求方式为POST请求方式;\n[0053] 在步骤S302中,选择与所述POST请求方式相对应的303响应方式。\n[0054] 其中,选择与所述POST请求方式相对应的303响应方式,便于后续加载Portal页面地址。\n[0055] 实施例四\n[0056] 图4是本发明实施例提供的页面重定向方法中步骤S106的实现流程图,详述如下:\n[0057] 在步骤S401中,解析所述HTTP数据请求报文,根据所述响应方式,调用自定义的用于页面重定向的Portal页面地址替换所述HTTP数据请求报文中的URL,封装成新的HTTP数据请求报文;\n[0058] 在步骤S402中,在新的HTTP数据请求报文前加封CAPWP头后,通过所述CAPWAP通信隧道,将新的HTTP数据请求报文返回至所述客户端。\n[0059] 在本实施例中,将新的HTTP数据请求报文返回至所述客户端,所述客户端在白名单功能的配合下访问portal页面,重定向后,完成WEB认证流程。\n[0060] 实施例五\n[0061] 图5是用户态socket收发包处理线程和TCP/IP协议栈的交互流程图,详述如下:\n[0062] 其中,Socket数据通道为CAPWAP通信隧道。\n[0063] 用户态socket收发包处理线程为执行页面重定向方法的线程。\n[0064] 用户态socket收发包处理线程用于获取数据报文,提取TCP 80端口的SYNC、回复SYNC ACK报文,ACK报文可直接丢弃;\n[0065] 用于接收TCP 80数据报文;\n[0066] 用于根据请求方式(GET/POST)选择302/303回复;\n[0067] 用于根据截获记录的目的地址修改封装所有回复报文。\n[0068] 其中,TCP/IP协议栈位于客户端,客户端运行于用户设备上。\n[0069] 其中,用户态socket收发包处理线程运行于服务器上。\n[0070] 本设计方案法思路清晰,而编码实现则全部在用户态完成,从而可以达到实现简单、安全可靠、可移植性强的嵌入式应用软件的设计目的。\n[0071] 实施例六\n[0072] 图6是本发明实施例提供的页面重定向装置的结构框图,该装置可以运行于存有Portal页面地址的服务器,服务器运行的系统包括但不限于Linux。\n[0073] 为了便于说明,仅示出了与本实施例相关的部分。\n[0074] 参照图6,该页面重定向装置,包括:\n[0075] 数据报文接收模块61,用于在无线接入点的控制和配置协议CAPWAP的通信隧道入口,接收客户端发送的数据报文;\n[0076] 数据报文解析模块62,用于当所述数据报文为TCP连接报文时,解析所述数据报文并记录目的IP及端口;\n[0077] 截获模块63,用于查看所述客户端当前的状态,若当前的状态为待认证状态时,则截获所述客户端的TCP SYNC报文;\n[0078] 接入回复报文返回模块64,用于根据所述客户端的TCP SYNC报文、目标IP及端口,封装成接入回复报文,加封CAPWAP头后,将所述接入回复报文通过CAPWAP通信隧道返回给客户端;\n[0079] 响应方式选择模块65,用于接收并截获所述客户端发送的HTTP数据请求报文,检测所述HTTP数据请求报文携带的请求方式,选择与所述请求方式相对应的响应方式;\n[0080] Portal页面地址返回模块66,用于在所述HTTP数据请求报文中,根据所述响应方式,封装自定义的用于页面重定向的Portal页面地址,加封CAPWP头后,通过所述CAPWAP通信隧道返回至所述客户端。\n[0081] 在本实施例的一种实现方式中,所述HTTP数据请求报文携带的请求方式包括GET请求方式和POST请求方式中的至少一种。\n[0082] 在本实施例的一种实现方式中,所述响应方式选择模块包括:\n[0083] 第一检测单元,用于检测所述HTTP数据请求报文携带的请求方式为GET请求方式;\n[0084] 第一选择单元,用于选择与所述GET请求方式相对应的302响应方式。\n[0085] 在本实施例的一种实现方式中,所述响应方式选择模块包括:\n[0086] 第二检测单元,用于所述检测所述HTTP数据请求报文携带的请求方式为POST请求方式;\n[0087] 第二选择单元,用于选择与所述POST请求方式相对应的303响应方式。\n[0088] 在本实施例的一种实现方式中,所述Portal页面地址返回模块包括:\n[0089] 封装单元,用于解析所述HTTP数据请求报文,根据所述响应方式,调用自定义的用于页面重定向的Portal页面地址替换所述HTTP数据请求报文中的URL,封装成新的HTTP数据请求报文;\n[0090] Portal页面地址返回单元,用于在新的HTTP数据请求报文前加封CAPWP头后,通过所述CAPWAP通信隧道,将新的HTTP数据请求报文返回至所述客户端。\n[0091] 本发明实施例提供的装置可以应用在前述对应的方法实施例中,详情参见上述实施例的描述,在此不再赘述。\n[0092] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现。所述的程序可以存储于可读取存储介质中,所述的存储介质,如随机存储器、闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件执行本发明各个实施例所述的方法。\n[0093] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
法律信息
- 2021-07-27
- 2018-02-13
- 2016-08-17
著录事项变更
申请人由深圳市华讯方舟科技有限公司变更为华讯方舟科技有限公司
地址由518000 广东省深圳市宝安区西乡宝田一路臣田工业区37栋1楼变更为518000 广东省深圳市宝安区西乡宝田一路臣田工业区37栋1楼
- 2015-08-26
实质审查的生效
IPC(主分类): H04L 29/08
专利申请号: 201510176208.3
申请日: 2015.04.14
- 2015-07-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2013-05-22
|
2012-11-22
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |