springBoot-actuator

原文地址: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

主要暴露的功能

springBoot-actuator_第1张图片
image

需要注意的是这些信息无疑是暴露了我们项目的一些秘密,比如说配置属性,会暴露数据库的配置的等等信息。

所以在开启这个功能的时候需要对这些功能的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就无法查看了。

你可能感兴趣的:(springBoot-actuator)