12

我想控制在 Eureka 服务器中运行的微服务。我为此使用了 spring-boot-admin,但是在访问有关 Trace、Log 等信息时出现错误...

我得到的错误是

错误:{"timestamp":1489052472862,"status":401,"error":"Unauthorized","message":"访问此资源需要完全身份验证。","path":"/metrics"}

我的依赖是

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server</artifactId>
        <version>1.4.3</version>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-server-ui</artifactId>
        <version>1.4.3</version>
    </dependency>

并且以下属性均无效

endpoints.info.id=information
endpoints.info.sensitive=false
endpoints.info.enabled=true
information.app.name=Actuator Example
information.app.description=Actuator Example
information.app.version=1.0.0

并且所有端点(例如映射,env)都发生了同样的事情,并且都接受了健康

4

4 回答 4

39

Setting management.security.enabled=false in the application.properties will disable the security on the endpoints.

于 2017-03-11T07:22:27.260 回答
0

我认为禁用所有敏感端点的安全性不是可行的方法。

我在访问时遇到了这个问题/metrics显然,我缺少spring-boot-starter-security依赖项:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

将依赖项添加到 my 后pom.xml,并假设我的上有以下内容application.yml

...
security:
    user:
        name: myActuatorUser
        password: myActuatorPwd
...

我能够访问我的/metrics端点。

于 2018-11-07T14:09:55.723 回答
0

最好通过凭据usernamepassword此处列出的大多数端点设置安全性: https ://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

规则中的例外是不受凭据保护的端点healthinfo

你可以username这样password设置application.properties

security.user.name=admin
security.user.password=secret
于 2018-08-03T13:18:54.963 回答
0

我有一个类似的问题。在我的 Spring Boot 应用程序中,我们有一个 cors 过滤器来阻止 Http Head 请求。因此无法接受头部请求。

  • 检查 Javascript 控制台日志和应用程序日志。

  • 在 application.properties 中设置 management.security.enabled=false 也是必要的。

于 2018-10-17T07:39:04.813 回答