统计身份认证及日志处理微服务系统及其实现方法技术方案

技术编号:20546335 阅读:19 留言:0更新日期:2019-03-09 19:15
本发明专利技术涉及一种统计身份认证及日志处理微服务系统及其实现方法,涉及网络安全技术领域。本发明专利技术基于springcloud的zuul网关,以及jwt的静态认证来实现用户登录的身份认证,基于springboot的webfilter注解来实现系统日志的拦截处理,设计了一种应用于http restful的请求方式以及对日志需要比较详细的记录的应用系统及其实现方法,本发明专利技术利用springcloud微服务很容易地实现了系统的组件化,既提高了系统的性能又便于维护,身份认证和日志记录这两个服务都应用到了jwt的认证和解析,而且zuul网关本就是对所有路径的一个拦截处理过程,因此不需要再这两个模块再分别细分成两个微服务组件,因此真正地实现了代码的高内聚低耦合要求。

Statistical Identity Authentication and Log Processing Microservice System and Its Implementation

The invention relates to a statistical identity authentication and log processing micro-service system and its implementation method, and relates to the technical field of network security. The invention realizes user login authentication based on zuul gateway of spring cloud and static authentication of jwt, intercepts system log based on Web filter annotation of spring boot, designs an application system and its implementation method for HTTP restful request mode and detailed log record. The invention makes use of spring cloud micro-service to be very compatible. It is easy to realize the Componentization of the system, which not only improves the performance of the system, but also facilitates maintenance. Both authentication and log recording services are applied to the authentication and analysis of jwt. Moreover, the zuul gateway is an interception process for all paths. Therefore, it is not necessary to subdivide the two modules into two micro-service components separately, so the high cohesion of the code is really realized. Low coupling requirements.

【技术实现步骤摘要】
统计身份认证及日志处理微服务系统及其实现方法
本专利技术涉及网络安全
,具体涉及一种统计身份认证及日志处理微服务系统及其实现方法。
技术介绍
随着互联网应用的普及,在大数据、高并发的环境下,系统架构需要面对极为严苛的挑战,必须至少要满足高性能、独立性、容易扩展、便于管理、状态监控与告警这几个方面,由此微服务架构便应运而生。传统的单体应用将所有业务功能全部聚合在一个项目中,如图1所示。这样的单体应用隐患非常的多,任何一个bug都有可能导致整个系统宕机,维护这样的一个系统,不仅效率极低,而且充满风险。
技术实现思路
(一)要解决的技术问题本专利技术要解决的技术问题是:如何设计一种能够满足代码的高内聚低耦合要求的统计身份认证及日志处理微服务系统及其实现方法。(二)技术方案为了解决上述技术问题,本专利技术提供了一种统计身份认证及日志处理微服务系统,包括身份认证模块;所述身份认证模块用于自定义过滤器并继承Zuul过滤器,并利用四种方法重写Zuul过滤器,所述四种方法分别是设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作。优选地,所述系统还包括日志管理模块,所述日志管理模块用于在身份认证模块重写Zuul过滤器之后,实现过滤器,对相应操作进行拦截,并将拦截的日志记录到数据库中。本专利技术还提供了一种所述的系统的实现方法,包括以下步骤:所述身份认证模块的具体实现步骤如下:步骤1、自定义过滤器并继承Zuul过滤器;步骤2、利用四种方法重写Zuul过滤器:设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作,进行身份认证的具体操作时,封装不符合身份认证的请求的信息,并返回。优选地,步骤2中,配置过滤优先级为0,为最高优先级,过滤方式为“pre”,在http的pre阶段进行过滤。优选地,步骤2中,还配置过滤的路径,当请求路径为本地路径或者为获取令牌接口时不进行过滤,对于其他所有路径都进行过滤。优选地,步骤2中,还进行身份认证的具体操作:获取当前请求的请求头中的令牌,通过jwt根据后端配置文件中的密钥进行解析,如果解析失败,则封装统一的json返回结果;如果验证成功,说明令牌有效,对获取到的令牌进行解析,解析当前身份信息对应的资源(权限),遍历当前身份信息的资源,如果没有一条与需要请求的资源信息匹配,则封装统一的json返回结果,否则认证通过。优选地,步骤2中,如果请求的路径是获取令牌接口,则zuul网关不进行过滤,而是将请求发送到相应的接口,该接口通过jwt根据该用户的角色、账号、资源使用HS512签名生成新的令牌,并添加令牌的过期时间,返回给客户端。优选地,所述日志管理模块的具体实现步骤如下:步骤1’、实现过滤器:对所有的请求路径进行拦截处理;步骤2’、对相应操作进行拦截:对新增、修改、删除操作进行拦截处理,记录请求和响应内容;步骤3’、将拦截的日志记录到数据库中。优选地,步骤1’中,实现spring的过滤器,初始化拦截器配置,增加WebFilter注解过滤所有路径,设置优先级为最高。优选地,步骤2’中,重写过滤器的过滤方法,首先通过请求头获取当前请求的用户账户,因为调用为rest风格,当用户账户存在并且请求为新增、修改、删除操作时,拦截当前请求的来源和去向,从中获取请求信息以及响应信息。(三)有益效果本专利技术基于springcloud的zuul网关,以及jwt的静态认证来实现用户登录的身份认证,基于springboot的webfilter注解来实现系统日志的拦截处理,设计了一种应用于httprestful的请求方式以及对日志需要比较详细的记录的应用系统及其实现方法,本专利技术利用springcloud微服务很容易地实现了系统的组件化,既提高了系统的性能又便于维护,身份认证和日志记录这两个服务都应用到了jwt的认证和解析,而且zuul网关本就是对所有路径的一个拦截处理过程,因此不需要再这两个模块再分别细分成两个微服务组件,因此真正地实现了代码的高内聚低耦合要求。附图说明图1为现有的单体应用架构示意图;图2为本专利技术加入Zuul后的微服务集群架构示意图;图3为本专利技术的身份认证模块的Zuul身份认证流程图;图4为本专利技术的日志管理模块的日志过滤流程图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。本专利技术设计的一种统计身份认证及日志处理微服务系统,采用了微服务架构,如下图2所示,图2为微服务架构中的其中一个组件,相较单体应用,微服务将之前全部耦合在一起的各个业务模块进行模块化,使每一个业务模块都成为单独的组件,即提升了应用程序的性能又便于管理,而且独立化的模块一旦出现bug或其他问题,不会影响其他的模块或者整个应用。身份认证和日志管理是每个安全审计、态势系统必不可少的模块,而且当用户量达到一定程度时,对这两个模块的调用都会非常的频繁,因此将这两个模块独立出来是非常有必要的,一方面可以减少主应用程序的压力,另一方面也能对这两个模块进行很好的管理扩容。因此,本专利技术的统计身份认证及日志处理微服务系统包括身份认证模块和日志管理模块。该身份认证模块用于自定义过滤器并继承Zuul过滤器,利用四种方法重写Zuul过滤器,所述四种方法分别是设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作。具体实现步骤如下:步骤1、自定义过滤器并继承Zuul过滤器,本步骤是核心步骤,继承该类之后就能对所有需要身份认证的资源进行过滤。步骤2、利用四种方法重写Zuul过滤器:设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作,进行身份认证的具体操作时,封装不符合身份认证的请求的信息,并返回。相应的流程图如图3所示。步骤2中,配置过滤优先级为0,为最高优先级,过滤方式为“pre”,在http的pre阶段进行过滤;步骤2中,还配置过滤的路径,当请求路径为本地路径或者为获取令牌接口时不进行过滤,对于其他所有路径都进行过滤,代码片段如下所示。步骤2中,还进行身份认证的具体操作:获取当前请求的请求头中的令牌,通过jwt根据后端配置文件中的密钥进行解析,如果解析失败,则封装统一的json返回结果;如果验证成功,说明令牌有效,对获取到的令牌进行解析,解析当前身份信息对应的资源(权限),遍历当前身份信息的资源,如果没有一条与需要请求的资源信息匹配,则封装统一的json返回结果,否则认证通过。代码片段如下:以上为身份验证的具体操作流程,如果请求的路径是获取令牌接口,则zuul网关不进行过滤,而是会将请求发送到相应的接口,该接口通过jwt根据该用户的角色、账号、资源使用HS512签名生成新的令牌,并添加令牌的过期时间,返回给客户端。该日志管理模块用于实现过滤器,对相应操作进行拦截,并将拦截的日志记录到数据库中;具体实现步骤如下:步骤1’、实现过滤器:对所有的请求路径进行拦截处理。步骤2’、对相应操作进行拦截:对新增、修改、删除操作进行拦截处理,记录请求和响应内容。步骤3’、将拦截的日志记录到数据库中。相应的流程如图4所示。步骤1’中,实现spring的过滤器,初始化拦截器配置。增加WebFilter注解过滤所有路径,设置优先级为最高。步骤2’中,重写过滤器的过滤方法,首先通过请求头获取本文档来自技高网...

【技术保护点】
1.一种统计身份认证及日志处理微服务系统,其特征在于,包括身份认证模块;所述身份认证模块用于自定义过滤器并继承Zuul过滤器,并利用四种方法重写Zuul过滤器,所述四种方法分别是设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作。

【技术特征摘要】
1.一种统计身份认证及日志处理微服务系统,其特征在于,包括身份认证模块;所述身份认证模块用于自定义过滤器并继承Zuul过滤器,并利用四种方法重写Zuul过滤器,所述四种方法分别是设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作。2.如权利要求1所述的系统,其特征在于,所述系统还包括日志管理模块,所述日志管理模块用于在身份认证模块重写Zuul过滤器之后,实现过滤器,对相应操作进行拦截,并将拦截的日志记录到数据库中。3.一种如权利要求2所述的系统的实现方法,其特征在于,包括以下步骤:所述身份认证模块的具体实现步骤如下:步骤1、自定义过滤器并继承Zuul过滤器;步骤2、利用四种方法重写Zuul过滤器:设置过滤方式、过滤顺序,过滤的路径以及进行身份认证的具体操作,进行身份认证的具体操作时,封装不符合身份认证的请求的信息,并返回。4.如权利要求3所述的方法,其特征在于,步骤2中,配置过滤优先级为0,为最高优先级,过滤方式为“pre”,在http的pre阶段进行过滤。5.如权利要求3所述的方法,其特征在于,步骤2中,还配置过滤的路径,当请求路径为本地路径或者为获取令牌接口时不进行过滤,对于其他所有路径都进行过滤。6.如权利要求5所述的方法,其特征在于,步骤2中,还进行身份认证的具体操作:获取当前请求的请求头中的令牌,通过jwt根据后端配...

【专利技术属性】
技术研发人员:陈梦飞
申请(专利权)人:北京计算机技术及应用研究所
类型:发明
国别省市:北京,11

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

1