一种基于B/S架构的权限控制方法转让专利
申请号 : CN201911362862.8
文献号 : CN111931133B
文献日 : 2021-06-25
发明人 : 夏文昊 , 邢红瑞 , 汪义舟
申请人 : 长扬科技(北京)有限公司
摘要 :
权利要求 :
1.一种基于B/S架构的权限控制方法,其特征在于,包括如下步骤:步骤a:基于spring自定义权限校验,包括登录权限校验和页面权限校验;
步骤b:对当前用户的权限校验,根据不同用户权限等级,获取不同的数据;
步骤c:利用nginx服务器与tomcat服务器作为运行承载服务器建立使浏览器端和服务器端解耦的架构;
步骤d:基于spring自定义注解并实现AOP切面;
步骤e:将项目根据功能模块化,并将项目的功能模块分离解耦合。
2.根据权利要求1所述的基于B/S架构的权限控制方法,其特征在于,步骤a具体包括通过spirng拦截器拦截所有发送至服务器端接口请求,并添加权限处理类;所述权限处理类包括登录成功处理类、登录失败处理类和服务器端接口请求拦截类;登录成功处理类在用户登录成功后将用户登录信息存入session中进行保存,登录失败处理类在用户登录失败时,向浏览器端返回登录失败信息,并修改登录限制信息;服务器端接口请求拦截类拦截访问请求,并从session中获取用户登录相关信息,判定用户是否登录以及用户对此页面访问的权限等级,若用户登录成功,根据用户对此页面访问的权限等级展示此页面的内容。
3.根据权利要求2所述的基于B/S架构的权限控制方法,其特征在于,步骤b中对当前用户的权限校验,根据不同用户权限等级,返回不同的数据,具体包括:对请求获取数据的用户进行权限校验,根据用户的权限等级,返回所属权限内的数据量和数据格式至浏览器端。
4.根据权利要求3所述的基于B/S架构的权限控制方法,其特征在于,步骤c具体包括:nginx服务器作为承载浏览器端代码的服务器,tomcat服务器承载服务器端程序代码,浏览器端请求接口利用nginx服务器作为转发路由,将浏览器端的请求转发至tomcat服务器,tomcat服务器根据浏览器端的请求返回数据至nginx服务器,nginx服务器将返回的数据转发至浏览器端。
5.根据权利要求4所述的基于B/S架构的权限控制方法,其特征在于,步骤d中基于spring自定义注解并实现AOP切面具体包括:定义AOP切面处理类,并在该类中定义切入点与切面方法,浏览器端调用服务器端Controller类中的方法时,调用动态生成的代理类的代理对象,并将该方法作为参数传入定义的切面方法中,通过反射获取该方法参数信息,对方法的参数进行判定,若参数中包含特殊符号则将此方法拦截,不执行该方法逻辑,并返回至浏览器端,若方法中添加了自定义注解,则将方法的详细信息保存为日志实体存入数据库中。
说明书 :
一种基于B/S架构的权限控制方法
技术领域
背景技术
却因为其耦合性过高,随着项目迭代周期的不断增长,开发维护的成本愈发高昂,所以一种
合理的基于B/S架构的权限分配管理成为了B/S架构软件项目的重中之重。
发明内容
口请求拦截类;登录成功处理类在用户登录成功后将用户登录信息存入session中进行保
存,登录失败处理类在用户登录失败时,向浏览器端返回登录失败信息,并修改登录限制信
息;服务器端接口请求拦截类拦截访问请求,并从session中获取用户登录相关信息,判定
用户是否登录以及用户对此页面访问的权限等级,若用户登录成功,根据用户对此页面访
问的权限等级展示此页面的内容。
限内的数据量和数据格式至浏览器端。
用nginx服务器作为转发路由,将浏览器端的请求转发至tomcat服务器,tomcat服务器根据
浏览器端的请求返回数据至nginx服务器,nginx服务器将返回的数据转发至浏览器端。
定义的切面方法中,通过反射获取该方法参数信息,对方法的参数进行判定,若参数中包含
特殊符号则将此方法拦截,不执行该方法逻辑,并返回至浏览器端,若方法中添加了自定义
注解,则将方法的详细信息保存为日志实体存入数据库中。
的安全。前后端分离的架构设计,使得前端与后端完全解耦,前端人员专注页面渲染,后端
人员专注业务处理,加快整体响应速度,快速问题定位,减少后端服务器的并发与负载压
力,提升开发效率等。
附图说明
具体实施方式
明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本
发明的概念。
例,都属于本发明保护的范围。
口请求拦截类;登录成功处理类在用户登录成功后将用户登录信息存入session中进行保
存,登录失败处理类在用户登录失败时,向浏览器端返回登录失败信息,并修改登录限制信
息;服务器端接口请求拦截类拦截访问请求,并从session中获取用户登录相关信息,判定
用户是否登录以及用户对此页面访问的权限等级,若用户登录成功,根据用户对此页面访
问的权限等级展示此页面的内容。
限内的数据量和数据格式至浏览器端。
用nginx服务器作为转发路由,将浏览器端的请求转发至tomcat服务器,tomcat服务器根据
浏览器端的请求返回数据至nginx服务器,nginx服务器将返回的数据转发至浏览器端。
定义的切面方法中,通过反射获取该方法参数信息,对方法的参数进行判定,若参数中包含
特殊符号则将此方法拦截,不执行该方法逻辑,并返回至浏览器端,若方法中添加了自定义
注解,则将方法的详细信息保存为日志实体存入数据库中。
类,例如登录成功处理类,登录失败处理类,接口请求拦截类,若用户登录成功,则会将用户
登录信息存入session中进行保存,后端接口请求拦截类在拦截到请求后,会去session中
获取用户登录相关信息,判定用户是否登录,用户对此页面的权限等级,并根据判定显示用
户是否可看到页面,和此页面的展示内容。
据数量,数据格式也不相同。如图2所示,请求用户1和请求用户2分别向服务器发送调用请
求,服务器根据请求用户1的权限和请求用户2的权限对请求分别进行处理,返回相应的权
限数据。
两个服务器运行作为本发明的运行承载服务器,其中nginx作为承载前端的服务器与承载
后端代码的tomcat完全进行了分离,前端请求接口使用nginx做了路由转发,将请求转发至
tomcat服务器,而后tomcat服务器将请求处理后提供数据返回至承载前端代码的nginx服
务器,前端获取数据后进行页面的渲染和重定向等逻辑。
端调用后端Controller类中的方法时,并不会真正的去调用Controller中的方法,而是调
用了动态生成的代理类的代理对象,并将该方法作为参数传入自定义切面类中中的切面方
法中,通过反射获取该方法参数的详细信息,首先对方法的参数进行判定,参数中有特殊符
号时直接将此方法拦截,不执行该方法内逻辑,并将结果返回至前端,若方法上添加了自定
义注解,则将方法的详细信息保存为日志实体存入数据库中。
辅相成,一起运行则为一个完整的项目,分开独立运行也不会受到其他项目的影响。这样可
以在一个功能模块需要迭代更新时不会影响其他的功能模块的使用,在需要迭代的功能模
块迭代完成后只需重新编译修改后的功能模块即可,整个项目的功能不受到影响。图5中,
主模块对前端请求中主要功能部分进行处理后交由服务器,由服务器对数据库数据进行操
作,次要功能则直接通过辅模块进行处理并对数据库数据进行操作。
修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨
在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修
改例。
不脱离本发明的范围,本领域技术人员可以做出多种替换和修改,这些替换和修改都应落
在本发明的范围之内。
变动。这里无需也无法对所有的实施方式予以穷举。而由此所引伸出的显而易见的变化或
变动仍处于本发明创造的保护范围之中。