一种web登陆设备的交互方法和装置与流程

文档序号:30141379发布日期:2022-05-24 07:55阅读:70来源:国知局
一种web登陆设备的交互方法和装置与流程

本发明的实施例一般涉及通信领域,并且更具体地,涉及一种web登陆设备的交互方法和装置。

背景技术

目前网络管理系统(以下都简称网管)中,运营商管理或维护网络设备如路由器或交换机等时,通常依赖客户端软件,如SecureCRT,Xshell等,但这些都是以客户端形式存在的,实际上大部分网管架构都是基于BS架构,因此从网管到设备的登录需要调用系统的客户端软件如SecureCRT,Xshell等,但这种方式有如下缺点:

1.无法根据网管用户审计用户登录设备时操作了哪些指令;

2.用户必须要安装SecureCRT或Xshell等客户端软件才可以进行设备登陆,实现交互;

3.调用系统客户端进行登录时还需要再次输入登录设备的用户名及密码,使登陆过程繁复冗杂,操作不方便且不友好。



技术实现要素:

根据本发明的实施例,提供了一种web登陆设备的交互方案。

在本发明的第一方面,提供了一种web登陆设备的交互方法。该方法包括:

接收登陆设备请求;

解析所述登陆设备请求,判断所述登陆设备请求中是否存在跳转信息参数,如果是,则通过登陆跳转设备,登陆到目标设备,建立目标设备的交互终端;否则,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端;

在所述交互终端上执行对所述目标设备的命令下发。

进一步地,所述登陆设备请求包括登陆类型参数、登陆用户名参数、登陆设备地址参数、登陆设备端口参数、登陆设备密码参数。

进一步地,所述跳转信息参数包括一个或多个跳转命令,每个跳转命令包括:跳转地址、用户名和密码;所述跳转地址、用户名和密码之间通过一级分隔符进行分隔,所述跳转地址包括协议和IP地址;每两个跳转命令之间通过二级分隔符进行分隔。

进一步地,所述通过登陆跳转设备,登陆到目标设备,建立目标设备的交互终端,包括:

当所述跳转信息参数中包含一个跳转命令时,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发执行所述跳转命令,根据协议地址、用户名和密码登陆目标设备;当登陆第一跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息;

当所述跳转信息参数中包含多个跳转命令时,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发顺次执行所述多个跳转命令,根据跳转命令的协议地址、用户名和密码登陆跳转设备,并根据最后一个跳转命令的协议地址、用户名和密码登陆目标设备;当登陆所述跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息。

进一步地,所述websocket通道通过页面JavaScript创建,连接设备的ssh协议或telnet协议,用于在交互终端和目标设备之间发送和接收消息。

进一步地,还包括:

所述交互终端生成日志文件,对目标设备的指令操作进行记录。

进一步地,还包括:

当需要退出目标设备的登陆状态时,接收执行退出命令返回的消息,判断所述执行退出命令返回的消息与目标设备的设备标记是否一致,如果一致,则断开目标设备与交互终端的连接,并退出所述交互终端;否则不操作。

在本发明的第二方面,提供了一种web登陆设备的交互装置。该装置包括:

接收模块,用于接收登陆设备请求;

解析模块,用于解析所述登陆设备请求,判断所述登陆设备请求中是否存在跳转信息参数,如果是,则通过登陆跳转设备,登陆到目标设备,建立目标设备的交互终端;否则,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端;

执行模块,用于在所述交互终端上执行对所述目标设备的命令下发。

在本发明的第三方面,提供了一种电子设备。该电子设备包括:存储器和处理器,所述存储器上存储有计算机程序,所述处理器执行所述程序时实现如以上所述的方法。

在本发明的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如根据本发明的第一方面的方法。

应当理解,发明内容部分中所描述的内容并非旨在限定本发明的实施例的关键或重要特征,亦非用于限制本发明的范围。本发明的其它特征将通过以下的描述变得容易理解。

本发明通过web方式实现了从网管系统到目标设备的快速登陆,无需安装客户端,使用方式友好;通过接口方式登陆设备,可以给上层应用提供接口,且支持主流协议ssh和telnet,应用更为广泛。

附图说明

结合附图并参考以下详细说明,本发明各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了根据本发明的实施例的web登陆设备的交互方法的流程图;

图2示出了根据本发明的实施例的登陆过程示意图;

图3示出了根据本发明的实施例的web登陆设备的交互装置的方框图;

图4示出了能够实施本发明的实施例的示例性电子设备的方框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的全部其他实施例,都属于本发明保护的范围。

另外,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本发明中,通过web方式实现了从网管系统到目标设备的快速登陆,无需安装客户端,使用方式友好;通过接口方式登陆设备,可以给上层应用提供接口,且支持主流协议ssh和telnet,应用更为广泛。

图1示出了本发明实施例的web登陆设备的交互方法的流程图。

该方法包括:

S101、接收登陆设备请求。

用户从网页或其他应用发出登陆设备请求,服务端接收登陆设备请求。例如,用户在网管前端页面通过点击设备登陆,页面发送http post请求,服务端接收http post请求。

所述登陆设备请求中包含若干个请求参数,按照必填项和选填项给所述请求参数划分为两类。所述必填项即为登录设备请求中必须有的请求参数,选填项则为可能会存在的请求参数。

必填项的请求参数包括登陆类型参数、登陆用户名参数、登陆设备地址参数、登陆设备端口参数、登陆设备密码参数等。选填项的请求参数包括跳转信息参数。其中,登陆类型参数描述了登陆类型,例如ssh/telnet;登陆用户名参数描述了登陆设备的用户名;登陆设备地址参数描述了登陆设备的地址信息;登陆设备端口参数描述了登陆设备的端口信息;登陆设备密码参数描述了登陆设备的登陆密码。跳转信息参数描述了跳转登陆方式,且支持多次跳转登陆到指定设备。所述跳转信息参数包括一个或多个跳转命令,每个跳转命令包括:跳转地址、用户名和密码;所述跳转地址、用户名和密码之间通过一级分隔符进行分隔,所述跳转地址包括协议和IP地址;每两个跳转命令之间通过二级分隔符进行分隔。

作为本发明的一种实施例,一个跳转信息参数telnet127.0.0.1#%#user1#%#passwd1##%%##ssh 127.0.0.2#%#user2#%#passwd2,表示先登录跳转设备1,设备地址为127.0.0.1、用户名为user1、密码为passwd1;再登录目标设备,设备地址为127.0.0.2、用户名为user2、密码为passwd2。其中,#%#表示一级分隔符,如果是ssh协议,则通过一级分隔符分隔登录方式和密码分隔,所述登录方式表达为ssh协议、用户名@IP地址的形式;如果是telnet协议,则通过一级分隔符分隔跳转地址、用户名和密码。##%%##表示二级分隔符,用于分隔多个跳转命令。通常ssh协议默认端口是22,telnet协议默认端口是23。

作为本发明的一种实施例,一个登陆设备请求如下表1所示:

表1

S102、解析所述登陆设备请求,判断所述登陆设备请求中是否存在跳转信息参数,如果是,则通过登陆跳转设备,登陆到目标设备,建立目标设备的交互终端;否则,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端。

如图2所示,解析过程具体可以细分成如下三种情况:

第一种情况:登录设备请求中的跳转信息参数Command为空,即登陆设备请求中不存在跳转信息参数。

在此种情况下,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端。页面通过JavaScript创建websocket通道,该通道连接设备的ssh/telnet。根据登录类型(Logintype)不同,通过websocket通道和ssh/telnet创建登录设备的一个异步的交互终端(terminal)。交互终端通过websocket通道发送数据到设备和接收设备返回的数据。当登录失败会退出交互终端并返回失败。Browser为浏览器,例如ie,chrome,360,火狐等。

第二种情况:登录设备请求中的跳转信息参数Command不为空,即登陆设备请求中存在跳转信息参数,且所述跳转信息参数中包含一个跳转命令。

在此种情况下,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发执行所述跳转命令,根据协议地址、用户名和密码登陆目标设备;当登陆第一跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息。

作为本发明的一种实施例,如图2所示,跳转信息参数command参数为ssh user2@127.0.0.2#%#passwd2。先登录跳转设备1,其设备地址为参数hostname;登录跳转设备1成功后,再执行登录设备2,其设备地址127.0.0.2,其用户名为user2,密码为passwd2,登录方式为执行参数中命令:ssh user2@127.0.0.2并输入其登录密码passwd2,完成登陆。当登录跳转设备1或设备2有一个失败时,会退出交互终端并返回失败。其中command参数不限定ssh/telnet,可以支持任意一种。

第三种情况:登录设备请求中的跳转信息参数command不为空,即登陆设备请求中存在跳转信息参数,且所述跳转信息参数中包含多个跳转命令。

在此种情况下,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发顺次执行所述多个跳转命令,根据跳转命令的协议地址、用户名和密码登陆跳转设备,并根据最后一个跳转命令的协议地址、用户名和密码登陆目标设备;当登陆所述跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息。

作为本发明的一种实施例,如图2所示,跳转信息参数command参数为telnet127.0.0.1#%#user2#%#passwd2##%%##sshuser3@127.0.0.2#%#passwd3。先登录跳转设备2,其设备地址为参数hostname,登录成功后再登录跳转设备3,其设备地址127.0.0.1,用户名为user2,密码为passwd2,登录方式为执行参数中命令:telnet 127.0.0.1并输入其登录密码用户名user2,和密码passwd2,登录成功跳转设备3后再登录目标设备3,其设备地址127.0.0.2,用户名为user3,密码为passwd3,登录方式为执行参数中命令:ssh user3@127.0.0.2,并输入其登录密码passwd3。当登录跳转设备2、跳转设备3或设备3中有一个失败时会退出交互终端并返回失败。其中command参数不限定ssh/telnet,可以支持任意一种。

本发明通过跳转设备进行跳转登陆的目的是网络中有些设备按地市或者域来划分的,本装置的部署可能不能直达(网络不通)对应的目标设备,因此需要通过跳转设备实现跳转登录。解决了在网络不通的情况下实现目标设备登陆的问题。

S103、在所述交互终端上执行对所述目标设备的命令下发。

当登陆目标设备成功并创建交互终端后,在交互终端执行对目标设备的命令下发,一般都是批量执行。

在当前的创建的交互终端中请求批量执行指令时,选择含有批量执行指令的文件,页面会通过websocket依次发送文件中指令到设备中执行,执行结果呈现在交互终端上,并且会记录操作记录到日志中。

作为本发明的一种实施例,所述web登陆设备的交互方法还包括:所述交互终端生成日志文件,对目标设备的指令操作进行记录。

当登录到目标设备成功并创建交互终端后,即可实现对设备的指令操作并记录所有操作的日志。每次成功登录一台设备,都会生成一个uuid,作为唯一性的id标识,该uuid会传入服务端(本装置),并生成一个日志文件名。在当前的创建的交互终端中请求下载日志时,会根据该交互终端对应的uuid下载其记录的日志文件。

通过自动日志记录,可以记录web方式登录的所有操作日志,为安全和审计提供依据。

作为本发明的一种实施例,所述web登陆设备的交互方法还包括:

当登录到目标设备成功并创建交互终端后,服务端会记录目标设备的主机名,即hostname。当需要退出目标设备的登陆状态时,接收执行退出命令返回的消息,所述退出命令例如exit、logout、quit等;判断所述执行退出命令返回的消息与目标设备的设备标记是否一致,如果一致,则断开目标设备与交互终端的连接,即telnet/ssh的设备连接,并退出所述交互终端;该操作是为了防止退出目标设备时,退出到跳转机上,引起安全性问题,因为退出到跳转机可以操作跳转机服务器,可能会引起安全问题。如果所述执行退出命令返回的消息与目标设备的设备标记不一致,则不操作。不操作即不关闭连接,是因为可能是设备上配置命令的操作而不是退出登录状态的命令。

根据本发明的实施例,通过web方式实现了从网管系统到目标设备的快速登陆,无需安装客户端,使用方式友好;通过接口方式登陆设备,可以给上层应用提供接口,且支持主流协议ssh和telnet,应用更为广泛。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本发明所必须的。

以上是关于方法实施例的介绍,以下通过装置实施例,对本发明所述方案进行进一步说明。

如图3所示,装置300包括:

接收模块310,用于接收登陆设备请求。

用户从网页或其他应用发出登陆设备请求,服务端通过接收模块310接收登陆设备请求。

所述登陆设备请求中包含若干个请求参数,按照必填项和选填项给所述请求参数划分为两类。所述必填项即为登录设备请求中必须有的请求参数,选填项则为可能会存在的请求参数。

必填项的请求参数包括登陆类型参数、登陆用户名参数、登陆设备地址参数、登陆设备端口参数、登陆设备密码参数等。选填项的请求参数包括跳转信息参数。其中,登陆类型参数描述了登陆类型,例如ssh/telnet;登陆用户名参数描述了登陆设备的用户名;登陆设备地址参数描述了登陆设备的地址信息;登陆设备端口参数描述了登陆设备的端口信息;登陆设备密码参数描述了登陆设备的登陆密码。跳转信息参数描述了跳转登陆方式,且支持多次跳转登陆到指定设备。所述跳转信息参数包括一个或多个跳转命令,每个跳转命令包括:跳转地址、用户名和密码;所述跳转地址、用户名和密码之间通过一级分隔符进行分隔,所述跳转地址包括协议和IP地址;每两个跳转命令之间通过二级分隔符进行分隔。

解析模块320,用于解析所述登陆设备请求,判断所述登陆设备请求中是否存在跳转信息参数,如果是,则通过登陆跳转设备,登陆到目标设备,建立目标设备的交互终端;否则,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端。

解析过程具体可以细分成如下三种情况:

第一种情况:所述解析模块320解析出登录设备请求中的跳转信息参数Command为空,即登陆设备请求中不存在跳转信息参数。

在此种情况下,通过创建websocket通道,登陆到目标设备,建立目标设备的交互终端。页面通过JavaScript创建websocket通道,该通道连接设备的ssh/telnet。根据登录类型(Logintype)不同,通过websocket通道和ssh/telnet创建登录设备的交互终端。交互终端通过websocket通道发送数据到设备和接收设备返回的数据。当登录失败会退出交互终端并返回失败。

第二种情况:所述解析模块320解析出登录设备请求中的跳转信息参数Command不为空,即登陆设备请求中存在跳转信息参数,且所述跳转信息参数中包含一个跳转命令。

在此种情况下,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发执行所述跳转命令,根据协议地址、用户名和密码登陆目标设备;当登陆第一跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息。

第三种情况:所述解析模块320解析出登录设备请求中的跳转信息参数Command不为空,即登陆设备请求中存在跳转信息参数,且所述跳转信息参数中包含多个跳转命令。

在此种情况下,登录第一跳转设备,登录成功后发出登陆成功消息,所述登陆成功消息用于触发顺次执行所述多个跳转命令,根据跳转命令的协议地址、用户名和密码登陆跳转设备,并根据最后一个跳转命令的协议地址、用户名和密码登陆目标设备;当登陆所述跳转设备或目标设备失败时,发出登陆失败消息,所述登陆失败消息用于触发退出所述交互终端,并在退出后返回失败消息。

本发明通过跳转设备进行跳转登陆的目的是网络中有些设备按地市或者域来划分的,本装置的部署可能不能直达(网络不通)对应的目标设备,因此需要通过跳转设备实现跳转登录。解决了在网络不通的情况下实现目标设备登陆的问题。

执行模块330,用于在所述交互终端上执行对所述目标设备的命令下发。

当登陆目标设备成功并创建交互终端后,所述执行模块330在交互终端执行对目标设备的命令下发,一般都是批量执行。

在当前的创建的交互终端中请求批量执行指令时,选择含有批量执行指令的文件,页面会通过websocket依次发送文件中指令到设备中执行,执行结果呈现在交互终端上,并且会记录操作记录到日志中。

作为本发明的一种实施例,所述装置300,还包括:

日志文件生成模块340,用于生成日志文件,对目标设备的指令操作进行记录。

当登录到目标设备成功并创建交互终端后,即可实现对设备的指令操作并记录所有操作的日志。每次成功登录一台设备,日志文件生成模块340都会生成一个uuid,作为唯一性的id标识,该uuid会传入服务端(本装置),并生成一个日志文件名。在当前的创建的交互终端中请求下载日志时,会根据该交互终端对应的uuid下载其记录的日志文件。

通过日志文件生成模块340自动记录日志,可以记录web方式登录的所有操作日志,为安全和审计提供依据。

作为本发明的一种实施例,所述装置300,还包括:退出判断模块350。

当登录到目标设备成功并创建交互终端后,服务端会记录目标设备的主机名,即hostname。当需要退出目标设备的登陆状态时,退出判断模块350接收执行退出命令返回的消息,所述退出命令例如exit、logout、quit等;退出判断模块350判断所述执行退出命令返回的消息与目标设备的设备标记是否一致,如果一致,则断开目标设备与交互终端的连接,即telnet/ssh的设备连接,并退出所述交互终端;该操作是为了防止退出目标设备时,退出到跳转机上,引起安全性问题,因为退出到跳转机可以操作跳转机服务器,可能会引起安全问题。如果所述执行退出命令返回的消息与目标设备的设备标记不一致,则不操作。不操作即不关闭连接,是因为可能是设备上配置命令的操作而不是退出登录状态的命令。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,所述描述的模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

如图4所示,设备包括中央处理单元(CPU),其可以根据存储在只读存储器(ROM)中的计算机程序指令或者从存储单元加载到随机访问存储器(RAM)中的计算机程序指令,来执行各种适当的动作和处理。在RAM中,还可以存储设备操作所需的各种程序和数据。CPU、ROM以及RAM通过总线彼此相连。输入/输出(I/O)接口也连接至总线。

设备中的多个部件连接至I/O接口,包括:输入单元,例如键盘、鼠标等;输出单元,例如各种类型的显示器、扬声器等;存储单元,例如磁盘、光盘等;以及通信单元,例如网卡、调制解调器、无线通信收发机等。通信单元允许设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

处理单元执行上文所描述的各个方法和处理,例如方法S101~S103。例如,在一些实施例中,方法S101~S103可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元。在一些实施例中,计算机程序的部分或者全部可以经由ROM和/或通信单元而被载入和/或安装到设备上。当计算机程序加载到RAM并由CPU执行时,可以执行上文描述的方法S101~S103的一个或多个步骤。备选地,在其他实施例中,CPU可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法S101~S103。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。

用于实施本发明的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本发明的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本发明的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1