ApiBoot Logging
在上报日志时虽然是一般通过内网的形式部署,不过安全方面还是主要依赖于服务器的安全策略
(防火墙),为了提高日志上报的安全性,ApiBoot Logging
支持了整合Spring Security
来使用Basic Auth
的形式上传日志信息。
<!--more-->
创建Logging Admin项目
我们需要在集成ApiBoot Logging Admin
项目内添加Spring Security
相关依赖来完成安全配置,我们需要创建一个Logging Admin
项目,可参考【将ApiBoot Logging采集的日志上报到Admin】文章内容。
集成Spring Security
在Logging Admin
项目pom.xml
文件内添加Spring Security
依赖,如下所示:
<!--SpringBoot Security-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置Spring Security认证用户
我们使用SpringBoot
集成Spring Security
提供的配置文件的方式配置Basic User
信息,这种方式使用的是内存方式,用户信息被存储在内存中,如果你需要从数据库内读取,可以查看Spring Security
的UserDetails
具体使用方法。
application.yml文件添加如下配置:
spring:
# 配置内存方式Spring Security用户信息
security:
user:
name: admin
password: admin123
创建Logging Client项目
我们的业务服务需要集成ApiBoot Logging
依赖(作为Logging Client
进行上报请求日志),可参考【使用ApiBoot Logging进行统一管理请求日志】文章内容创建项目。
配置安全上报
如果使用过Eureka
的小伙伴应该对路径配置Basic User
的方式不陌生,格式为:username:password@ip:port
。
application.yml修改上报的Logging Admin
路径如下所示:
api:
boot:
logging:
# 美化打印日志
format-console-log-json: true
# 控制台显示打印日志
show-console-log: true
# 配置Logging Admin
admin:
server-address: admin:admin123@127.0.0.1:8081
我们在Logging Admin
配置的用户名为:admin
,密码为:admin123
,而@
符号后面就是Logging Admin
的IP地址
以及端口号
。
测试
下面我们进行测试Spring Security
是否起到了作用。
依次启动Logging Admin
、Logging Client
,通过以下命令访问接口:
➜ ~ curl http://localhost:8080/test\?name\=admin
你好:admin
在Logging Admin
控制台可以看到上报的请求日志信息时,证明我们已经安全的上报了日志,如果Logging Client
控制台打印401 Exception
认证错误信息,请检查Logging Client
配置的路径Basic User
是否正确。
敲黑板,划重点
请求日志是用来检查接口的稳定性、排除一些请求异常问题的主要凭据,所以我们尽可能要保证数据的有效性、安全性,建议搭配Spring Security
一块使用ApiBoot Logging
。
代码示例
本篇文章示例源码可以通过以下途径获取,目录为SpringBoot2.x/apiboot-logging-integrates-spring-security
:
作者个人 博客
使用开源框架 ApiBoot 助你成为Api接口服务架构师