CN114048443A - 用户身份的验证方法、装置及计算机存储介质 - Google Patents
用户身份的验证方法、装置及计算机存储介质 Download PDFInfo
- Publication number
- CN114048443A CN114048443A CN202111305670.0A CN202111305670A CN114048443A CN 114048443 A CN114048443 A CN 114048443A CN 202111305670 A CN202111305670 A CN 202111305670A CN 114048443 A CN114048443 A CN 114048443A
- Authority
- CN
- China
- Prior art keywords
- theme
- built
- data
- user
- information
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种用户身份的验证方法、装置及计算机存储介质,其中,所述方法包括:接收访问请求,并从所述访问请求中提取待验证信息;若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,以基于获取的所述已认证的用户信息对所述待验证信息进行验证。本发明提供的技术方案,能够在不重启kafka的情况下进行用户信息的动态管理,从而提高了验证的实时性和安全性。
Description
技术领域
本发明涉及数据处理技术领域,具体涉及一种用户身份的验证方法、装置及计算机存储介质。
背景技术
在当前的分布式流平台kafka中,可以通过SASL/PLAIN(Simple Authenticationand Security Layer,简单认证和安全层协议)认证机制,对用户的身份进行验证。
目前,原生的SASL/PLAIN认证机制,会将已经认证的用户名和密码存储在本地的JAAS(Java Authentication and Authorization Service,Java验证和授权服务)文件中。通过读取JAAS文件中存储的用户名和密码,可以对用户的访问请求进行验证。
然而,通过本地的JAAS文件来存储用户名和密码,不便于用户名和密码的动态管理。当对JAAS文件中的内容进行修改后(例如对用户名和密码进行新增、删除、修改等),修改后的内容通常需要重启kafka才会生效。显然,在正常的线上环境中,无法频繁地重启kafka,这就导致生效的用户名和密码并不具备实时性,从而导致身份验证的安全度不高。
发明内容
有鉴于此,本发明实施方式提供了一种用户身份的验证方法、装置及计算机存储介质,能够在不重启kafka的情况下进行用户信息的动态管理,从而提高了验证的实时性和安全性。
本发明一方面提供了一种用户身份的验证方法,所述方法应用于分布式流处理平台中,所述方法包括:接收访问请求,并从所述访问请求中提取待验证信息;若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
在一个实施方式中,在从所述访问请求中提取待验证信息之后,所述方法还包括:判断所述待验证信息是否为内置的超级用户的用户名和密码,若是,验证通过所述访问请求。
在一个实施方式中,所述方法还包括:若所述待验证信息不是内置的超级用户的用户名和密码,调用实例化的客户端,以通过所述实例化的客户端判断当前是否存在预设内置主题。
在一个实施方式中,所述方法还包括:若当前不存在所述预设内置主题,判定所述访问请求验证失败,并结束针对所述访问请求的验证过程。
在一个实施方式中,判断所述预设内置主题中的数据是否发生了更新包括:将缓存中已认证的用户信息的第一数据偏移量与所述预设内置主题中已认证的用户信息的第二数据偏移量进行对比;若所述第一数据偏移量与所述第二数据偏移量相同,判定所述预设内置主题中的数据未发生更新;若所述第一数据偏移量与所述第二数据偏移量不同,判定所述预设内置主题中的数据发生了更新。
在一个实施方式中,所述方法还包括:若所述预设内置主题中的数据发生了更新,从所述预设内置主题中读取已认证的用户信息,基于读取的所述已认证的用户信息对所述待验证信息进行验证,并将读取的所述已认证的用户信息更新至缓存中。
在一个实施方式中,所述方法还包括:接收新建用户请求,所述新建用户请求中包括待新建的用户名和密码;通过实例化的客户端将所述待新建的用户名和密码写入所述预设内置主题中,其中,所述实例化的客户端具备所述预设内置主题的数据读写权限。
在一个实施方式中,所述方法还包括:接收密码修改请求,所述密码修改请求中包括用户名和所述用户名对应的修改后的密码;通过实例化的客户端将所述用户名作为键,将所述修改后的密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述用户名具备多个密码,仅保留最新的密码,并删除其它的历史密码。
在一个实施方式中,所述方法还包括:接收删除用户请求,所述删除用户请求中包括待删除的用户名和所述待删除的用户名对应的空密码;通过实例化的客户端将所述待删除的用户名作为键,将所述空密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述待删除的用户名具备多个密码,仅保留最新的所述空密码,并删除其它的历史密码。
本发明另一方面还提供了一种用户身份的验证装置,所述装置位于分布式流处理平台中,所述装置包括:信息提取单元,用于接收访问请求,并从所述访问请求中提取待验证信息;更新判断单元,用于若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;验证单元,用于若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
在一个实施方式中,所述更新判断单元包括:偏移量对比模块,用于将缓存中已认证的用户信息的第一数据偏移量与所述预设内置主题中已认证的用户信息的第二数据偏移量进行对比;判定模块,用于若所述第一数据偏移量与所述第二数据偏移量相同,判定所述预设内置主题中的数据未发生更新;若所述第一数据偏移量与所述第二数据偏移量不同,判定所述预设内置主题中的数据发生了更新。
在一个实施方式中,所述装置还包括:数据更新单元,用于若所述预设内置主题中的数据发生了更新,从所述预设内置主题中读取已认证的用户信息,以基于读取的所述已认证的用户信息对所述待验证信息进行验证,并将读取的所述已认证的用户信息更新至缓存中。
在一个实施方式中,所述装置还包括:新建请求接收单元,用于接收新建用户请求,所述新建用户请求中包括待新建的用户名和密码;用户新建单元,用于通过实例化的客户端将所述待新建的用户名和密码写入所述预设内置主题中,其中,所述实例化的客户端具备所述预设内置主题的数据读写权限。
在一个实施方式中,所述装置还包括:修改请求接收单元,用于接收密码修改请求,所述密码修改请求中包括用户名和所述用户名对应的修改后的密码;密码修改单元,用于通过实例化的客户端将所述用户名作为键,将所述修改后的密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述用户名具备多个密码,仅保留最新的密码,并删除其它的历史密码。
在一个实施方式中,所述装置还包括:删除请求接收单元,用于接收删除用户请求,所述删除用户请求中包括待删除的用户名和所述待删除的用户名对应的空密码;用户删除单元,用于通过实例化的客户端将所述待删除的用户名作为键,将所述空密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述待删除的用户名具备多个密码,仅保留最新的所述空密码,并删除其它的历史密码。
本发明另一方面还提供了一种用户身份的验证装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的用户身份的验证方法。
本发明另一方面还提供了一种计算机存储介质,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的用户身份的验证方法。
本申请提供的技术方案,可以不通过JAAS文件在本地存储已认证的用户信息,而是将已认证的用户信息存储于预设内置主题(topic)中。预设内置主题中的数据可以动态地进行管理,并且在不需要重启kafka的情况下就能够生效。这样,在对发送访问请求的用户进行身份验证时,可以从该访问请求中提取出待验证信息。然后在存在预设内置主题的情况下,可以判断预设内置主题中的数据是否发生了更新,从而判断当前缓存中的数据与预设内置主题中的数据是否一致。如果未发生更新,那么可以直接从缓存中读取已认证的用户信息,从而基于读取的用户信息进行身份验证。而如果发生了更新,那么可以从预设内置主题中读取用户信息,并基于读取的用户信息进行身份验证,同时,可以将读取的用户信息写入缓存中,以保证缓存中与预设内置主题中的数据保持同步。
由上可见,通过预设内置主题来存储已认证的用户信息,可以实现用户信息的动态管理过程。在对用户身份进行验证之前,可以判断缓存与预设内置主题中的用户信息是否一致,从而保证身份验证的准确性。动态管理后的用户信息可以实时生效,从而提高了身份验证的实时性和安全性。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了现有技术中压缩策略的数据处理示意图;
图2示出了本发明一个实施方式中用户身份的验证方法步骤示意图;
图3示出了本发明一个实施方式中用户身份的验证流程图;
图4示出了本发明一个实施方式中用户身份的验证装置的功能模块示意图;
图5示出了本发明另一个实施方式中用户身份的验证装置的结构示意图。
具体实施方式
为使本发明实施方式的目的、技术方案和优点更加清楚,下面将结合本发明实施方式中的附图,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式是本发明一部分实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
在传统的kafka集群中,通常需要依赖zookeeper进行元数据、配置信息的存储。为了简化kafka集群的部署架构,改进后的kafka集群可以脱离对zookeeper的依赖,将元数据、配置信息等内容存储于kafka集群的内置主题中。例如,该内置主题为topic(@metadata)。不同于常规的内置主题,该用于存储元数据和配置信息的内置主题对用户是不可见的,从而避免元数据和配置信息被随意篡改。
为了解决通过JAAS文件来存储用户信息的缺陷,目前可以通过外部存储的方式,将已认证的用户信息存储于外部的介质中。例如,可以将已认证的用户信息存储于MySQL或者zookeeper中。显然,增加外部介质会提高kafka集群的部署复杂度和维护难度。此外,改进后的kafka已经脱离了zookeeper,为了存储用户信息而再次启用zookeeper,显然没有太大意义。再者,外部介质的数据读写性能会远远低于kafka本身的数据读写性能,因此在大数据高并发的应用场景下,kafka的读写性能会受限于外部介质的读写性能。
鉴于此,本申请提供的用户身份的验证方法,可以在kafka中创建一个用于存储已认证的用户信息的预设内置主题。在kafka中,主题内的数据都可以实时生效,因此通过预设内置主题来管理用户信息,可以对kafka中的用户信息进行动态更新。
在kafka中,为了缓解主题中数据的冗余程度,主题可以具备对应的数据清理策略。现有的数据清理策略通常有两种:一种是删除策略(delete),另一种是压缩策略(compact),数据清理策略可以通过kafka中的配置项log.cleanup.policy来设置。
通常而言,主题默认的数据清理策略都是删除策略。删除策略指的是,如果主题内存储的数据达到预先设置的存储时长,或者达到预先设置的容量阈值,主题会自动将不活跃的数据直接删除,从而节省主题中的存储空间。压缩策略指的是,如果主题内存储的数据达到预先设置的存储时长,或者达到预先设置的容量阈值,主题会将同一个键(key)映射至的多个值(value)进行去重,对于每个键而言,仅保留最新的一个值。
请参阅图1,在采取压缩策略之前,主题中的key为K1和K2的键值对数据分别有三对,key为K5的键值对数据有两对。在采取压缩策略之后,每个key都只会保留一个最新的value。例如图1中,K1对应的是最新的V4,K2对应的是最新的V10,K5对应的是最新的V9。
在本申请中,对于已认证的用户信息而言,包含的是用户名和密码,其中,用户名可以作为key,密码可以作为value。利用预设内置主题来存储已认证的用户信息时,需要将预设内置主题的数据清理策略设置为压缩策略。这样处理的目的在于,对于已认证的用户信息,如果用户不进行密码的修改,那么一段时间过后该用户信息便会处于不活跃的状态。而如果数据清理策略为删除策略,该用户信息就会被删除。显然,这在身份验证的场景下是不合理的。而将数据清理策略设置为压缩策略,在预设内置主题中,对于已认证的用户而言,每个用户名都至少会具备最新的一个密码,从而保证身份验证能够正常进行。
在实际应用中,可以采用kafka原生的脚本工具kafka-topics.sh创建上述的预设内置主题,在创建了预设内置主题后,可以采用原生的脚本工具kafka-configs.sh设置该预设内置主题的数据清理策略为压缩策略。
在现有的基于JAAS文件进行身份验证的SASL/PLAIN机制中,可以通过configure方法从缓存中读取JAAS文件内的用户信息,通过handle方法获取待验证信息,并通过authenticate方法对该待验证信息进行身份验证。由于本申请的实施方式是从缓存中读取预设内置主题内的用户信息,因此可以对上述的各个方法进行对应的改进,但具体实现的功能依然类似,只不过处理的数据对象有所区别而已。
请参阅图2,本申请一个实施方式提供的用户身份的验证方法,该方法可以应用于诸如kafka这样的分布式流处理平台中,该方法可以包括以下多个步骤。
S1:接收访问请求,并从所述访问请求中提取待验证信息。
在本实施方式中,用户发来的访问请求中,可以携带用户的待验证信息,该待验证信息可以是用户名和对应的密码。在实际应用中,可以通过handle方法从该访问请求中提取出对应的待验证信息。
S3:若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略。
请参阅图3,在从访问请求中提取出待验证信息后,可以先判断该待验证信息是否为内置的超级用户的用户名和密码。其中,内置的超级用户可以是无需进行身份验证的用户。超级用户的用户名和密码是预先在kafka集群中设置的。如果该待验证信息是超级用户的用户名和密码,那么可以直接验证通过该访问请求。
在本实施方式中,如果待验证信息不是内置的超级用户的用户名和密码,可以调用authenticate方法,对该待验证信息进行身份验证。
在本申请中,为了对内置主题中的数据进行读取,可以先通过configure方法实例化一个kafka客户端(kafka client),该kafka客户端的用户名和密码可以设置为超级用户的用户名和密码,从而为该kafka客户端赋予读写内置主题中数据的权限。
在本实施方式中,authenticate方法被调用后,可以通过该实例化的kafka客户端,先判断目前是否存在预设内置主题。如果不存在,则表明目前并不存在已认证的用户信息,在这种情况下,可以直接判定访问请求验证失败,并结束针对该访问请求的验证过程。
在存在预设内置主题的情况下,表明目前kafka集群中具备已认证的用户信息。此时,kafka客户端可以继续判断预设内置主题中的数据是否发生了更新。在实际应用中,预设内置主题中的数据可以被加载至缓存中,以便快速地进行读取。由于预设内置主题中的数据可能会动态地更新,而在更新之后并不一定会及时同步至缓存中,因此缓存中与预设内置主题中的数据并不一定一致。为了提高身份验证的准确度,kafka客户端需要先判断预设内置主题中的数据是否发生了更新。具体地,在预设内置主题中,已认证的用户信息可以通过键值对的方式进行存储,并且每组键值对数据都会对应唯一的数据偏移量(offset)。这样,在判断预设内置主题中的数据是否发生更新时,可以将缓存中已认证的用户信息的第一数据偏移量与预设内置主题中已认证的用户信息的第二数据偏移量进行对比。如果所述第一数据偏移量与所述第二数据偏移量相同,则可以判定所述预设内置主题中的数据未发生更新。而如果所述第一数据偏移量与所述第二数据偏移量不同,则可以判定所述预设内置主题中的数据发生了更新。
S5:若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
在本实施方式中,如果预设内置主题中的数据未发生更新,则表明分布式流处理平台的本地缓存中已认证的用户信息与预设内置主题中已认证的用户信息是一致的,此时可以直接从缓存中获取已认证的用户信息。通过将待验证信息中的用户名和密码在已认证的用户信息中进行匹配,从而可以对待验证信息进行身份验证。
具体地,首先可以判断待验证信息中的用户名在读取的已认证的用户信息中,对应的密码是否为空密码(null),如果是空密码,表征该用户已经在kafka集群中删除,此时可以拒绝该访问请求,验证失败。如果对应的密码不是空密码,并且待验证信息中的用户名和密码存在于已认证的用户信息中,则可以验证通过该访问请求。
在一个实施方式中,如果预设内置主题中的数据发生了更新,则表明缓存中的数据并不是最新的数据,此时,kafka客户端可以直接从预设内置主题中读取已认证的用户信息,并基于读取的用户信息对待验证信息进行身份验证。同时,kafka客户端可以将从预设内置主题中读取的已认证的身份信息更新至缓存中,以使得缓存中的用户信息与预设内置主题中的身份信息保持一致,后续,如果预设内置主题中已认证的用户信息没有进一步的更新,就可以直接从缓存中快速读取对应的用户信息。
在本实施方式中,在完成了对待验证信息的身份验证之后,就可以通过close方法,关闭上述的实例化后的kafka客户端。
在本申请中,通过预设内置主题可以动态管理用户信息。具体地,可以在预设内置主题中新增用户信息、修改已认证用户的密码、删除已认证的用户信息等。在实际应用中,可以通过实例化的kafka客户端对预设内置主题中的数据进行读写。
在一个实施方式中,用户可以向kafka客户端发送新建用户请求,在该新建用户请求中,可以包括待新建的用户名和对应的密码。针对该新建用户请求,kafka客户端可以向预设内置主题中写入一条新建消息,在该新建消息中可以包括上述的待新建的用户名和密码。这样,在预设内置主题中,可以将待新建的用户名作为key,将密码作为value进行存储。
当然,待新建的用户名必须是预设内置主题中未认证的用户名,并且待新建的用户名需要符合kafka集群中用户名的命名规则,这在本领域是常识,这里就不再赘述。
在一个实施方式中,通过kafka客户端还可以实现对已认证的用户的密码进行修改。具体地,用户可以向kafka客户端发送密码修改请求,该密码修改请求中可以包括待进行密码修改的用户名和该用户名对应的修改后的密码。Kafka客户端可以构建一条密码修改消息,在该密码修改消息中可以包括用户名和修改后的密码,将该消息写入预设内置主题后,在预设内置主题中,就可以增设一条以用户名为key,以修改后的密码为value的键值对数据。由于预设内置主题的数据清理策略为压缩策略,那么当某个用户名具备多个密码时(其中只有最新的密码生效,其余密码都是历史密码),可以仅保留最新的密码,并删除其它的历史密码。这样,通过预设内置主题的压缩策略,可以自动保留最新的密码,从而保证身份验证的准确性。
当然,在进行密码修改之前,kafka可以对用户的身份先进行验证,在确认用户身份无误后,才允许该用户对自身的密码进行修改,这也是本领域的常识,这里就不再赘述。
在一个实施方式中,通过kafka客户端还可以实现删除已认证用户的功能。具体地,当需要在kafka客户端中注销某个用户的信息时,可以向kafka客户端发送删除用户请求,在该删除用户请求中,可以包括待删除的用户名和所述待删除的用户名对应的空密码,其中,该空密码可以表示为null。这样,kafka客户端同样可以构建一条包含了用户名和空密码的消息,并将该消息写入预设内置主题中。在将该消息写入预设内置主题后,在预设内置主题中,就可以增设一条以用户名为key,以空密码为value的键值对数据。由于预设内置主题的数据清理策略为压缩策略,那么当某个用户名具备多个密码时(其中只有最新的空密码生效,其余密码都是历史密码),可以仅保留最新的空密码,并删除其它的历史密码。这样,通过预设内置主题的压缩策略,可以将待删除用户的密码置空,后续当该用户发来访问请求后,会发现该用户的密码是空密码,那么kafka集群可以直接拒绝该用户的访问请求。
本申请提供的技术方案,可以不通过JAAS文件在本地存储已认证的用户信息,而是将已认证的用户信息存储于预设内置主题(topic)中。预设内置主题中的数据可以动态地进行管理,并且在不需要重启kafka的情况下就能够生效。这样,在对发送访问请求的用户进行身份验证时,可以从该访问请求中提取出待验证信息。然后在存在预设内置主题的情况下,可以判断预设内置主题中的数据是否发生了更新,从而判断当前缓存中的数据与预设内置主题中的数据是否一致。如果未发生更新,那么可以直接从缓存中读取已认证的用户信息,从而基于读取的用户信息进行身份验证。而如果发生了更新,那么可以从预设内置主题中读取用户信息,并基于读取的用户信息进行身份验证,同时,可以将读取的用户信息写入缓存中,以保证缓存中与预设内置主题中的数据保持同步。
由上可见,通过预设内置主题来存储已认证的用户信息,可以实现用户信息的动态管理过程。在对用户身份进行验证之前,可以判断缓存与预设内置主题中的用户信息是否一致,从而保证身份验证的准确性。动态管理后的用户信息可以实时生效,从而提高了身份验证的实时性和安全性。
请参阅图4,本申请一个实施方式还提供一种用户身份的验证装置,所述装置位于分布式流处理平台中,所述装置包括:
信息提取单元,用于接收访问请求,并从所述访问请求中提取待验证信息;
更新判断单元,用于若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;
验证单元,用于若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
请参阅图5,本申请一个实施方式还提供一种用户身份的验证装置,所述装置包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的用户身份的验证方法。
本申请一个实施方式还提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现上述的用户身份的验证方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本领域技术人员可以理解,实现上述实施方式方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施方式的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(Random AccessMemory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种用户身份的验证方法,其特征在于,所述方法应用于分布式流处理平台中,所述方法包括:
接收访问请求,并从所述访问请求中提取待验证信息;
若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;
若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
2.根据权利要求1所述的方法,其特征在于,在从所述访问请求中提取待验证信息之后,所述方法还包括:
判断所述待验证信息是否为内置的超级用户的用户名和密码,若是,验证通过所述访问请求;若所述待验证信息不是内置的超级用户的用户名和密码,调用实例化的客户端,以通过所述实例化的客户端判断当前是否存在预设内置主题。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
若当前不存在所述预设内置主题,判定所述访问请求验证失败,并结束针对所述访问请求的验证过程。
4.根据权利要求1所述的方法,其特征在于,判断所述预设内置主题中的数据是否发生了更新包括:
将缓存中已认证的用户信息的第一数据偏移量与所述预设内置主题中已认证的用户信息的第二数据偏移量进行对比;
若所述第一数据偏移量与所述第二数据偏移量相同,判定所述预设内置主题中的数据未发生更新;若所述第一数据偏移量与所述第二数据偏移量不同,判定所述预设内置主题中的数据发生了更新。
5.根据权利要求1或4所述的方法,其特征在于,所述方法还包括:
若所述预设内置主题中的数据发生了更新,从所述预设内置主题中读取已认证的用户信息,基于读取的所述已认证的用户信息对所述待验证信息进行验证,并将读取的所述已认证的用户信息更新至缓存中。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收新建用户请求,所述新建用户请求中包括待新建的用户名和密码;
通过实例化的客户端将所述待新建的用户名和密码写入所述预设内置主题中,其中,所述实例化的客户端具备所述预设内置主题的数据读写权限。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收密码修改请求,所述密码修改请求中包括用户名和所述用户名对应的修改后的密码;
通过实例化的客户端将所述用户名作为键,将所述修改后的密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述用户名具备多个密码,仅保留最新的密码,并删除其它的历史密码。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收删除用户请求,所述删除用户请求中包括待删除的用户名和所述待删除的用户名对应的空密码;
通过实例化的客户端将所述待删除的用户名作为键,将所述空密码作为值,写入所述预设内置主题中;其中,若在所述预设内置主题中,所述待删除的用户名具备多个密码,仅保留最新的所述空密码,并删除其它的历史密码。
9.一种用户身份的验证装置,其特征在于,所述装置位于分布式流处理平台中,所述装置包括:
信息提取单元,用于接收访问请求,并从所述访问请求中提取待验证信息;
更新判断单元,用于若当前在所述分布式流处理平台中存在预设内置主题,判断所述预设内置主题中的数据是否发生了更新;所述预设内置主题用于存储已认证的用户信息,所述预设内置主题的数据清理策略为压缩策略;
验证单元,用于若所述预设内置主题中的数据未发生更新,从本地缓存中获取已认证的用户信息,基于获取的所述已认证的用户信息对所述待验证信息进行验证。
10.一种计算机存储介质,其特征在于,所述计算机存储介质用于存储计算机程序,所述计算机程序被处理器执行时,实现如权利要求1至8中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111305670.0A CN114048443A (zh) | 2021-11-05 | 2021-11-05 | 用户身份的验证方法、装置及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111305670.0A CN114048443A (zh) | 2021-11-05 | 2021-11-05 | 用户身份的验证方法、装置及计算机存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048443A true CN114048443A (zh) | 2022-02-15 |
Family
ID=80207402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111305670.0A Pending CN114048443A (zh) | 2021-11-05 | 2021-11-05 | 用户身份的验证方法、装置及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048443A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114531295A (zh) * | 2022-03-01 | 2022-05-24 | 中国光大银行股份有限公司 | 一种用户行为审计系统、方法、设备及存储介质 |
-
2021
- 2021-11-05 CN CN202111305670.0A patent/CN114048443A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114531295A (zh) * | 2022-03-01 | 2022-05-24 | 中国光大银行股份有限公司 | 一种用户行为审计系统、方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106685917B (zh) | 物联网设备与控制器智能绑定的实现方法及系统 | |
US11801805B2 (en) | Security of user data stored in shared vehicles | |
US20180324170A1 (en) | Method and apparatus for allocating device identifiers | |
CN102426594B (zh) | 对数据库进行操作的方法和系统 | |
US9059978B2 (en) | System and methods for remote maintenance in an electronic network with multiple clients | |
US11212283B2 (en) | Method for authentication and authorization and authentication server using the same for providing user management mechanism required by multiple applications | |
CN111030936A (zh) | 网络访问的限流控制方法、装置及计算机可读存储介质 | |
CN106487744B (zh) | 一种基于Redis存储的Shiro验证方法 | |
WO2019134234A1 (zh) | 防刷登录的方法、装置、终端设备及存储介质 | |
CA3068345A1 (en) | Witness blocks in blockchain applications | |
WO2019080423A1 (zh) | 资源数值转移方法、装置、存储介质和服务器 | |
JP2011076377A (ja) | 端末装置及び端末装置におけるアクセス制御ポリシー取得方法 | |
CN110826086A (zh) | 跨租户授权方法、装置、计算机设备及存储介质 | |
CN111414612A (zh) | 操作系统镜像的安全保护方法、装置及电子设备 | |
CN104836777B (zh) | 身份验证方法和系统 | |
CN114048443A (zh) | 用户身份的验证方法、装置及计算机存储介质 | |
CN109831521B (zh) | 缓存实例管理方法、装置、计算机设备和存储介质 | |
US10140443B2 (en) | Authentication source selection | |
CN111800396B (zh) | 挂失账号的登录方法和装置 | |
JP2007272506A (ja) | 認証システム、認証情報管理装置、認証情報分散方法及びコンピュータプログラム | |
CN113742681B (zh) | 一种账户管理方法、装置、计算机设备和存储介质 | |
CN115935414A (zh) | 基于区块链的数据校验方法、装置、电子设备和存储介质 | |
CN114928537B (zh) | 网络设备配置方法、装置及存储介质 | |
KR102689921B1 (ko) | 큐버네티스 클러스터의 사용자 통합 인증 방법 및 서버 | |
CN111385358B (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 |