Eurekaサーバーで実行されているマイクロサービスを制御したかった。私はこれにspring-boot-adminを使用しましたが、トレース、ログなどに関する情報にアクセスする際にエラーが発生しています...
私が得ているエラーは
エラー:{"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、すべてがヘルスを受け入れるなどのすべてのエンドポイントで同じことが起こります
設定management.security.enabled=false
の中に application.properties
は、エンドポイントのセキュリティを無効にします。
同様の問題がありました。私のスプリングブートアプリケーションには、Http Headリクエストをブロックするcorsフィルターがありました。そのため、ヘッドリクエストは受け付けられません。
Javascriptコンソールログとアプリケーションログを確認します。
Application.propertiesでmanagement.security.enabled = falseを設定することも必要です。
私は、すべての機密性の高いエンドポイントのセキュリティを無効にすることは、進むべき道ではないと考えています。
/metrics
および 明らかに にアクセスしているときにこの問題が発生し、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
エンドポイントにアクセスできました。
ここにリストされているほとんどのエンドポイントでは、クレデンシャルusername
およびpassword
によってセキュリティを設定することをお勧めします。 https://docs.spring.io/spring-boot/docs/current/reference /html/production-ready-endpoints.html
ルールからの例外は、health
およびinfo
エンドポイントであり、これらは資格情報によって保護されません。
application.properties
のusername
とpassword
を次のように設定できます。
security.user.name=admin
security.user.password=secret