Unauthorized in spring boot admin

为君一笑 提交于 2019-12-12 07:35:20

问题


I wanted to control the microservices that are running in the Eureka server. I used spring-boot-admin for this, but I am getting the error on accessing the information about the Trace,Log etc...

The error I am getting is

Error: {"timestamp":1489052472862,"status":401,"error":"Unauthorized","message":"Full authentication is required to access this resource.","path":"/metrics"}

My dependencies are

<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>

and none of the below properties worked

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

and the same thing is happening with all the end points like mappings, env and all accept health


回答1:


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




回答2:


It's better to setup security by credentials username and password for most of endpoints listed here: https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

Exceptions from the rule are health and info endpoints which won't be protected by credentials.

You can set username and password in application.properties like that:

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



回答3:


I have had a similar issue. On my spring boot application we had a cors filter to block Http Head requests. So head requests cannot be accepted.

  • Check Javascript console log and application log.

  • Setting management.security.enabled=false in the application.properties also necessary.




回答4:


I'm of the opinion that disabling the security to all sensitive endpoints isn't the way to go.

I had this issue while accessing /metrics and apparently, I was missing the spring-boot-starter-security dependency:

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

After adding the dependency to my pom.xml, and assuming that I have the following on my application.yml

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

I was able to access my /metrics endpoint.



来源:https://stackoverflow.com/questions/42648060/unauthorized-in-spring-boot-admin

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!