原文地址:http://cxytiandi.com/blog/detail/8123
Spring Boot有四大神器,分别是auto-configuration、starters、cli、actuator,本文主要讲actuator。actuator是spring boot提供的对应用系统的自省和监控的集成功能,可以对应用系统进行配置查看、相关功能统计等。
使用actuator
pom中添加依赖
org.springframework.boot
spring-boot-starter-actuator
访问用项目地址加每个功能的url,比如:http://localhost/env
主要暴露的功能
需要注意的是这些信息无疑是暴露了我们项目的一些秘密,比如说配置属性,会暴露数据库的配置的等等信息。
所以在开启这个功能的时候需要对这些功能的url做鉴权控制,不能让别人随便就能看到。
我们可以在Filter中进行控制。
//健康检查控制
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort();
String path = req.getContextPath();
String uri = req.getRequestURI().toLowerCase();
if (uri.equals("/autoconfig") || uri.equals("/configprops") || uri.equals("/beans") || uri.equals("/dump")
|| uri.equals("/env") || uri.equals("/health") || uri.equals("/info") || uri.equals("/mappings")
|| uri.equals("/metrics") || uri.equals("/shutdown") || uri.equals("/trace")) {
if(req.getQueryString() == null || !req.getQueryString().equals("token=你自定义的token值相当于密码")){
resp.sendRedirect(basePath + path + "/404");
return ;
}
}
chain.doFilter(request, response);
访问的时候就带上token参数:http://localhost/configprops?token=你自定义的token值相当于密码
这样别人不知道你的token就无法查看了。