Ich wollte die Microservices kontrollieren, die auf dem Eureka-Server laufen. Ich habe Spring-Boot-Admin dafür verwendet, aber ich bekomme den Fehler beim Zugriff auf die Informationen zu Trace, Log usw.
Der Fehler, den ich bekomme, ist
Fehler: {"Zeitstempel": 1489052472862, "Status": 401, "Fehler": "Nicht autorisiert", "Nachricht": "Für den Zugriff auf diese Ressource ist vollständige Authentifizierung erforderlich.", "Pfad": "/ Metrics"}
Meine Abhängigkeiten sind
<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>
und keine der unten aufgeführten Eigenschaften funktionierte
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
und dasselbe geschieht mit allen Endpunkten wie Zuordnungen, env und alle akzeptieren Gesundheit
Durch Festlegen von management.security.enabled=false
in application.properties
wird die Sicherheit der Endpunkte deaktiviert.
Ich hatte ein ähnliches Problem. In meiner Spring-Boot-Anwendung hatten wir einen Cors-Filter, um HTTP-Kopf-Anfragen zu blockieren. Kopfanfragen können daher nicht akzeptiert werden.
Überprüfen Sie das JavaScript-Konsolenprotokoll und das Anwendungsprotokoll.
Einstellung management.security.enabled = false in application.properties ist ebenfalls erforderlich.
Ich bin der Meinung, dass das Deaktivieren der Sicherheit für alle sensiblen Endpunkte nicht der richtige Weg ist.
Ich hatte dieses Problem beim Zugriff auf /metrics
und anscheinend , mir fehlte die spring-boot-starter-security
-Abhängigkeit:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
Nach dem Hinzufügen der Abhängigkeit zu meinem pom.xml
und unter der Annahme, dass ich Folgendes auf meinem application.yml
habe
...
security:
user:
name: myActuatorUser
password: myActuatorPwd
...
Ich konnte auf meinen /metrics
-Endpunkt zugreifen.
Es ist besser, die Sicherheit anhand der Anmeldeinformationen username
und password
für die meisten der hier aufgeführten Endpunkte einzurichten: https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints html
Ausnahmen von der Regel sind health
und info
Endpunkte, die nicht durch Berechtigungsnachweise geschützt werden.
Sie können username
und password
in application.properties
so einstellen:
security.user.name=admin
security.user.password=secret