CN108306928A - session管理方法、web服务器及计算机可读存储介质 - Google Patents
session管理方法、web服务器及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108306928A CN108306928A CN201711401214.XA CN201711401214A CN108306928A CN 108306928 A CN108306928 A CN 108306928A CN 201711401214 A CN201711401214 A CN 201711401214A CN 108306928 A CN108306928 A CN 108306928A
- Authority
- CN
- China
- Prior art keywords
- session
- client
- configuration informations
- storage device
- web server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种session管理方法、web服务器及计算机可读存储介质,该session管理方法包括:接收session配置信息,session配置信息包括存储设备和session名称;web服务器启动时将session配置信息加载至存储设备;检测到客户端登录请求时,判断客户端是否第一次登录,若是,则创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至存储设备上与session名称对应的数据库中,若否,则直接从存储设备读取已存储的客户端session信息以对客户端进行认证。与现有技术相比,本发明通过管理平台代替原有的手动配置方式,能够更好的管理客户端session信息;同时,本发明还可以对session名称进行配置以对应存储不同业务类型对应的客户端session信息,实现了支持各种业务类型,而无需业务去适配。
Description
技术领域
本发明涉及移动终端技术领域,尤其涉及一种session管理方法、web服务器及计算机可读存储介质。
背景技术
随着互联网高速发展,特别是移动互联网的高速发展,使得各个单机系统的流量急剧增加,系统难以支撑。分布式系统的产生,将单机流量分散到各个节点中,降低了单机系统的冲击。但是分布式系统的产生,为了保持用户的登录信息,需要分布式系统各个节点间共享登录session信息。为了实现各个节点间登录session信息的共享,人们提出了开源框架的服务器session管理方法,即tomcat-session-manager。然而,上述session管理方法存在以下缺点:配置信息需要手工维护,容易出错;对业务支持不够全面。
因此,有必要提供一种session管理方法、web服务器及计算机可读存储介质来解决上述技术问题。
发明内容
本发明的主要目的在于提出一种session管理方法、web服务器及计算机可读存储介质,旨在解决通过现有的tomcat-session-manager方法实现用户登录session信息共享时配置信息需要手动维护、对业务支持不够全面的技术问题。
首先,为实现上述目的,本发明提供一种session管理方法,应用于移动终端,所述session管理方法包括以下步骤:
接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配;
web服务器启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备;
检测到客户端登录请求时,判断客户端是否第一次登录;
若判断结果为是,则创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中;
若判断结果为否,则直接从所述存储设备读取已存储的客户端session信息以对客户端进行认证。
可选地,所述启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备的步骤之后还包括:
实时监测所述session配置信息是否发生变化;
若发生变化,则将变化后的session配置信息同步更新至所述存储设备。
可选地,所述在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中的步骤之前还包括:
判断客户端是否登录成功;
若客户端登录成功,则通过预设序列化工具对所述客户端session信息进行序列化处理;
若客户端登录失败,则提示登录异常至客户端。
可选地,所述通过预设序列化工具对所述客户端session信息进行序列化处理的步骤具体为:
通过序列化工具Fast-Json对所述客户端session信息进行序列化处理。
可选地,所述接收管理人员设置的session配置信息的步骤之前还包括:
判断所述session配置信息是否处于管理权限范围内;
若所述session配置信息处于管理权限范围内,则保存所述session配置信息。
同时,本发明还提供一种web服务器,所述web服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的session管理程序,所述session管理程序被所述处理器执行时实现以下步骤:
接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配;
启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备;
检测到客户端登录请求时,判断客户端是否第一次登录;
若判断结果为是,则创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中;
若判断结果为否,则直接从所述存储设备读取已存储的客户端session信息以对客户端进行认证。
可选地,所述启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备的步骤之后,所述处理器还用于执行所述session管理程序,以实现如下步骤:
实时监测所述session配置信息是否发生变化;
若发生变化,则将变化后的session配置信息同步更新至所述存储设备。
可选地,所述在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中的步骤之前,所述处理器还用于执行所述session管理程序,以实现如下步骤:
判断客户端是否登录成功;
若客户端登录成功,则通过预设序列化工具对所述客户端session信息进行序列化处理;
若客户端登录失败,则提示登录异常至客户端。
可选地,所述通过预设序列化工具对所述客户端session信息进行序列化处理的步骤具体为:
通过序列化工具Fast-Json对所述客户端session信息进行序列化处理;
所述接收管理人员设置的session配置信息的步骤之前,所述处理器还用于执行所述session管理程序,以实现如下步骤:
判断所述session配置信息是否处于管理权限范围内;
若所述session配置信息处于管理权限范围内,则保存所述session配置信息。
此外,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有session管理程序,所述session管理程序被执行时实现如上所述session管理方法的步骤。
相较于现有技术,本发明所提出的session管理方法、web服务器及计算机可读存储介质,可以接收管理人员在管理平台上设置的session配置信息,同时,web服务器启动后会自动读取所述session配置信息并将所述session配置信息自动加载至所述存储设备,并在检测到客户端登录请求时,若客户端为第一次登录则直接将客户端session信息存储至所述session配置信息中的存储设备内,若客户端不是第一次登录则直接从所述存储设备内读取客户端session信息,与现有技术相比,本发明通过管理平台代替原有的手动配置方式,能够更好的管理客户端session信息;同时,本发明还可以对session名称进行配置以对应存储不同业务类型对应的客户端session信息,其实现了支持各种业务类型,而无需业务去适配。
附图说明
图1为本发明session管理方法第一实施例的实施流程示意图;
图2为本发明session管理方法第二实施例的实施流程示意图;
图3为本发明session管理程序第一实施例的功能模块示意图;
图4为本发明session管理程序第二实施例的功能模块示意图;
图5为本发明管理平台的配置界面一实施例的示意图;
图6为管理平台、web服务器以及存储设备之间进行session配置信息动态加载时一实施例的示意图;
图7为客户端第一次登录web服务器过程中web服务器对客户端进行认证时一实施例的示意图。
附图标记:
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使用。
Web(World Wide Web,也称WWW或万维网)是Internet上集文本、声音、动画、视频等多种媒体信息于一身的信息服务系统,它起源于1989年3月,由欧洲量子物理实验室CERN(the European Laboratory for Particle Physics)所发展出来的主从结构分布式超媒体系统。通过万维网,人们只要通过使用简单的方法,就可以很迅速方便地取得丰富的信息资料,由于用户在通过Web浏览器访问信息资源的过程中,无需再关心一些技术性的细节,而且界面非常友好,因而Web在Internet上一推出就受到了热烈的欢迎,走红全球,并迅速得到了爆炸性的发展。通常,整个web系统由web服务器(或web容器)、浏览器(Browser)及通信协议等3部分组成,当web浏览器(客户端)连接到web服务器上并请求文件时,web服务器将处理该请求并将文件反馈到该浏览器上,附带的信息会告诉浏览器如何查看该文件。
随着互联网高速发展,特别是移动互联网的高速发展,使得各个单机系统的流量急剧增加,系统难以支撑。分布式系统的产生,将单机流量分散到各个节点中,降低了单机系统的冲击。
基于上述分布式系统的web服务器,提出本发明方法各个实施例。
首先,本发明提出一种session管理方法,该session管理方法应用于上述web服务器。如图1所示,是本发明session管理方法第一实施例的实施流程图。在本实施例中,根据不同的需求,图1所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。所述session管理方法包括:
步骤S301,接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配。
本发明中,为了实现session管理,设置有一个管理平台,通过该管理平台,管理人员可以进行session配置,进而可以实现个性化的session配置信息。具体的,session配置信息包括session名称、存储客户端session信息的存储设备以及数据库类型等。具体的,数据库类型包括redis、mysql、memcached等类型。其中,存储客户端session信息的存储设备可能有多个,管理人员可以对该存储设备进行配置,如用于存储客户端session信息的存储设备有主机A、主机B、主机C、主机D共四个,则管理人员进行配置时,可以选择主机A、主机B、主机C或主机D来存储客户端session信息;同时人员还可以设置数据库类型,如设置为通过redis数据库存储、通过mysql数据库存储或通过memcached数据库存储。本实施例中,可以在管理平台上配置不同的session名称,其中不同的session名称与不同的业务类型相匹配,即当web服务器的业务类型不同时,可以配置不同的session名称,本实施例中业务类型是指web服务器对客户端(即用户)进行身份认证时所采用的方式,如token、sessionID等类型。此外,本实施例中客户端session信息通过key-value分布式系统进行存储,不同的session名称对应于不同的key值,从而不同业务类型产生的客户端session信息对应有不同的key值。当web服务器对应于不同的业务类型时,管理人员可以通过在管理平台上配置不同的session名称(key值)存储相应的客户端session信息,其实现了支持各种业务类型,而无需业务去适配。请参考图5,图5为本发明管理平台的配置界面一实施例的示意图,如图5所示,管理人员可以在该配置界面上进行session名称、存储设备、数据库类型的配置,其中进行session名称设置时,配置界面上会提供一个输入框,管理人员可以在输入框内输入session名称(即key值),同时,为了实现存储设备或数据库类型设置,配置界面上可以提供所有的可用主机以及可用的数据库类型给用户选择。此外,为了加强管理平台的安全性,本发明对使用该管理平台的管理人员进行了权限颗粒化,即将管理平台的不同权限分别赋予不同的管理人员,如管理人员1具有管理权限1,管理人员2具有管理权限2等。为此,管理人员通过该管理平台进行session配置时,需要对其权限进行验证。具体的,本发明session管理方法在接收管理人员设置的session配置信息的步骤之后还包括以下步骤:判断所述session配置信息是否处于管理权限范围内;若所述session配置信息处于管理权限范围内,则保存所述session配置信息;即判断所述管理人员是否具有与所述session配置信息对应的管理权限;若判断结果为是,则保存所述session配置信息;若判断结果为否,则提示所述管理人员不具有管理权限。
步骤S302,启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备。
本实施例中,web服务器启动时,会从管理平台读取session配置信息,并将该session配置信息加载至管理人员设置的存储设备上,如管理人员进行配置时,选择主机A作为存储客户端session信息的存储设备,则此时web服务器将该session配置信息加载至主机A上。需要说明的是,本实施例中web服务器还设置有实时监听功能,用于实时监听管理平台上的session配置信息是否发生变化,并在管理平台上的session配置信息发生变化时,将变化后的session配置信息同步更新至存储设备。需要说明的是,本发明中,用于读取所述session配置信息并将所述session配置信息加载至所述存储设备的web服务器具体为tomcat容器。请参考图6,图6为管理平台、web服务器以及存储设备之间进行session配置信息动态加载时一实施例的示意图,如图6所示,web服务器启动时会从管理平台上读取session配置信息并加载至存储设备,同时web服务器会启动一个实时监测线程,用于实时监测管理平台上的session配置信息是否发生变化,并在发生变化时将变化后的session配置信息同步更新至存储设备。
步骤S303,检测到客户端登录请求时,判断客户端是否第一次登录,若判断结果为是,则执行步骤S304,反之若判断结果为否,则执行步骤S305。
步骤S304,创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中。
当客户端向web服务器发起登录请求时,此时web服务器检测到客户端登录请求,会首先判断客户端是否为第一次登录,若客户端为第一次登录,则web服务器在客户端登录成功后为所述客户端创建session信息(即客户端session信息),其中该客户端session信息包括客户端的登录账号、登录密码、客户端设备号或客户端mac地址等客户端信息。之后,web服务器会将客户端session信息存储至所述session配置信息对应的存储设备内,如当session配置信息中配置的存储设备为主机A时,此时web服务器将该客户端session信息存储至主机A上;同时不同业务类型的客户端session信息在存储时对应不同的key值(即session名称)。
步骤S305,直接从所述存储设备读取已存储的客户端session信息。
当客户端向web服务器发起登录请求时,若客户端此时不是第一次登录,则直接从存储客户端session信息的存储设备中读取客户端session信息。具体的,当session配置信息中配置的存储设备为主机A时,此时客户端直接从主机A内读取其已经存储的客户端session信息。
通过上述步骤S301至S305,本发明session管理方法可以接收管理人员在管理平台上设置的session配置信息,同时,web服务器启动后会自动读取所述session配置信息并将所述session配置信息自动加载至所述存储设备,并在检测到客户端登录请求时,若客户端为第一次登录则直接将客户端session信息存储至所述session配置信息中的存储设备内,若客户端不是第一次登录则直接从所述存储设备内读取客户端session信息,与现有技术相比,本发明通过管理平台代替原有的手动配置方式,能够更好的管理客户端session信息;同时,本发明还可以对session名称进行配置以对应存储不同业务类型对应的客户端session信息,其实现了支持各种业务类型,而无需业务去适配。
进一步地,基于上述第一实施例,提出本发明session管理方法的第二实施例。如图2所示,是本发明session管理方法第二实施例的实施流程图。在本实施例中,根据不同的需求,图2所示的流程图中的步骤的执行顺序可以改变,某些步骤可以省略。所述session管理方法包括:
步骤S401,接收管理人员设置的session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与客户端session信息对应的业务类型相匹配。
步骤S402,判断所述管理人员是否具有与所述session配置信息对应的管理权限,若判断结果为是,则保存所述session配置信息,若判断结果为否,则提示所述管理人员不具有管理权限。
步骤S403,web服务器启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备。
步骤S404,实时监测所述session配置信息是否发生变化,若发生变化,则将变化后的session配置信息同步更新至所述存储设备。
本发明中,通过实时监测管理平台上的session配置信息是否发生变化,并在发生变化时将变化后的session配置信息同步更新至所述存储设备,其实现了对客户端session信息进行存储时的平滑切换,如当前session配置信息为A1,变化后的session配置信息为A2,则web服务器会实时动态将session配置信息A2加载至存储设备,web服务器控制客户端session信息存储时会根据session配置信息A2对应的存储方式进行存储,即管理人员只需在管理平台上进行配置变更,即可切换为不同的存储方式来存储客户端session信息。
步骤S405,检测到客户端登录请求时,判断客户端是否第一次登录,若判断结果为是,则执行步骤S406,若判断结果为否,则执行步骤S409。本实施例中,当客户端第一次登录web服务器时,web服务器会为客户端创建客户端session信息并返回给客户端,然后客户端发送携带有客户端session信息的登录请求至web服务器,web服务器根据客户端session信息对客户端进行身份认证,若身份认证成功,则客户端登录成功,若身份认证失败,则客户端登录失败。
步骤S406,判断客户端是否登录成功,若判断结果为是,则执行步骤S407,若判断结果为否,则执行步骤S408。
步骤S407,通过预设序列化工具对所述客户端session信息进行序列化处理,将序列化处理后的客户端session信息保存至所述存储设备上与所述session名称对应的数据库中。本实施例中,预设序列化工具为阿里巴巴公司开源的序列化工具Fast-Json,其中Fast-Json相比现有的web服务器原生默认的序列化工具,其占用内存容量更小,因此可以有效减少客户端session信息所占内存。
步骤S408,提示登录异常信息至客户端,即当客户端登录失败时,提示登录异常信息至客户端。请参考图7,图7为客户端第一次登录web服务器过程中web服务器对客户端进行认证时一实施例的示意图,如图7所示,当客户端第一次登录web服务器时,web服务器创建客户端session信息并返回给客户端,之后检测是否登录成功,若登录成功,则通过预设序列化工具对客户端session信息进行序列化处理并将序列化处理后的客户端session信息存储至存储设备,当客户端下次登录web服务器时可以直接从存储设备内读取客户端session信息,若登录失败,则返回登录异常信息至客户端。
步骤S409,直接从所述存储设备读取已存储的客户端session信息,如果存储设备内存在有效的客户端session信息,则不需要再次对客户端进行身份认证。
通过上述步骤S401至S409,本发明session管理方法进行session配置时通过管理平台来代替原有手动配置,并实时监测管理平台上的session配置信息是否发生变化,并在监测到session配置信息发生变化时将变化后的session配置信息同步更新至存储设备,其实现了session配置信息的实时动态加载,能够更好的管理客户端session信息,同时通过管理平台和动态加载功能,可以实现客户端session信息进行存储时的平滑切换,管理人员只需更改session配置信息即可;同时,本发明还可以对session名称进行配置,不同的session名称可以对应web服务器不同的业务类型,可以支持不同业务类型的客户端session信息,而无需业务去适配存储;此外,本发明管理平台对权限进行颗粒化分配,即将管理平台的不同权限分别赋予不同的管理人员,管理人员通过该管理平台进行session配置时,需要对其权限进行验证,从而保证了管理平台的安全性。
同时,本发明还提出一种web服务器,所述web服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的session管理程序400。
如图3所示,是本发明session管理程序400第一实施例的功能模块示意图。在本实施例中,所述session管理程序400可以被分割成一个或多个模块,所述一个或多个模块存储于所述web服务器的存储器中,并由一个或多个处理器所执行,以完成本发明。例如,在图3中,所述session管理程序400可以被分割成配置模块401、配置信息加载模块402、判断模块403、客户端session信息存储模块404以及直接获取模块405。本发明所称的模块是指一种能够完成特定功能的一系列获取机程序指令段,比获取机程序更适合于描述软件在所述web服务器中的执行过程。以下将就上述各功能模块401-405的具体功能进行详细描述。其中:
所述配置模块401,用于接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配。
本发明中,为了实现session管理,设置有一个管理平台,通过该管理平台,管理人员可以进行session配置,进而可以实现个性化的session配置信息。具体的,session配置信息包括session名称、存储客户端session信息的存储设备以及数据库类型等。具体的,数据库类型包括redis、mysql、memcached等类型。其中,存储客户端session信息的存储设备可能有多个,管理人员可以对该存储设备进行配置,如用于存储客户端session信息的存储设备包括主机A、主机B、主机C、主机D共四个,则管理人员进行配置时,可以选择主机A、主机B、主机C或主机D来存储客户端session信息;同时人员还可以设置数据库类型,如设置为通过redis数据库存储、通过mysql数据库存储或通过memcached数据库存储。本实施例中,可以在管理平台上配置不同的session名称,其中不同的session名称与不同的业务类型相匹配,即当web服务器的业务类型不同时,可以配置不同的session名称,本实施例中业务类型是指web服务器对客户端(即用户)进行身份认证时所采用的方式,如token、sessionID等类型。此外,本实施例中客户端session信息通过key-value分布式系统进行存储,不同的session名称对应于不同的key值,从而不同业务类型产生的客户端session信息对应有不同的key值。当web服务器对应于不同的业务类型时,管理人员可以通过在管理平台上配置不同的session名称(key值)存储相应的客户端session信息,其实现了支持各种业务类型,而无需业务去适配。请参考图5,图5为本发明管理平台的配置界面一实施例的示意图,如图5所示,管理人员可以在该配置界面上进行session名称、存储设备、数据库类型的配置,其中进行session名称设置时,配置界面上会提供一个输入框,管理人员可以在输入框内输入session名称(即key值),同时,为了实现存储设备或数据库类型设置,配置界面上可以提供所有的可用主机以及可用的数据库类型给用户选择。此外,为了加强管理平台的安全性,本发明对使用该管理平台的管理人员进行了权限颗粒化,即将管理平台的不同权限分别赋予不同的管理人员,如管理人员1具有管理权限1,管理人员2具有管理权限2等。为此,管理人员通过该管理平台进行session配置时,需要对其权限进行验证。具体的,本发明session管理方法在接收管理人员设置的session配置信息的步骤之后还包括以下步骤:(1)判断所述管理人员是否具有与所述session配置信息对应的管理权限;(2)若判断结果为是,则保存所述session配置信息;若判断结果为否,则提示所述管理人员不具有管理权限。
所述配置信息加载模块402,web服务器启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备。
本实施例中,web服务器启动时,会从管理平台读取session配置信息,并将该session配置信息加载至管理人员设置的存储设备上,如管理人员进行配置时,选择主机A作为存储客户端session信息的存储设备,则此时web服务器将该session配置信息加载至主机A上。需要说明的是,本实施例中web服务器还设置有实时监听功能,用于实时监听管理平台上的session配置信息是否发生变化,并在管理平台上的session配置信息发生变化时,将变化后的session配置信息同步更新至存储设备。需要说明的是,本发明中,用于读取所述session配置信息并将所述session配置信息加载至所述存储设备的web服务器具体为tomcat容器。请参考图6,图6为管理平台、web服务器以及存储设备之间进行session配置信息动态加载时一实施例的示意图,如图6所示,web服务器启动时会从管理平台上读取session配置信息并加载至存储设备,同时web服务器会启动一个实时监测线程,用于实时监测管理平台上的session配置信息是否发生变化,并在发生变化时将变化后的session配置信息同步更新至存储设备。
所述判断模块403,用于检测到客户端登录请求时,判断客户端是否第一次登录,若判断结果为是,则执行客户端session信息存储模块404,反之若判断结果为否,则执行直接获取模块405。
所述客户端session信息存储模块404,用于创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至存储设备上与session名称对应的数据库中。
当客户端向web服务器发起登录请求时,此时web服务器检测到客户端登录请求,会首先判断客户端是否为第一次登录,若客户端为第一次登录,则web服务器在客户端登录成功后为所述客户端创建session信息(即客户端session信息),其中该客户端session信息包括客户端的登录账号、登录密码、客户端设备号或客户端mac地址等客户端信息。之后,在客户端登录成功后,web服务器会将客户端session信息存储至所述session配置信息对应的存储设备内,如当session配置信息中配置的存储设备为主机A时,此时web服务器将该客户端session信息存储至主机A上;同时不同业务类型的客户端session信息在存储时对应不同的key值(即session名称)。
所述直接获取模块405,直接从所述存储设备读取已存储的客户端session信息以对客户端进行认证。
当客户端向web服务器发起登录请求时,若客户端此时不是第一次登录,则直接从存储客户端session信息的存储设备中读取客户端session信息。具体的,当session配置信息中配置的存储设备为主机A时,此时客户端直接从主机A内读取其已经存储的客户端session信息。
通过上述模块401至405,本发明session管理程序可以接收管理人员在管理平台上设置session配置信息,同时,web服务器启动后会自动读取所述session配置信息并将所述session配置信息自动加载至所述存储设备,并在检测到客户端登录请求时,若客户端为第一次登录则直接将客户端session信息存储至所述session配置信息中的存储设备内,若客户端不是第一次登录则直接从所述存储设备内读取客户端session信息,与现有技术相比,本发明通过管理平台代替原有的手动配置方式,能够更好的管理客户端session信息;同时,本发明还可以对session名称进行配置以对应存储不同业务类型对应的客户端session信息,其实现了支持各种业务类型,而无需业务去适配。
基于上述第一实施例,提出本发明所述的session管理程序400的第二实施例。如图4所示,为本发明所述的session管理程序400第二实施例的功能模块示意图。在本实施例中,所述session管理程序400还包括权限管理模块406、配置信息监测模块407、登录状态判断模块408以及序列化处理模块409。本实施例中,各功能模块的说明如下:
所述权限管理模块406,用于判断所述session配置信息是否处于管理权限范围内;若所述session配置信息处于管理权限范围内,则保存所述session配置信息。即判断所述管理人员是否具有与所述session配置信息对应的管理权限,若判断结果为是,则保存所述session配置信息,若判断结果为否,则提示所述管理人员不具有管理权限。需要说明的是,为了加强管理平台的安全性,本发明对使用该管理平台的管理人员进行了权限颗粒化,即将管理平台的不同权限分别赋予不同的管理人员,如管理人员1具有管理权限1,管理人员2具有管理权限2等。为此,管理人员通过该管理平台进行session配置时,需要对其权限进行验证。
所述配置信息监测模块407,用于实时监测所述session配置信息是否发生变化,若发生变化,则将变化后的session配置信息同步更新至所述存储设备。本发明中,通过实时监测管理平台上的session配置信息是否发生变化,并在发生变化时将变化后的session配置信息同步更新至所述存储设备,其实现了对客户端session信息进行存储时的平滑切换,如当前session配置信息为A1,变化后的session配置信息为A2,则web服务器会实时动态将session配置信息A2加载至存储设备,web服务器控制客户端session信息存储时会根据session配置信息A2对应的存储方式进行存储,即管理人员只需在管理平台上进行配置变更,即可切换为不同的存储方式来存储客户端session信息。
所述登录状态判断模块408,用于判断客户端是否登录成功,若判断结果为是,则执行序列化处理模块409,若判断结果为否,则提示登录异常信息至客户端。本实施例中,当客户端第一次登录web服务器时,web服务器会为客户端创建客户端session信息并返回给客户端,然后客户端发送携带有客户端session信息的登录请求至web服务器,web服务器根据客户端session信息对客户端进行身份认证,若身份认证成功,则客户端登录成功,若身份认证失败,则客户端登录失败。。请参考图7,图7为客户端第一次登录web服务器过程中web服务器对客户端进行认证时一实施例的示意图,如图7所示,当客户端第一次登录web服务器时,web服务器创建客户端session信息并返回给客户端,之后检测是否登录成功,若登录成功,则通过预设序列化工具对客户端session信息进行序列化处理并将序列化处理后的客户端session信息存储至存储设备,当客户端下次登录web服务器时可以直接从存储设备内读取客户端session信息,若登录失败,则返回登录异常信息至客户端。
所述序列化处理模块409,用于通过预设序列化工具对所述客户端session信息进行序列化处理,将序列化处理后的客户端session信息保存至所述存储设备上与所述session名称对应的数据库中。本实施例中,预设序列化工具为阿里巴巴公司开源的序列化工具Fast-Json,其中Fast-Json相比现有的web服务器原生默认的序列化工具,其占用内存容量更小,因此可以有效减少客户端session信息所占内存。
通过上述模块401至409,本发明session管理程序进行session配置时通过管理平台来代替原有手动配置,并实时监测管理平台上的session配置信息是否发生变化,并在监测到session配置信息发生变化时将变化后的session配置信息同步更新至存储设备,其实现了session配置信息的实时动态加载,能够更好的管理客户端session信息,同时通过管理平台和动态加载功能,可以实现客户端session信息进行存储时的平滑切换,管理人员只需更改session配置信息即可;同时,本发明还可以对session名称进行配置,不同的session名称可以对应web服务器不同的业务类型,可以支持不同业务类型的客户端session信息,而无需业务去适配存储;此外,本发明管理平台对权限进行颗粒化分配,即将管理平台的不同权限分别赋予不同的管理人员,管理人员通过该管理平台进行session配置时,需要对其权限进行验证,从而保证了管理平台的安全性。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有session管理程序,所述session管理程序被执行时实现图1至图2所述的session管理方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种session管理方法,应用于web服务器,其特征在于,所述session管理方法包括以下步骤:
接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配;
启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备;
检测到客户端登录请求时,判断客户端是否第一次登录;
若判断结果为是,则创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中;
若判断结果为否,则从所述存储设备读取已存储的客户端session信息以对客户端进行认证。
2.如权利要求1所述的session管理方法,其特征在于,所述启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备的步骤之后还包括:
实时监测所述session配置信息是否发生变化;
若发生变化,则将变化后的session配置信息同步更新至所述存储设备。
3.如权利要求1所述的session管理方法,其特征在于,所述在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中的步骤之前还包括:
判断客户端是否登录成功;
若客户端登录成功,则通过预设序列化工具对所述客户端session信息进行序列化处理;
若客户端登录失败,则提示登录异常至客户端。
4.如权利要求3所述的session管理方法,其特征在于,所述通过预设序列化工具对所述客户端session信息进行序列化处理的步骤具体为:
通过序列化工具Fast-Json对所述客户端session信息进行序列化处理。
5.如权利要求1所述的session管理方法,其特征在于,所述接收session配置信息的步骤之前还包括:
判断所述session配置信息是否处于管理权限范围内;
若所述session配置信息处于管理权限范围内,则保存所述session配置信息。
6.一种web服务器,其特征在于,所述web服务器包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的session管理程序,所述session管理程序被所述处理器执行时实现以下步骤:
接收session配置信息,所述session配置信息包括用于存储客户端session信息的存储设备和session名称,其中所述session名称与所述web服务器对应的业务类型相匹配;
启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备;
检测到客户端登录请求时,判断客户端是否第一次登录;
若判断结果为是,则创建客户端session信息并发送给客户端,并在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中;
若判断结果为否,则直接从所述存储设备读取已存储的客户端session信息以对客户端进行认证。
7.如权利要求6所述的web服务器,其特征在于,所述启动时读取所述session配置信息并将所述session配置信息加载至所述存储设备的步骤之后,所述处理器还用于执行所述session管理程序,以实现如下步骤:
实时监测所述session配置信息是否发生变化;
若发生变化,则将变化后的session配置信息同步更新至所述存储设备。
8.如权利要求6所述的web服务器,其特征在于,所述在客户端登录成功后将客户端session信息保存至所述存储设备上与所述session名称对应的数据库中的步骤之前,所述处理器还用于执行所述session管理程序,以实现如下步骤:
判断客户端是否登录成功;
若客户端登录成功,则通过预设序列化工具对所述客户端session信息进行序列化处理;
若客户端登录失败,则提示登录异常至客户端。
9.如权利要求8所述的session管理方法,其特征在于,所述通过预设序列化工具对所述客户端session信息进行序列化处理的步骤具体为:
通过序列化工具Fast-Json对所述客户端session信息进行序列化处理;
所述接收管理人员设置的session配置信息的步骤之前,所述处理器还用于执行所述session管理程序,以实现如下步骤:
判断所述session配置信息是否处于管理权限范围内;
若所述session配置信息处于管理权限范围内,则保存所述session配置信息。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有session管理程序,所述session管理程序被执行时实现如权利要求1至5中任一项所述的session管理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711401214.XA CN108306928A (zh) | 2017-12-22 | 2017-12-22 | session管理方法、web服务器及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711401214.XA CN108306928A (zh) | 2017-12-22 | 2017-12-22 | session管理方法、web服务器及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108306928A true CN108306928A (zh) | 2018-07-20 |
Family
ID=62870900
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711401214.XA Pending CN108306928A (zh) | 2017-12-22 | 2017-12-22 | session管理方法、web服务器及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108306928A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951567A (zh) * | 2019-04-02 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 一种双数据中心应用部署方法 |
CN110413546A (zh) * | 2019-06-19 | 2019-11-05 | 平安科技(深圳)有限公司 | 基于redis的数据存储方法、装置及计算机可读存储介质 |
CN117155993A (zh) * | 2023-10-27 | 2023-12-01 | 深圳品阔信息技术有限公司 | 在线状态计算方法、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201682522U (zh) * | 2010-02-08 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 会话信息存储系统及应用服务器 |
CN102752323A (zh) * | 2011-04-18 | 2012-10-24 | 阿里巴巴集团控股有限公司 | 分布式session服务系统及方法 |
CN103491057A (zh) * | 2012-06-12 | 2014-01-01 | 深圳中兴网信科技有限公司 | 一种共享会话数据的方法、系统及装置 |
CN106453661A (zh) * | 2016-12-09 | 2017-02-22 | 北京酷我科技有限公司 | 一种http服务器集群的会话管理方法 |
CN107347068A (zh) * | 2017-07-10 | 2017-11-14 | 恒生电子股份有限公司 | 单点登录方法及系统、电子设备 |
-
2017
- 2017-12-22 CN CN201711401214.XA patent/CN108306928A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN201682522U (zh) * | 2010-02-08 | 2010-12-22 | 阿里巴巴集团控股有限公司 | 会话信息存储系统及应用服务器 |
CN102752323A (zh) * | 2011-04-18 | 2012-10-24 | 阿里巴巴集团控股有限公司 | 分布式session服务系统及方法 |
CN103491057A (zh) * | 2012-06-12 | 2014-01-01 | 深圳中兴网信科技有限公司 | 一种共享会话数据的方法、系统及装置 |
CN106453661A (zh) * | 2016-12-09 | 2017-02-22 | 北京酷我科技有限公司 | 一种http服务器集群的会话管理方法 |
CN107347068A (zh) * | 2017-07-10 | 2017-11-14 | 恒生电子股份有限公司 | 单点登录方法及系统、电子设备 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109951567A (zh) * | 2019-04-02 | 2019-06-28 | 山东浪潮云信息技术有限公司 | 一种双数据中心应用部署方法 |
CN110413546A (zh) * | 2019-06-19 | 2019-11-05 | 平安科技(深圳)有限公司 | 基于redis的数据存储方法、装置及计算机可读存储介质 |
CN110413546B (zh) * | 2019-06-19 | 2024-03-12 | 平安科技(深圳)有限公司 | 基于redis的数据存储方法、装置及计算机可读存储介质 |
CN117155993A (zh) * | 2023-10-27 | 2023-12-01 | 深圳品阔信息技术有限公司 | 在线状态计算方法、设备和介质 |
CN117155993B (zh) * | 2023-10-27 | 2024-01-26 | 深圳品阔信息技术有限公司 | 在线状态计算方法、设备和介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104320423B (zh) | 基于Cookie的单点登录轻量级实现方法 | |
CN108111473B (zh) | 混合云统一管理方法、装置和系统 | |
CN108306928A (zh) | session管理方法、web服务器及计算机可读存储介质 | |
CN110113369A (zh) | 一种基于角色权限控制的鉴权方法 | |
CN103384237A (zh) | 一种共享IaaS业务云账号的方法、及共享平台和网络装置 | |
CN104378342A (zh) | 多账号验证方法、装置及系统 | |
US11570035B2 (en) | Techniques for accessing logical networks via a virtualized gateway | |
CN101719259A (zh) | 用于银行的网络设备的维护管理方法、装置及系统 | |
WO2018226807A1 (en) | Centralized authenticating abstraction layer with adaptive assembly line pathways | |
CN105847277A (zh) | 用于第三方应用的服务账号共享管理方法及系统 | |
CN108429743A (zh) | 一种安全策略配置方法、系统、域控服务器及防火墙设备 | |
CN107689941A (zh) | 一种防止同一用户重复登录的装置和方法 | |
CN110327621A (zh) | 用于网络游戏客户端匹配的方法及设备 | |
CN105959309A (zh) | 一种用户权限管理方法及系统 | |
CN105337967A (zh) | 实现用户登录目标服务器的方法、系统和中心服务器 | |
CN107204995A (zh) | 一种控制访问权限的系统、认证服务器和方法 | |
CN106686149A (zh) | 端到端的企业级动态虚拟桌面交付方法 | |
CN107301349A (zh) | 一种数据库访问控制方法及系统 | |
CN105391566B (zh) | 一种动态的网络设备配置比对的方法及装置 | |
JP4275156B2 (ja) | 特定エリアネットワークアクセス制御システムおよび制御方法、ならびにそのプログラム | |
CN106537873A (zh) | 建立针对虚拟化和管理的安全计算设备 | |
CN105791308B (zh) | 一种主动识别域用户登录事件信息的方法、装置和系统 | |
US20080060056A1 (en) | Multi-service process management system and method | |
CN108347333A (zh) | 一种终端的身份认证方法、装置 | |
CN108259414B (zh) | 一种虚拟资源的管控方法及服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180720 |