CN114070616B - 一种基于redis缓存的分布式会话共享方法及系统 - Google Patents

一种基于redis缓存的分布式会话共享方法及系统 Download PDF

Info

Publication number
CN114070616B
CN114070616B CN202111350834.1A CN202111350834A CN114070616B CN 114070616 B CN114070616 B CN 114070616B CN 202111350834 A CN202111350834 A CN 202111350834A CN 114070616 B CN114070616 B CN 114070616B
Authority
CN
China
Prior art keywords
information
login information
login
user
session
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.)
Active
Application number
CN202111350834.1A
Other languages
English (en)
Other versions
CN114070616A (zh
Inventor
胡世敏
连伟灿
王敏
丁明
廖小文
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Eshore Technology Co Ltd
Original Assignee
Guangdong Eshore Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Eshore Technology Co Ltd filed Critical Guangdong Eshore Technology Co Ltd
Priority to CN202111350834.1A priority Critical patent/CN114070616B/zh
Publication of CN114070616A publication Critical patent/CN114070616A/zh
Application granted granted Critical
Publication of CN114070616B publication Critical patent/CN114070616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/082Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying multi-factor authentication

Abstract

本发明公开了一种基于redis缓存的分布式会话共享方法,涉及通信技术,解决了难以满足多用户使用请求需求的技术问题。获取用户的登录信息,通过能共享redis集群数据且基于shiro框架的hash拦截认证机制,校验所述登录信息中的hash值,并对校验通过的登录信息进行授权,使其直接进入访问服务。本发明还公开了一种基于redis缓存的分布式会话共享系统。本发明实现了多用户信息数据处理,能有效的保证数据的一致性,且能减少数据格式不统一的处理。

Description

一种基于redis缓存的分布式会话共享方法及系统
技术领域
本发明涉及通信技术,更具体地说,它涉及一种基于redis缓存的分布式会话共享方法及系统。
背景技术
在集群容器化部署应用场景下,session共享对于分布式系统的一个用户的多次请求路由到不同容器应用机器上,不可能每次请求对应容器应用里都生成一个session而相互之间没有联系,而是希望一个用户登陆一次就有一共享信息的session。每次请求都会使用这一个session的信息,以保证登录信息的一致性。当在客户端浏览器存储cookie的会话ID唯一,则若在同一个浏览器要同时再次登录不同用户时,会话信息会覆盖掉前一个登录的会话信息,导致不能存在一个浏览器中同时用多个用户访问。
例如,在企业内部每个用户都授予不同岗位权限。在需要用不同用户或同用户不同岗位做数据和业务对比参照时,通常需要打开多用户登录或一个用户不同岗位权限登录查看业务和参照对比数据。在分布式系统环境下就需要设计提供既能支持分布式会话共享和存储集中机制,又能对不同场景的使用提供更方便更有效的会话保持和会话隔离机制。
因此,针对目前的分布式多应用部署的多用户同浏览器登录业务需求,现有shiro会话共享的一个会话多用户情况下,存在以下问题。
(1)功能上:现有会话共享,同浏览器只能保持最后登录用户信息。
(2)数据一致性:同浏览器登录后,会覆盖前一个用户信息。
总的来说,现有的session会话共享处理方式,难以满足多用户使用请求需求。所以,需要引入可支持多用户同客户端使用的共享机制。
发明内容
本发明要解决的技术问题是针对现有技术的不足,提供一种基于redis缓存的分布式会话共享方法及系统,实现了多用户信息数据处理,能有效的保证数据的一致性。
本发明所述的一种基于redis缓存的分布式会话共享方法,获取用户的登录信息,通过能共享redis集群数据且基于shiro框架的hash拦截认证机制,校验所述登录信息中的hash值,并对校验通过的登录信息进行授权,使其直接进入访问服务。
作进一步的改进,所述hash拦截认证机制,具体包括,
拦截所述登录信息,读取所述登录信息中session会话的主题信息;
判断所述主题信息是否存在;若所述主题信息存在,则继续校验所述登录信息中是否存在hash值;
若所述登录信息中存在hash值,则所述登录信息校验通过;否则,向redis集群发起会话信息共享,根据所述登录信息获取与其相对应的hash值,并将所述hash值写入到登录信息中,再允许所述用户进入访问服务;
若所述主题信息不存在,新建一session会话的主题信息,并向redis集群发起会话信息共享,根据所述登录信息获取与其相对应的hash值,并将所述hash值写入到登录信息中,再允许所述用户进入访问服务。
进一步的,若所述登录信息中不存在hash值,首先提示所述用户是否进行登录;若所述用户不进行登录,则返回登录页面;否则将向所述redis集群发起会话信息共享。
更进一步的,所述登录信息被准入访问服务后,获取所述登录信息的信息内容,并将其存储至所述redis集群中。
更进一步的,所述登录信息包括用户账号信息以及岗位账号信息。
更进一步的,所述登录信息的获取方法为,用户在登录页面输入的用户账号信息通过校验后,读取所述用户账号信息,同时所述登录页面跳转至用户岗位列表,并在所述用户输入的岗位账号信息通过校验后,读取所述岗位账号信息。
更进一步的,获取所述登录信息后,根据所述登录信息遍历redis集群,查询所述redis集群中是否存在与登录信息相对应的hash值认证;若不存在,则跳转至登录页面。
更进一步的,存储至所述redis集群中的信息内容,通过session的key生成,将所述用户账号信息、岗位账号信息以及hash值整合为一key缓存数据;将所述key缓存数据的格式统一为json对象,进行序列化存储。
更进一步的,所述hash拦截认证机制通过拦截器进行处理。
一种基于redis缓存的分布式会话共享系统,包括shiro安全鉴权拦截模块和redis集群模块;所述shiro安全鉴权拦截模块应用如权利要求1-9任一项所述的分布式会话共享方法对用户的登录信息进行授权,使其进入访问服务;所述redis集群模块用于存储所述登录信息的信息内容。
有益效果
本发明的优点在于:
1、由于redis的本身读写快速,且由集群组件构成,因此,其在会话共享机制中的应用具有高性能的保障。而shiro框架的缓冲集群,本身具有高可用特性,应用分布式部署,支撑多服务共享会话可用。这样,应用shiro框架的分布式集群、redis集群共享数据,能有效的保证数据的一致性。
2、将登录信息以及hash值整合为一key缓存数据,并将key缓存数据的格式统一为json对象进行序列化存储。这样保证不需要再对信息数据进行转化,减少数据格式不统一的处理。
3、使用redis集群作为数据存储,同一集群数据源可以实现多任务并发访问;按照sessionID配置不同登录信息的hash标记存储,实现多用户信息数据处理。
附图说明
图1为本发明的分布式会话共享方法整体结构示意图;
图2为本发明的分布式会话共享方法流程图。
图3为本发明的分布式会话共享架构示意图。
具体实施方式
下面结合实施例,对本发明作进一步的描述,但不构成对本发明的任何限制,任何人在本发明权利要求范围所做的有限次的修改,仍在本发明的权利要求范围内。
参阅图1-图3,本发明的一种基于redis缓存的分布式会话共享方法,获取用户的登录信息,通过能共享redis集群数据且基于shiro框架的hash拦截认证机制校验登录信息中的hash值,并对校验通过的登录信息进行授权,使其直接进入访问服务。
由于redis的本身读写快速,且由集群组件构成,因此,其在会话共享机制中的应用具有高性能的保障。而shiro框架的缓冲集群,本身具有高可用特性,应用分布式部署,支撑多服务共享会话可用。这样,应用shiro框架的分布式集群、redis集群共享数据,能有效的保证数据的一致性、高性能、高可用。
其中,登录信息的获取方法为,用户在登录页面输入的用户账号信息通过校验后,读取用户账号信息,同时登录页面跳转至用户岗位列表,并在用户输入的岗位账号信息通过校验后,读取岗位账号信息。
获取登录信息后,根据登录信息遍历redis集群,查询redis集群中是否存在与登录信息相对应的hash值认证。若不存在,说明该用户无权访问服务,直接跳转至登录页面。
本实施例的hash拦截认证机制通过拦截器进行处理。通过拦截器实现认证过程,不需对代码嵌入,不需优化已有鉴权和授权逻辑,易于实现。
hash拦截认证机制,具体包括,
拦截登录信息,读取登录信息中session会话的主题信息。即读取session会话中的subject。其中,subject中包含有sessionID。
判断主题信息是否存在。若主题信息存在,则继续校验登录信息中是否存在hash值。
若登录信息中存在hash值,则登录信息校验通过。否则,向redis集群发起会话信息共享,根据登录信息获取与其相对应的hash值,并将hash值写入到登录信息中,再允许用户进入访问服务。
若主题信息不存在,则说明该用户并未在session会话中,可认为是新用户或新授权的用户。此时,新建一session会话的主题信息,并向redis集群发起会话信息共享,根据登录信息获取与其相对应的hash值,并将hash值写入到登录信息中,再将登录信息写入到主题信息中;待写入完毕后,允许用户进入访问服务。通过session会话的主题信息的新建,实现了多用户信息数据处理。
在hash拦截认证机制中,若登录信息中不存在hash值,首先提示用户是否进行登录。若用户不进行登录,则返回登录页面。否则将向redis集群发起会话信息共享。即通过询问机制,能有效降低用户的误登录。
此外,登录信息被准入访问服务后,获取登录信息的信息内容,并将其存储至redis集群中,用于备份,并更新redis集群。使用redis集群作为数据存储,同一集群数据源可以实现多任务并发访问。按照sessionID配置不同登录信息的hash值存储,实现多用户信息数据处理。
登录信息包括用户账号信息以及岗位账号信息。即本实施例采用用户加岗位模式标记为唯一hash值,能保证数据的一致性。
存储至redis集群中的信息内容,通过session的key生成,将用户账号信息、岗位账号信息以及hash值整合为一key缓存数据;将key缓存数据的格式统一为json对象,进行序列化存储。这样保证不需要再对信息数据进行转化,减少数据格式不统一的处理。
通过登录信息唯一模式hash值标记,拦截器控制判断sessionID,并将当前用户的登录信息保存到此sessionID中,按key缓冲数据方式存储;并结合redis集群实现远程用户会话数据存储。不同访问域在时效访问范围内可根据登录信息的sessionID和hash值共享远程redis集群的当前会话数据,保证会话无感知使用。
一种基于redis缓存的分布式会话共享系统,包括shiro安全鉴权拦截模块和redis集群模块;shiro安全鉴权拦截模块应用分布式会话共享方法对用户的登录信息进行授权,使其进入访问服务。redis集群模块用于存储登录信息的信息内容。
即本发明采用的是基于开源的shiro安全框架,从登录页面共享登录信息和hash值的请求,设置拦截监测资源请求路径,然后通过继承实现shiro的数据存储增改,从而扩展redis集群存储。并且,按session会话的主题信息和hash值定位当前用户岗位会话中的登录信息,实现访问鉴权和数据应用。
以上所述的仅是本发明的优选实施方式,应当指出对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些都不会影响本发明实施的效果和专利的实用性。

Claims (5)

1.一种基于redis缓存的分布式会话共享方法,其特征在于,获取用户的登录信息,通过能共享redis集群数据且基于shiro框架的hash拦截认证机制,校验所述登录信息中的hash值,并对校验通过的登录信息进行授权,使其直接进入访问服务;
所述hash拦截认证机制,具体包括,
拦截所述登录信息,读取所述登录信息中session会话的主题信息;
判断所述主题信息是否存在;若所述主题信息存在,则继续校验所述登录信息中是否存在hash值;
若所述登录信息中存在hash值,则所述登录信息校验通过;否则,向redis集群发起会话信息共享,根据所述登录信息获取与其相对应的hash值,并将所述hash值写入到登录信息中,再允许所述用户进入访问服务;
若所述主题信息不存在,新建一session会话的主题信息,并向redis集群发起会话信息共享,根据所述登录信息获取与其相对应的hash值,并将所述hash值写入到登录信息中,再允许所述用户进入访问服务;
若所述登录信息中不存在hash值,首先提示所述用户是否进行登录;若所述用户不进行登录,则返回登录页面;否则将向所述redis集群发起会话信息共享;
所述登录信息被准入访问服务后,获取所述登录信息的信息内容,并将其存储至所述redis集群中;
所述登录信息包括用户账号信息以及岗位账号信息;
存储至所述redis集群中的信息内容,通过session的key生成,将所述用户账号信息、岗位账号信息以及hash值整合为一key缓存数据;将所述key缓存数据的格式统一为json对象,进行序列化存储。
2.根据权利要求1所述的一种基于redis缓存的分布式会话共享方法,其特征在于,所述登录信息的获取方法为,用户在登录页面输入的用户账号信息通过校验后,读取所述用户账号信息,同时所述登录页面跳转至用户岗位列表,并在所述用户输入的岗位账号信息通过校验后,读取所述岗位账号信息。
3.根据权利要求2所述的一种基于redis缓存的分布式会话共享方法,其特征在于,获取所述登录信息后,根据所述登录信息遍历redis集群,查询所述redis集群中是否存在与登录信息相对应的hash值认证;若不存在,则跳转至登录页面。
4.根据权利要求1所述的一种基于redis缓存的分布式会话共享方法,其特征在于,所述hash拦截认证机制通过拦截器进行处理。
5.一种基于redis缓存的分布式会话共享系统,其特征在于,包括shiro安全鉴权拦截模块和redis集群模块;所述shiro安全鉴权拦截模块应用如权利要求1-4任一项所述的分布式会话共享方法对用户的登录信息进行授权,使其进入访问服务;所述redis集群模块用于存储所述登录信息的信息内容。
CN202111350834.1A 2021-11-15 2021-11-15 一种基于redis缓存的分布式会话共享方法及系统 Active CN114070616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111350834.1A CN114070616B (zh) 2021-11-15 2021-11-15 一种基于redis缓存的分布式会话共享方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111350834.1A CN114070616B (zh) 2021-11-15 2021-11-15 一种基于redis缓存的分布式会话共享方法及系统

Publications (2)

Publication Number Publication Date
CN114070616A CN114070616A (zh) 2022-02-18
CN114070616B true CN114070616B (zh) 2024-02-27

Family

ID=80272419

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111350834.1A Active CN114070616B (zh) 2021-11-15 2021-11-15 一种基于redis缓存的分布式会话共享方法及系统

Country Status (1)

Country Link
CN (1) CN114070616B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115242876A (zh) * 2022-07-21 2022-10-25 武汉众邦银行股份有限公司 一种基于redis来实现会话共享的方法及装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470190A (zh) * 2015-08-19 2017-03-01 中兴通讯股份有限公司 一种Web实时通信平台鉴权接入方法及装置
KR20180024746A (ko) * 2016-08-31 2018-03-08 이니텍(주) 서버단 세션 관리 방식 및 쿠키 정보 공유 방식을 병행 지원하는 싱글 사인온 인증 방법
CN110381031A (zh) * 2019-06-21 2019-10-25 中国平安财产保险股份有限公司 单点登录方法、装置、设备及计算机可读存储介质
CN111065097A (zh) * 2019-10-11 2020-04-24 上海交通大学 移动互联网中基于共享密钥的通道保护方法及系统
CN111062023A (zh) * 2019-11-26 2020-04-24 深圳市思迪信息技术股份有限公司 多应用系统实现单点登录的方法及装置
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
CN112988887A (zh) * 2021-02-07 2021-06-18 中国科学院信息工程研究所 一种基于区块链的基金会系统
CN113259475A (zh) * 2021-06-10 2021-08-13 大汉软件股份有限公司 一种基于微服务架构的分布式会话处理系统及方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106470190A (zh) * 2015-08-19 2017-03-01 中兴通讯股份有限公司 一种Web实时通信平台鉴权接入方法及装置
KR20180024746A (ko) * 2016-08-31 2018-03-08 이니텍(주) 서버단 세션 관리 방식 및 쿠키 정보 공유 방식을 병행 지원하는 싱글 사인온 인증 방법
CN110381031A (zh) * 2019-06-21 2019-10-25 中国平安财产保险股份有限公司 单点登录方法、装置、设备及计算机可读存储介质
CN111065097A (zh) * 2019-10-11 2020-04-24 上海交通大学 移动互联网中基于共享密钥的通道保护方法及系统
CN111062023A (zh) * 2019-11-26 2020-04-24 深圳市思迪信息技术股份有限公司 多应用系统实现单点登录的方法及装置
CN112788033A (zh) * 2021-01-13 2021-05-11 京东方科技集团股份有限公司 一种认证方法及认证系统
CN112988887A (zh) * 2021-02-07 2021-06-18 中国科学院信息工程研究所 一种基于区块链的基金会系统
CN113259475A (zh) * 2021-06-10 2021-08-13 大汉软件股份有限公司 一种基于微服务架构的分布式会话处理系统及方法

Also Published As

Publication number Publication date
CN114070616A (zh) 2022-02-18

Similar Documents

Publication Publication Date Title
CN108901022B (zh) 一种微服务统一鉴权方法及网关
CN107948167B (zh) 一种单点登录的方法和装置
CN113783695B (zh) 一种微服务架构的客户端信息认证方法及系统
US7721322B2 (en) Enterprise service-to-service trust framework
CN110086822A (zh) 面向微服务架构的统一身份认证策略的实现方法及系统
CN107277049B (zh) 一种应用系统的访问方法及装置
US11240031B2 (en) System and method for delegating authority through coupled devices
CN108289098B (zh) 分布式文件系统的权限管理方法和装置、服务器、介质
CN108632241B (zh) 一种多应用系统统一登录方法和装置
CN112788031B (zh) 基于Envoy架构的微服务接口认证系统、方法及装置
CN111475795A (zh) 一种面向多应用进行统一认证授权的方法及装置
CN108616540B (zh) 一种基于跨平台加密算法与声明式过滤认证的平台认证方法及系统
CN109495486B (zh) 一种基于JWT的单页Web应用集成CAS的方法
CN111131301A (zh) 一种统一鉴权授权方案
CN110661798A (zh) 基于认证鉴权平台的认证鉴权方法
CN109962892A (zh) 一种登录应用的认证方法及客户端、服务器
CN114928460A (zh) 一种基于微服务架构的多租户应用集成框架系统
CN114070616B (zh) 一种基于redis缓存的分布式会话共享方法及系统
US20180198675A1 (en) Techniques for accessing logical networks via a virtualized gateway
CN116192483A (zh) 认证鉴权方法、装置、设备及介质
CN111651747A (zh) 登录票据同步系统及方法、相关设备
US20140007197A1 (en) Delegation within a computing environment
CN110740122B (zh) 一种提高数据仓库安全性的方法、装置
Dykstra et al. Secure command line solution for token-based authentication
CN116455613A (zh) 一种基于OpenResty跨语言异构微服务统一鉴权优化方法

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
GR01 Patent grant
GR01 Patent grant