一种多租户的数据分库实现方法和系统技术方案

技术编号:20978663 阅读:27 留言:0更新日期:2019-04-29 18:42
本发明专利技术公开了一种多租户的数据分库实现方法和系统,属于计算机云计算技术领域,通过使用登录校验拦截器实现用户登录和seesion有效性校验;通过使用用户状态拦截器实现用户状态合法性校验;通过使用租户状态拦截器实现租户状态合法性校验;通过使用安全访问拦截器实现数据访问安全性校验。一种多租户的数据分库实现系统,其特征在于包括登录校验拦截器、用户状态拦截器、租户状态拦截器和安全访问拦截器。本发明专利技术能够保证各租户的数据隔离与安全,使不同的拦截器相互独立,同时满足登录有效性、用户状态合法性、租户状态正常性和数据访问安全性的要求,适用于SaaS系统的用户访问控制。

A Multi-tenant Data Base Implementation Method and System

The invention discloses a method and system for realizing multi-tenant data sub-database, which belongs to the field of computer cloud computing technology. User login and view validity are checked by using login check interceptor, user status validity is checked by using user status interceptor, tenant status validity is checked by using tenant status interceptor, and security visit is used. Ask the interceptor to verify the security of data access. A multi-tenant data sub-database implementation system is characterized by a login check interceptor, a user status interceptor, a tenant status interceptor and a secure access interceptor. The invention can ensure data isolation and security of each tenant, make different interceptors independent of each other, and meet the requirements of login validity, user status legitimacy, tenant status normality and data access security, and is suitable for user access control of SaaS system.

【技术实现步骤摘要】
一种多租户的数据分库实现方法和系统
本专利技术涉及计算机云计算
,具体地说是一种多租户的数据分库实现方法和系统。
技术介绍
多租户技术(英语:multi-tenancytechnology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且仍可确保各用户间数据的隔离性。在多租户技术中,租户(tenant)是指使用系统或电脑运算资源的客户,但在多租户技术中,租户包含在系统中可识别为指定用户的一切数据。租户所使用的是基于供应商所开发或建置的应用系统或运算资源等,供应商所设计的应用系统会容纳数个以上的用户在同一个环境下使用,为了要让多个用户的环境能力同一个应用程序与运算环境上使用,则应用程序与运算环境必须要特别设计,除了可以让系统平台可以允许同时让多份相同的应用程序运行外,保护租户数据的隐私与安全也是多租户技术的关键之一。多租户技术是SaaS应用的核心技术之一,它研究的主要问题是多租户环境下系统或应用组件的复用问题,关键是确保各租户用户访问控制的合法性。
技术实现思路
本专利技术的技术任务是针对以上不足之处,提供一种多租户的数据分库实现方法和系统,可以实现多租户的数据分库,保证各租户的数据隔离与安全。本专利技术解决其技术问题所采用的技术方案是:一种多租户的数据分库实现方法,通过使用登录校验拦截器实现用户登录和seesion有效性校验;通过使用用户状态拦截器实现用户状态合法性校验;通过使用租户状态拦截器实现租户状态合法性校验;通过使用安全访问拦截器实现数据访问安全性校验。使不同的拦截器相互独立,同时满足登录有效性、用户状态合法性、租户状态正常性和数据访问安全性的要求。优选的,登录校验拦截器对访问提交数据进行校验,例如用户名和密码等;并对seesion值进行校验,判断是否存在和超时。进一步的,在项目中的web.xml文件中配置登录校验拦截器AuthenticationFilter,登录校验拦截器首先判断请求类型,是登录请求还是数据访问请求;登录请求时,对访问提交数据进行校验,例如用户名、密码等,如果校验不通过则返回登录页面;数据访问请求时,对请求中header中的jsession字段的session值进行校验,判断是否存在和超时,如果不存在或者session超时,则跳转到登录页面。优选的,用户状态拦截器对用户的锁定状态进行校验;对用户信息是否全面进行校验,例如用户邮箱;对用户是否进行租户绑定进行校验;对用户是否进行实名认证进行校验。进一步的,在项目中的web.xml文件中,配置用户状态拦截器UserInfoStatusFilter,用户锁定拦截,查询redis数据库,判断用户锁定状态字段,如果用户已锁定,则跳转到用户异常状态提醒界面;用户信息不全拦截,查询redis数据库,判断用户信息,如果用户绑定邮箱等必须信息不全,则跳转到用户异常状态提醒界面;用户未绑定租户拦截,查询redis数据库,判断用户是否已绑定租户,如果用户未绑定租户,则跳转到用户异常状态提醒界面;用户未认证拦截,查询redis数据库,判断用户是否已进行实名验证,如果用户未进行实名认证,则跳转到用户实名认证界面。优选的,租户状态拦截器对租户的锁定状态进行校验,对租户的服务期进行校验、判断其是否在服务期内。进一步的,在项目中的web.xml文件中,配置租户状态拦截器TenantInfoStatusFilter,租户锁定拦截,查询redis数据库,判断用户所在租户的锁定状态,如果租户已锁定,则跳转到租户异常状态提醒界面;租户服务超期拦截,查询redis数据库,判断用户所在租户的服务期状态,如果不在服务期,则跳转到租户续费提醒界面。优选的,安全访问拦截器根据用户访问频率对其安全性进行校验,根据用户访问的资源耗费量对其安全性进行校验。进一步的,在项目中的web.xml文件中,配置安全访问拦截器SecurityFilter,高频率访问拦截,每次用户发起数据访问时,记录访问次数,当用户规定时间内(如10分钟内)的请求次数超过该租户配置限制时,则跳转到安全访问提醒界面;高资源访问拦截,每次用户发起数据访问时,记录访问功能消耗的资源数,当用户规定时间内(如10分钟内)的请求资源总数超过该租户配置限制时,则跳转到安全访问提醒界面。本专利技术还公开了一种多租户的数据分库实现系统,包括登录校验拦截器、用户状态拦截器、租户状态拦截器和安全访问拦截器,登录校验拦截器对访问提交数据(例如用户名和密码)进行校验、对seesion值进行校验,判断是否存在和超时;用于用户登录和seesion有效性校验;在项目中的web.xml文件中配置登录校验拦截器AuthenticationFilter,登录校验拦截器首先判断请求类型,是登录请求还是数据访问请求;登录请求时,对访问提交数据进行校验,例如用户名、密码,如果校验不通过则返回登录页面;数据访问请求时,对请求中header中的jsession字段的session值进行校验,判断是否存在和超时,如果不存在或者session超时,则跳转到登录页面;用户状态拦截器对用户的锁定状态进行校验、对用户信息是否全面进行校验(例如用户邮箱)、对用户是否进行租户绑定进行校验、对用户是否进行实名认证进行校验,用于用户状态合法性校验;在项目中的web.xml文件中,配置用户状态拦截器UserInfoStatusFilter,用户锁定拦截,查询redis数据库,判断用户锁定状态字段,如果用户已锁定,则跳转到用户异常状态提醒界面;用户信息不全拦截,查询redis数据库,判断用户信息,如果用户绑定邮箱等必须信息不全,则跳转到用户异常状态提醒界面;用户未绑定租户拦截,查询redis数据库,判断用户是否已绑定租户,如果用户未绑定租户,则跳转到用户异常状态提醒界面;用户未认证拦截,查询redis数据库,判断用户是否已进行实名验证,如果用户未进行实名认证,则跳转到用户实名认证界面;租户状态拦截器对租户的锁定状态进行校验,对租户的服务期进行校验、判断其是否在服务器内,用于租户状态合法性校验;在项目中的web.xml文件中,配置租户状态拦截器TenantInfoStatusFilter,租户锁定拦截,查询redis数据库,判断用户所在租户的锁定状态,如果租户已锁定,则跳转到租户异常状态提醒界面;租户服务超期拦截,查询redis数据库,判断用户所在租户的服务期状态,如果不在服务期,则跳转到租户续费提醒界面;安全访问拦截器,根据用户访问频率对其安全性进行校验,根据用户访问的资源耗费量对其安全性进行校验,用于数据访问安全性校验;在项目中的web.xml文件中,配置安全访问拦截器SecurityFilter,高频率访问拦截,每次用户发起数据访问时,记录访问次数,当用户规定时间内的请求次数超过该租户配置限制时,则跳转到安全访问提醒界面;高资源访问拦截,每次用户发起数据访问时,记录访问功能消耗的资源数,当用户规定时间内的请求资源总数超过该租户配置限制时,则跳转到安全访问提醒界面。本专利技术的一种多租户的数据分库实现方法和系统和现有技术相比,具有以下有益效果:通过本方法可实现多租户的数据分库,保证各租户的数据隔离与安全,适用于SaaS系统的本文档来自技高网...

【技术保护点】
1.一种多租户的数据分库实现方法,其特征在于通过使用登录校验拦截器实现用户登录和seesion有效性校验;通过使用用户状态拦截器实现用户状态合法性校验;通过使用租户状态拦截器实现租户状态合法性校验;通过使用安全访问拦截器实现数据访问安全性校验。

【技术特征摘要】
1.一种多租户的数据分库实现方法,其特征在于通过使用登录校验拦截器实现用户登录和seesion有效性校验;通过使用用户状态拦截器实现用户状态合法性校验;通过使用租户状态拦截器实现租户状态合法性校验;通过使用安全访问拦截器实现数据访问安全性校验。2.根据权利要求1所述的一种多租户的数据分库实现方法和系统,其特征在于登录校验拦截器对访问提交数据进行校验,包括用户名和密码;并对seesion值进行校验,判断是否存在和超时。3.根据权利要求2所述的一种多租户的数据分库实现方法,其特征在于配置登录校验拦截器,登录校验拦截器首先判断请求类型,是登录请求还是数据访问请求;登录请求时,对访问提交数据进行校验,如果校验不通过则返回登录页面;数据访问请求时,对请求中header中的jsession字段的session值进行校验,判断是否存在和超时,如果不存在或者session超时,则跳转到登录页面。4.根据权利要求1所述的一种多租户的数据分库实现方法,其特征在于用户状态拦截器对用户的锁定状态进行校验,对用户信息是否全面进行校验,对用户是否进行租户绑定进行校验,对用户是否进行实名认证进行校验。5.根据权利要求4所述的一种多租户的数据分库实现方法,其特征在于配置用户状态拦截器,用户锁定拦截,查询redis数据库,判断用户锁定状态字段,如果用户已锁定,则跳转到用户异常状态提醒界面;用户信息不全拦截,查询redis数据库,判断用户信息,如果用户必须信息不全,则跳转到用户异常状态提醒界面;用户未绑定租户拦截,查询redis数据库,判断用户是否已绑定租户,如果用户未绑定租户,则跳转到用户异常状态提醒界面;用户未认证拦截,查询redis数据库,判断用户是否已进行实名验证,如果用户未进行实名认证,则跳转到用户实名认证界面。6.根据权利要求1所...

【专利技术属性】
技术研发人员:宋伟伟张冬霞邵辉
申请(专利权)人:山东浪潮通软信息科技有限公司
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1