SpringBoot2.x中management.security.enabled=false无效的解决

问题描述:

在使用 Spring Boot 2.x 项目时,当添加了 Actuator 组件后,如果需要关闭 Actuator 组件的安全认证功能,通过在配置文件中加入 management.security.enabled=false 进行了配置,但是访问 Actuator 的端点时,仍然需要输入用户名和密码进行认证。

解决方法:

Spring Boot 2.x 中,Actuator 都需要通过 management.* 前缀的配置来进行管理。因此,关闭 management.security.enabled 配置,需要同时关闭 Actuator 所有的安全认证配置,包括基于用户验证的或者基于 IP 白名单验证的。其实,关闭 management.security.enabled 配置对应的是关闭 Actuator 的所有安全认证配置。

1、关闭 Actuator 的所有安全认证配置

management:
  endpoints:
    web:
      exposure:
        include: '*'
  endpoint:
    health:
      show-details: always
  security:
    enabled: false

以上配置意义如下:

  • endpoints.web.exposure.include: '*'表示所有端点都暴露出去,可以直接访问。
  • endpoint.health.show-details: always表示展示详细的健康检查信息。
  • security.enabled: false表示关闭所有的安全认证配置。

这里需要注意的是,如果只是关闭了 management.security.enabled 并不会生效,需要将上述全部配置一并关闭。

2、示例代码

下面是一个示例代码,演示了如何在 Spring Boot 2.x 中关闭 Actuator 的所有安全认证配置。在示例代码中,我们创建了一个 /actuator 路径下的健康检查端点,并通过 management.security.enabled=false 配置来关闭安全认证配置。

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {

    @GetMapping("/hello")
    public String hello() {
        return "hello world!";
    }

    @GetMapping("/actuator/health")
    public String health() {
        return "OK";
    }

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

application.yml 配置:

management:
  security:
    enabled: false

在上述示例代码中,我们创建了两个端点,一个是 /hello,其它人可以直接访问,一个是 /actuator/health,需要在访问前进行身份验证。通过在配置文件中加入 management.security.enabled=false 配置,可以关闭 /actuator/health 点的安全认证配置,以便其他人也可以访问了。

通过上述两条示例,我们可以很好地了解如何在 Spring Boot 2.x 中关闭 Actuator 的所有安全认证配置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot2.x中management.security.enabled=false无效的解决 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • Java如何把文件夹打成压缩包并导出

    Java 通过 ZipOutputStream 类提供了将一个文件夹打成压缩包并导出的功能。以下是详细的攻略: 第一步:导入ZipOutputStream类 为了使用ZipOutputStream类,需要先将其导入到你的Java代码中。可以使用以下代码: import java.io.FileOutputStream; import java.io.IOEx…

    Java 2023年5月19日
    00
  • Java编程利用socket多线程访问服务器文件代码示例

    下面我将详细讲解“Java编程利用socket多线程访问服务器文件代码示例”的完整攻略。 确定需求 首先,我们需要清楚自己的需求,即要实现什么功能。在这个示例中,我们需要实现通过 socket 多线程访问服务器文件,因此我们需要确定以下内容: 客户端程序需要向服务器请求文件 服务器端需要提供对请求文件的响应 使用 socket 进行通信 使用多线程实现并发访…

    Java 2023年5月18日
    00
  • JAVA中String类与StringBuffer类的区别

    String类和StringBuffer类都是Java中经常使用的字符串类,它们都可以用于处理字符串,但是它们之间有很大的区别。下面详细讲解一下它们之间的区别: 1.可变性 String类是不可变的类,也就是说,一旦字符串被创建,就无法更改它的值。如果尝试更改字符串的值,则会新建一个字符串。 StringBuffer类是可变的,它可以更改其内容,而不需要新建…

    Java 2023年5月27日
    00
  • 什么是线程安全问题?

    以下是关于什么是线程安全问题的完整使用攻略: 什么是线程安全问题? 线程安全问题是指在多线程环境下,对共享资源的访问可能会出现数据不一致或者数据污染的问题。在多线程环境下,如果多个线程同时访问同一个共享资源,那么就有可能出现数据一致的问题,这就是线程全问题。 为了保证线程安全需要采取一些措施,比如使用同步机制、使用线程安全的数据结构。 1. 同步机制 同步机…

    Java 2023年5月12日
    00
  • SpringMVC结合ajaxfileupload.js实现文件无刷新上传

    下面将为您详细讲解“SpringMVC结合ajaxfileupload.js实现文件无刷新上传”的完整攻略。 准备工作 在 pom.xml 文件中引入 spring-webmvc 和 commons-fileupload 两个依赖: xml<dependency> <groupId>org.springframework</gr…

    Java 2023年6月15日
    00
  • javascript 树控件 比较好用

    作为网站的作者,我非常乐意为你讲解“JavaScript 树控件比较好用”的完整攻略。 什么是 JavaScript 树控件? JavaScript 树控件是一种常用于显示层次数据的 UI 控件,如文件目录,网站导航菜单等。它的特点是可以动态地展开和折叠子节点,方便用户快速浏览和导航大量数据。 常见的 JavaScript 树控件库 市面上有很多 JavaS…

    Java 2023年6月15日
    00
  • 一篇文章带你学会Spring MVC表单标签

    下面是关于“一篇文章带你学会Spring MVC表单标签”的完整攻略,包含两个示例说明。 一篇文章带你学会Spring MVC表单标签 Spring MVC是一个流行的Java Web框架,它可以帮助我们更加方便地构建Web应用程序。本文将介绍如何使用Spring MVC表单标签来构建表单,并演示如何使用这些标签来处理表单数据。 步骤一:创建Spring M…

    Java 2023年5月17日
    00
  • ANGULARJS中用NG-BIND指令实现单向绑定的例子

    下面我将详细讲解关于 ANGULARJS 中使用 ng-bind 指令实现单向绑定的攻略,主要分为以下几个方面。 什么是 ng-bind 指令? ng-bind 是 ANGULARJS 框架中用于将数据值绑定到 HTML 元素中的指令,它用于在模板中动态绑定数据,可以通过变化自动更新绑定数据的值,实现实时更新数据,具体用法如下: <div ng-bin…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部