未经授权的春季启动管理员

时间:2017-03-07 12:15:20

标签: spring spring-boot microservices netflix-eureka spring-boot-admin

我想控制在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

同样的事情发生在所有的终点,如映射,环境和所有接受健康

4 个答案:

答案 0 :(得分:38)

management.security.enabled=false中设置application.properties将禁用端点上的安全性。

答案 1 :(得分:0)

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

该规则的例外是healthinfo端点,这些端点不受凭据的保护。

您可以像这样在username中设置passwordapplication.properties

security.user.name=admin
security.user.password=secret

答案 2 :(得分:0)

我有一个类似的问题。 在我的spring boot应用程序中,我们有一个cors过滤器来阻止Http Head请求。因此,头请求不能被接受。

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

  • 还需要在application.properties中设置management.security.enabled = false。

答案 3 :(得分:0)

我认为禁用所有敏感端点的安全性不是路要走。

在访问/metricsapparently时遇到此问题,我缺少spring-boot-starter-security依赖性:

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

将依存关系添加到我的pom.xml之后,并假设我在application.yml上具有以下内容

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

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

相关问题